Version Description
- TWEAK: Links Added
- FIX: unserialize changed to maybe_unserialize
- TWEAK: Code Optimized
- TRANSLATIONS: Language Updated - Vietnamese
Download this release
Release Info
Developer | contact-banker |
Plugin | WP Mail Bank: WordPress SMTP Plugin & Email Logs |
Version | 3.0.8 |
Comparing to | |
See all releases |
Code changes from version 3.0.7 to 3.0.8
- assets/admin/layout/css/font/tech-banker.svg +59 -59
- assets/admin/layout/css/layout-rtl.css +2 -2
- assets/admin/layout/css/mail-bank-custom.css +15 -0
- assets/global/img/icon.png +0 -0
- assets/global/plugins/custom/js/custom.js +243 -243
- assets/global/plugins/datatables/media/js/jquery.datatables.js +1 -1
- assets/global/plugins/icons/fonts/icons.svg +166 -166
- assets/global/plugins/icons/icons-lte-ie7.js +5 -5
- assets/global/plugins/toastr/toastr.css +4 -4
- assets/global/plugins/toastr/toastr.js +338 -338
- assets/global/plugins/validation/jquery.validate.js +1221 -1221
- includes/authentication-manager-mail-bank.php +22 -22
- includes/footer.php +1050 -1050
- includes/google-authentication-mail-bank.php +42 -42
- includes/header.php +5 -5
- includes/mail-bank-configuration-provider.php +11 -11
- includes/mail-bank-configure-transport.php +41 -41
- includes/mail-bank-email-log.php +84 -84
- includes/mail-bank-manage-email-address.php +40 -40
- includes/mail-bank-manage-email.php +220 -220
- includes/mail-bank-manage-token.php +31 -31
- includes/mail-bank-send-mail.php +100 -100
- includes/mail-bank-smtp-transport.php +2 -2
- includes/mail-bank-zend-engine.php +143 -143
- includes/mail-bank-zend-mail-helper.php +32 -32
- includes/mailer.php +186 -186
- includes/microsoft-authentication-mail-bank.php +40 -40
- includes/queries.php +89 -89
- includes/sidebar.php +121 -121
- includes/token-manager-mail-bank.php +52 -52
- includes/translations.php +11 -11
- includes/yahoo-authentication-mail-bank.php +50 -50
- languages/{wp-mail-bank-vi_VN.mo → wp-mail-bank-vi.mo} +0 -0
- languages/{wp-mail-bank-vi_VN.po → wp-mail-bank-vi.po} +2 -2
- lib/action-library.php +265 -265
- lib/admin-bar-menu.php +98 -98
- lib/helper.php +174 -174
- lib/install-script.php +316 -316
- lib/sidebar-menu.php +260 -260
- lib/zend/exception.php +9 -9
- lib/zend/loader.php +82 -82
- lib/zend/loader/autoloader.php +104 -104
- lib/zend/mail.php +176 -176
- lib/zend/mail/message.php +17 -17
- lib/zend/mail/message/file.php +2 -2
- lib/zend/mail/part/file.php +64 -64
- lib/zend/mail/protocol/abstract.php +70 -70
- lib/zend/mail/protocol/smtp.php +91 -91
- lib/zend/mail/protocol/smtp/auth/crammd5.php +8 -8
- lib/zend/mail/protocol/smtp/auth/login.php +6 -6
- lib/zend/mail/protocol/smtp/auth/oauth2.php +3 -3
- lib/zend/mail/protocol/smtp/auth/plain.php +6 -6
- lib/zend/mail/storage/abstract.php +11 -11
- lib/zend/mail/storage/folder.php +6 -6
- lib/zend/mail/storage/folder/maildir.php +88 -88
- lib/zend/mail/storage/folder/mbox.php +68 -68
- lib/zend/mail/storage/maildir.php +126 -126
- lib/zend/mail/storage/mbox.php +90 -90
- lib/zend/mail/storage/writable/maildir.php +191 -200
assets/admin/layout/css/font/tech-banker.svg
CHANGED
@@ -4,65 +4,65 @@
|
|
4 |
<metadata>Generated by IcoMoon</metadata>
|
5 |
<defs>
|
6 |
<font id="foobox" horiz-adv-x="1024">
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
<glyph unicode="" d="M0.042 446.382l-0.022-0.004c0 0 0.012-0.090 0.028-0.222 0.11-3.878 0.55-7.676 1.322-11.352 0.204-1.746 0.428-3.66 0.674-5.774 0.222-1.886 0.46-3.914 0.718-6.078 0.374-2.566 0.77-5.292 1.19-8.176 0.856-5.746 1.8-12.124 2.908-18.958 1.348-6.446 2.804-13.414 4.364-20.864 0.71-3.718 1.776-7.504 2.786-11.406 1.024-3.89 2.078-7.894 3.16-12.004 0.566-2.042 1.040-4.132 1.708-6.208 0.656-2.074 1.32-4.176 1.988-6.3 1.348-4.234 2.726-8.566 4.136-12.988 0.352-1.106 0.708-2.21 1.064-3.324 0.408-1.102 0.814-2.208 1.226-3.316 0.826-2.218 1.658-4.458 2.502-6.714 1.696-4.496 3.422-9.078 5.18-13.742 1.968-4.566 3.97-9.214 6.004-13.934 1.018-2.348 2.044-4.714 3.078-7.098 1.048-2.376 2.27-4.704 3.408-7.074 2.322-4.714 4.678-9.496 7.062-14.332 2.47-4.786 5.208-9.512 7.846-14.328 1.336-2.398 2.68-4.808 4.028-7.23 1.368-2.41 2.902-4.75 4.356-7.14 2.95-4.738 5.93-9.524 8.934-14.348 12.64-18.894 26.676-37.566 42.21-55.278 15.712-17.578 32.726-34.25 50.692-49.602 18.18-15.136 37.264-28.902 56.726-41.114 19.604-12.036 39.644-22.312 59.376-31.144 5.004-2.040 9.964-4.062 14.878-6.066 2.462-0.972 4.868-2.032 7.336-2.918 2.47-0.868 4.93-1.734 7.376-2.594 4.898-1.684 9.678-3.468 14.484-4.992 4.832-1.43 9.604-2.844 14.312-4.242 2.356-0.672 4.66-1.426 7.004-2.012 2.346-0.574 4.676-1.14 6.986-1.704 4.606-1.118 9.142-2.214 13.604-3.296 4.5-0.868 8.926-1.722 13.27-2.558 2.166-0.41 4.31-0.82 6.434-1.222 1.062-0.2 2.118-0.398 3.166-0.598 1.060-0.148 2.118-0.292 3.166-0.442 4.192-0.582 8.292-1.152 12.3-1.71 1.998-0.274 3.972-0.546 5.922-0.816 1.946-0.286 3.904-0.378 5.814-0.57 3.822-0.336 7.544-0.664 11.164-0.98 3.616-0.304 7.104-0.688 10.526-0.738 0.23-0.008 0.452-0.016 0.682-0.026 0.614-34.812 29.008-62.846 63.968-62.846 0.542 0 1.080 0.028 1.62 0.042v-0.022c0 0 0.090 0.012 0.224 0.028 3.878 0.11 7.674 0.55 11.35 1.322 1.748 0.204 3.662 0.426 5.776 0.672 1.884 0.222 3.912 0.462 6.076 0.718 2.566 0.376 5.292 0.772 8.176 1.192 5.746 0.856 12.124 1.8 18.958 2.908 6.446 1.348 13.414 2.804 20.864 4.362 3.718 0.712 7.504 1.778 11.406 2.786 3.892 1.026 7.894 2.080 12.004 3.162 2.044 0.566 4.132 1.040 6.208 1.708 2.074 0.656 4.174 1.318 6.3 1.988 4.232 1.348 8.564 2.726 12.988 4.134 1.104 0.354 2.21 0.708 3.324 1.066 1.1 0.406 2.206 0.814 3.316 1.226 2.216 0.824 4.456 1.658 6.714 2.5 4.496 1.698 9.078 3.424 13.74 5.182 4.568 1.968 9.216 3.97 13.936 6.004 2.348 1.018 4.714 2.044 7.098 3.078 2.376 1.048 4.702 2.27 7.074 3.408 4.714 2.322 9.494 4.678 14.33 7.062 4.786 2.47 9.512 5.208 14.328 7.846 2.398 1.336 4.808 2.678 7.23 4.028 2.41 1.366 4.75 2.9 7.14 4.354 4.738 2.952 9.524 5.93 14.35 8.936 18.89 12.64 37.564 26.674 55.278 42.21 17.574 15.712 34.248 32.726 49.602 50.69 15.136 18.182 28.902 37.264 41.112 56.728 12.036 19.602 22.314 39.644 31.142 59.376 2.042 5.002 4.062 9.964 6.068 14.878 0.974 2.462 2.032 4.868 2.918 7.334 0.87 2.472 1.732 4.932 2.592 7.376 1.686 4.898 3.468 9.678 4.994 14.484 1.432 4.832 2.846 9.604 4.24 14.31 0.674 2.358 1.43 4.66 2.016 7.004 0.57 2.348 1.138 4.676 1.702 6.988 1.118 4.606 2.216 9.14 3.296 13.602 0.868 4.502 1.72 8.928 2.558 13.272 0.41 2.164 0.818 4.308 1.222 6.434 0.2 1.060 0.398 2.116 0.596 3.164 0.148 1.062 0.296 2.118 0.444 3.168 0.582 4.19 1.152 8.292 1.708 12.3 0.278 1.996 0.55 3.97 0.82 5.922 0.284 1.946 0.376 3.902 0.568 5.812 0.336 3.822 0.664 7.546 0.98 11.164 0.304 3.616 0.686 7.106 0.738 10.528 0.020 0.534 0.040 1.044 0.058 1.574 35.224 0.146 63.732 28.738 63.732 63.992 0 0.542-0.028 1.080-0.042 1.62h0.022c0 0-0.012 0.090-0.028 0.224-0.11 3.878-0.55 7.674-1.322 11.35-0.204 1.748-0.428 3.662-0.674 5.776-0.222 1.886-0.46 3.914-0.718 6.076-0.374 2.566-0.77 5.294-1.19 8.176-0.856 5.746-1.8 12.124-2.908 18.958-1.348 6.444-2.804 13.414-4.364 20.862-0.71 3.72-1.776 7.506-2.786 11.408-1.024 3.892-2.078 7.894-3.16 12.002-0.566 2.044-1.040 4.134-1.708 6.208-0.656 2.076-1.32 4.174-1.988 6.3-1.348 4.234-2.726 8.566-4.136 12.99-0.352 1.102-0.708 2.21-1.064 3.324-0.408 1.1-0.814 2.206-1.226 3.316-0.826 2.216-1.658 4.454-2.502 6.714-1.696 4.498-3.422 9.080-5.18 13.74-1.968 4.57-3.97 9.216-6.004 13.936-1.020 2.348-2.044 4.714-3.078 7.098-1.048 2.376-2.27 4.702-3.408 7.076-2.322 4.714-4.678 9.494-7.062 14.33-2.47 4.786-5.208 9.512-7.846 14.328-1.336 2.398-2.68 4.808-4.028 7.23-1.368 2.41-2.902 4.75-4.356 7.14-2.95 4.74-5.93 9.524-8.934 14.35-12.64 18.892-26.676 37.564-42.21 55.278-15.712 17.576-32.726 34.25-50.692 49.602-18.18 15.136-37.264 28.902-56.726 41.112-19.604 12.036-39.644 22.314-59.376 31.142-5.004 2.040-9.964 4.062-14.878 6.068-2.462 0.974-4.868 2.032-7.336 2.918-2.47 0.87-4.93 1.734-7.376 2.592-4.898 1.684-9.678 3.468-14.484 4.994-4.832 1.432-9.604 2.846-14.312 4.242-2.356 0.672-4.66 1.428-7.004 2.014-2.346 0.572-4.676 1.138-6.986 1.702-4.606 1.118-9.142 2.216-13.604 3.298-4.5 0.868-8.926 1.72-13.27 2.558-2.166 0.412-4.31 0.82-6.434 1.222-1.062 0.2-2.118 0.398-3.166 0.596-1.060 0.148-2.118 0.296-3.166 0.442-4.192 0.584-8.292 1.154-12.3 1.71-1.998 0.276-3.972 0.55-5.922 0.82-1.946 0.284-3.904 0.376-5.814 0.57-3.822 0.336-7.544 0.664-11.164 0.98-3.616 0.304-7.104 0.686-10.526 0.738-0.852 0.032-1.674 0.062-2.512 0.092-0.65 34.78-29.028 62.778-63.966 62.778-0.542 0-1.080-0.028-1.62-0.042l-0.002 0.022c0 0-0.090-0.012-0.222-0.028-3.878-0.11-7.676-0.55-11.352-1.322-1.748-0.204-3.662-0.426-5.776-0.672-1.884-0.222-3.912-0.462-6.076-0.718-2.566-0.376-5.292-0.772-8.176-1.192-5.746-0.856-12.124-1.8-18.958-2.908-6.446-1.348-13.414-2.804-20.864-4.362-3.718-0.712-7.504-1.778-11.406-2.786-3.892-1.026-7.894-2.080-12.004-3.162-2.044-0.566-4.132-1.040-6.208-1.708-2.074-0.656-4.174-1.318-6.3-1.988-4.232-1.348-8.564-2.726-12.988-4.134-1.104-0.354-2.21-0.708-3.324-1.066-1.1-0.406-2.206-0.814-3.316-1.226-2.216-0.824-4.456-1.658-6.714-2.5-4.496-1.698-9.078-3.424-13.74-5.182-4.568-1.968-9.216-3.97-13.936-6.004-2.348-1.018-4.714-2.044-7.098-3.078-2.376-1.048-4.702-2.27-7.074-3.408-4.714-2.322-9.494-4.678-14.33-7.062-4.786-2.47-9.512-5.208-14.328-7.846-2.398-1.336-4.808-2.678-7.23-4.028-2.41-1.366-4.75-2.9-7.14-4.354-4.738-2.952-9.524-5.93-14.35-8.936-18.89-12.64-37.564-26.674-55.278-42.21-17.574-15.712-34.248-32.726-49.602-50.69-15.136-18.182-28.902-37.264-41.112-56.728-12.036-19.602-22.314-39.644-31.142-59.376-2.042-5.002-4.062-9.964-6.068-14.878-0.974-2.462-2.032-4.868-2.918-7.334-0.87-2.472-1.732-4.932-2.592-7.376-1.686-4.898-3.468-9.678-4.994-14.484-1.432-4.832-2.846-9.604-4.24-14.31-0.674-2.358-1.43-4.66-2.016-7.004-0.57-2.348-1.138-4.676-1.702-6.988-1.118-4.606-2.216-9.14-3.296-13.602-0.868-4.502-1.72-8.928-2.558-13.272-0.41-2.164-0.818-4.308-1.222-6.434-0.2-1.060-0.398-2.116-0.596-3.164-0.148-1.062-0.296-2.118-0.444-3.168-0.582-4.19-1.152-8.292-1.708-12.3-0.278-1.996-0.55-3.97-0.82-5.922-0.284-1.946-0.376-3.902-0.568-5.812-0.336-3.822-0.664-7.546-0.98-11.164-0.304-3.616-0.686-7.106-0.738-10.528-0.020-0.548-0.040-1.076-0.058-1.62-34.376-1.112-61.902-29.304-61.902-63.946 0-0.542 0.028-1.078 0.042-1.618zM73.518 511.294c0.042 0.196 0.086 0.384 0.128 0.58 0.644 3.248 1.632 6.542 2.556 9.942 0.934 3.388 1.894 6.876 2.88 10.454 0.516 1.78 0.934 3.602 1.546 5.406 0.596 1.802 1.202 3.628 1.81 5.476 1.218 3.682 2.464 7.45 3.736 11.294 0.316 0.958 0.634 1.924 0.956 2.892 0.37 0.954 0.74 1.914 1.114 2.876 0.746 1.924 1.5 3.868 2.26 5.83 1.52 3.904 3.070 7.882 4.646 11.93 1.768 3.96 3.566 7.99 5.392 12.080 0.908 2.038 1.824 4.090 2.746 6.156 0.932 2.060 2.036 4.072 3.052 6.126 2.070 4.084 4.17 8.222 6.294 12.412 2.202 4.142 4.654 8.224 6.998 12.392 1.184 2.074 2.374 4.16 3.57 6.256 1.21 2.086 2.586 4.102 3.876 6.166 2.616 4.098 5.256 8.232 7.918 12.402 11.234 16.298 23.632 32.398 37.33 47.638 13.874 15.104 28.842 29.404 44.598 42.548 15.974 12.928 32.686 24.65 49.676 35.022 17.13 10.194 34.6 18.838 51.734 26.258 4.35 1.7 8.662 3.382 12.934 5.050 2.136 0.812 4.216 1.71 6.36 2.444 2.146 0.714 4.28 1.428 6.404 2.136 4.25 1.386 8.382 2.888 12.548 4.142 4.184 1.174 8.314 2.332 12.392 3.474 2.038 0.55 4.026 1.19 6.054 1.662 2.030 0.458 4.044 0.914 6.044 1.368 3.978 0.91 7.896 1.806 11.748 2.688 3.888 0.686 7.71 1.36 11.462 2.022 1.868 0.33 3.716 0.658 5.546 0.98 0.914 0.162 1.824 0.324 2.728 0.484 0.916 0.112 1.828 0.222 2.734 0.332 3.612 0.448 7.148 0.882 10.604 1.31 1.72 0.216 3.422 0.432 5.102 0.644 1.674 0.226 3.364 0.266 5.010 0.408 3.292 0.238 6.498 0.472 9.616 0.7 3.11 0.218 6.11 0.524 9.058 0.508 5.848 0.132 11.32 0.256 16.38 0.372 4.664-0.168 8.948-0.324 12.818-0.462 1.914-0.054 3.726-0.108 5.432-0.156 2.122-0.134 4.108-0.26 5.958-0.378 2.13-0.138 4.060-0.266 5.82-0.38 3.256-0.51 6.592-0.782 9.99-0.782 0.466 0 0.93 0.026 1.396 0.036 0.132-0.008 0.224-0.014 0.224-0.014v0.020c31.14 0.778 56.75 23.784 61.556 53.754 0.542-0.12 1.064-0.236 1.612-0.356 3.246-0.644 6.542-1.632 9.942-2.556 3.386-0.934 6.876-1.894 10.454-2.88 1.778-0.516 3.602-0.934 5.404-1.546 1.802-0.596 3.63-1.202 5.478-1.812 3.68-1.218 7.448-2.464 11.292-3.736 0.96-0.316 1.924-0.634 2.892-0.956 0.956-0.37 1.914-0.74 2.876-1.112 1.926-0.746 3.868-1.5 5.83-2.26 3.904-1.52 7.884-3.070 11.932-4.646 3.96-1.768 7.988-3.566 12.080-5.392 2.038-0.908 4.088-1.824 6.156-2.746 2.060-0.932 4.072-2.036 6.126-3.054 4.082-2.070 8.222-4.17 12.41-6.294 4.144-2.202 8.226-4.654 12.394-6.998 2.074-1.184 4.16-2.374 6.256-3.572 2.086-1.21 4.102-2.586 6.166-3.876 4.098-2.616 8.23-5.256 12.402-7.918 16.296-11.234 32.398-23.632 47.636-37.33 15.104-13.874 29.406-28.842 42.55-44.598 12.928-15.974 24.648-32.686 35.020-49.676 10.196-17.13 18.84-34.6 26.26-51.736 1.698-4.348 3.382-8.662 5.050-12.932 0.812-2.136 1.71-4.216 2.444-6.36 0.714-2.146 1.428-4.28 2.136-6.404 1.386-4.25 2.888-8.384 4.142-12.548 1.174-4.184 2.33-8.316 3.474-12.392 0.55-2.038 1.19-4.026 1.66-6.054 0.46-2.030 0.916-4.046 1.368-6.046 0.91-3.978 1.808-7.896 2.688-11.748 0.688-3.888 1.362-7.71 2.024-11.462 0.33-1.868 0.656-3.716 0.98-5.548 0.162-0.914 0.324-1.824 0.484-2.728 0.11-0.916 0.222-1.828 0.332-2.734 0.446-3.612 0.882-7.148 1.31-10.604 0.216-1.72 0.432-3.42 0.642-5.1 0.226-1.674 0.268-3.364 0.41-5.010 0.238-3.292 0.472-6.498 0.7-9.616 0.218-3.11 0.524-6.11 0.508-9.058 0.132-5.848 0.256-11.32 0.372-16.38-0.168-4.664-0.324-8.948-0.462-12.818-0.054-1.914-0.108-3.726-0.156-5.432-0.134-2.122-0.26-4.108-0.378-5.958-0.138-2.13-0.266-4.060-0.38-5.82-0.498-3.256-0.768-6.592-0.768-9.99 0-0.468 0.026-0.93 0.036-1.396-0.008-0.132-0.016-0.224-0.016-0.224h0.022c0.768-30.766 23.236-56.128 52.682-61.37-0.066-0.296-0.13-0.584-0.198-0.884-0.644-3.248-1.632-6.542-2.556-9.942-0.934-3.388-1.894-6.876-2.88-10.454-0.516-1.78-0.934-3.602-1.546-5.406-0.596-1.802-1.202-3.628-1.81-5.476-1.218-3.682-2.464-7.45-3.736-11.294-0.316-0.958-0.634-1.924-0.956-2.892-0.37-0.954-0.74-1.914-1.114-2.876-0.746-1.924-1.5-3.868-2.26-5.83-1.52-3.904-3.070-7.882-4.646-11.93-1.768-3.96-3.566-7.99-5.392-12.080-0.908-2.038-1.824-4.090-2.746-6.156-0.932-2.060-2.036-4.072-3.052-6.126-2.070-4.084-4.17-8.222-6.294-12.412-2.202-4.142-4.654-8.224-6.998-12.392-1.184-2.074-2.374-4.16-3.57-6.256-1.21-2.086-2.586-4.102-3.876-6.166-2.616-4.098-5.256-8.232-7.918-12.402-11.234-16.298-23.632-32.398-37.33-47.638-13.874-15.104-28.842-29.404-44.598-42.548-15.974-12.928-32.686-24.65-49.676-35.022-17.13-10.194-34.6-18.838-51.734-26.258-4.35-1.7-8.662-3.382-12.934-5.050-2.136-0.812-4.216-1.71-6.36-2.444-2.146-0.714-4.28-1.428-6.404-2.136-4.25-1.386-8.382-2.888-12.548-4.142-4.184-1.174-8.314-2.332-12.392-3.474-2.038-0.55-4.026-1.19-6.054-1.662-2.030-0.458-4.044-0.914-6.044-1.368-3.978-0.91-7.896-1.806-11.748-2.688-3.888-0.686-7.71-1.36-11.462-2.022-1.868-0.33-3.716-0.658-5.546-0.98-0.914-0.162-1.824-0.324-2.728-0.484-0.916-0.112-1.828-0.222-2.734-0.332-3.612-0.448-7.148-0.882-10.604-1.31-1.72-0.216-3.422-0.432-5.102-0.644-1.674-0.226-3.364-0.266-5.010-0.408-3.292-0.238-6.498-0.472-9.616-0.7-3.11-0.218-6.11-0.524-9.058-0.508-5.848-0.132-11.32-0.256-16.38-0.372-4.664 0.168-8.948 0.324-12.818 0.462-1.914 0.054-3.726 0.108-5.432 0.156-2.122 0.134-4.108 0.26-5.958 0.378-2.13 0.138-4.060 0.266-5.82 0.38-3.256 0.51-6.592 0.782-9.99 0.782-0.466 0-0.93-0.026-1.396-0.036-0.132 0.008-0.224 0.014-0.224 0.014v-0.020c-31.004-0.774-56.524-23.586-61.488-53.364-3.2 0.64-6.446 1.61-9.792 2.522-3.386 0.934-6.876 1.894-10.454 2.878-1.778 0.516-3.602 0.938-5.404 1.546-1.802 0.598-3.63 1.204-5.478 1.812-3.68 1.218-7.448 2.464-11.292 3.738-0.96 0.316-1.924 0.632-2.892 0.954-0.956 0.372-1.914 0.742-2.876 1.114-1.926 0.746-3.868 1.5-5.83 2.258-3.904 1.524-7.884 3.070-11.932 4.648-3.96 1.77-7.988 3.566-12.080 5.39-2.038 0.91-4.088 1.824-6.156 2.746-2.060 0.934-4.072 2.036-6.126 3.054-4.082 2.070-8.222 4.172-12.41 6.296-4.144 2.2-8.226 4.652-12.394 6.996-2.074 1.184-4.16 2.376-6.256 3.57-2.086 1.21-4.102 2.586-6.166 3.878-4.098 2.614-8.23 5.254-12.402 7.918-16.296 11.23-32.398 23.632-47.636 37.328-15.104 13.876-29.406 28.84-42.55 44.598-12.928 15.972-24.648 32.684-35.020 49.676-10.196 17.128-18.84 34.602-26.26 51.734-1.698 4.352-3.382 8.664-5.050 12.934-0.812 2.136-1.71 4.218-2.444 6.36-0.714 2.148-1.428 4.282-2.136 6.406-1.386 4.25-2.888 8.382-4.142 12.546-1.174 4.184-2.33 8.316-3.474 12.394-0.55 2.036-1.19 4.024-1.66 6.054-0.46 2.028-0.916 4.042-1.368 6.042-0.91 3.98-1.808 7.898-2.688 11.75-0.688 3.886-1.362 7.71-2.024 11.46-0.33 1.868-0.656 3.718-0.98 5.546-0.162 0.914-0.324 1.824-0.484 2.73-0.11 0.914-0.222 1.828-0.332 2.734-0.446 3.61-0.882 7.148-1.31 10.602-0.216 1.722-0.432 3.422-0.642 5.102-0.226 1.676-0.268 3.364-0.41 5.012-0.238 3.29-0.472 6.496-0.7 9.614-0.218 3.11-0.524 6.11-0.508 9.058-0.132 5.848-0.256 11.32-0.372 16.382 0.168 4.664 0.324 8.946 0.462 12.816 0.054 1.914 0.108 3.726 0.156 5.434 0.134 2.122 0.26 4.106 0.378 5.958 0.138 2.128 0.266 4.058 0.38 5.82 0.496 3.26 0.766 6.596 0.766 9.994 0 0.466-0.026 0.93-0.036 1.396 0.008 0.132 0.016 0.224 0.016 0.224h-0.022c-0.78 31.38-24.134 57.154-54.44 61.674z" />
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
</font>
|
67 |
</defs>
|
68 |
</svg>
|
4 |
<metadata>Generated by IcoMoon</metadata>
|
5 |
<defs>
|
6 |
<font id="foobox" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
+
<glyph unicode="/" d="M0 249.344v185.344h229.376v-183.296q0-28.672 20.48-49.664t50.176-20.992 50.688 20.48 20.992 50.176v433.152q0 119.808 88.576 204.288t210.432 84.48 210.432-84.992 88.576-205.824v-94.208l-137.216-40.96-91.136 43.008v81.92q0 29.696-20.48 50.176t-50.176 20.48-50.688-20.48-20.992-50.176v-427.008q0-122.88-88.064-209.408t-210.944-86.528q-123.904 0-211.968 87.552t-88.064 212.48zM741.376 246.272v187.392l91.136-43.008 137.216 40.96v-188.416q0-29.696 20.48-50.688t50.176-20.992 50.176 20.992 20.48 50.688v191.488h229.376v-185.344q0-123.904-87.552-211.968t-211.456-88.064-211.968 87.040-88.064 209.92z" horiz-adv-x="1340" />
|
11 |
+
<glyph unicode=";" d="M-1.024 189.952v380.928q0 13.312 13.312 13.312h180.224v132.096q0 14.336 13.312 14.336h100.352v-526.336q0-14.336-12.288-14.336h-294.912zM110.592 274.944h68.608q13.312 0 13.312 14.336v210.944h-68.608q-13.312 0-13.312-14.336v-210.944zM340.992 189.952v380.928q0 13.312 13.312 13.312h100.352v-379.904q0-14.336-12.288-14.336h-101.376zM340.992 645.632v70.656q0 14.336 12.288 14.336h101.376v-70.656q0-14.336-12.288-14.336h-101.376zM493.568 189.952v380.928q0 13.312 13.312 13.312h294.912v-516.096q0-13.312-13.312-13.312h-294.912l1.024 70.656q0 14.336 12.288 14.336h180.224v50.176h-193.536zM606.208 274.944h68.608q12.288 0 12.288 14.336v210.944h-68.608q-12.288 0-12.288-14.336v-210.944zM840.704 125.44q0 14.336 13.312 14.336h180.224v50.176h-193.536v380.928q0 13.312 13.312 13.312h293.888v-516.096q0-13.312-12.288-13.312h-294.912v70.656zM952.32 274.944h68.608q13.312 0 13.312 14.336v210.944h-68.608q-13.312 0-13.312-14.336v-210.944z" horiz-adv-x="1148" />
|
12 |
+
<glyph unicode=">" d="M0 467.456q0 63.488 50.688 108.544t115.2 45.056q63.488 0 107.52-36.864h5.12q137.216 83.968 343.040 83.968l5.12 4.096 71.68 273.408 247.808-36.864q0-1.024 2.048-1.024 1.024 0 0 1.024 2.048 1.024 11.776 15.872t14.848 18.944q34.816 32.768 83.968 32.768 50.176 0 84.48-33.28t34.304-83.456-34.304-86.016-84.48-35.84q-58.368 0-89.088 39.424t-30.72 98.816q-2.048-1.024-99.84 13.312t-112.128 17.408h-3.072q-2.048-2.048-16.896-54.784t-30.72-111.616-17.92-65.024v-3.072l5.12-4.096q73.728 0 151.040-20.992t133.632-58.88l3.072-2.048q1.024 1.024 2.048 1.024t2.048 1.024q25.6 18.432 36.352 25.6t30.208 13.312 44.032 6.144q69.632 0 118.784-49.152t49.152-119.808q0-48.128-27.136-88.064t-71.168-61.44q0-199.68-266.24-310.272-41.984-18.432-57.344-23.552-32.768-10.24-93.184-19.456t-95.232-9.216q-122.88 0-236.544 35.84-2.048 2.048-73.728 38.912-97.28 52.224-156.16 118.784t-58.88 159.744h-5.12q-33.792 17.408-60.416 51.2l-9.216 12.288q-15.36 27.648-19.456 46.592t-4.096 51.712zM34.816 455.168q0-67.584 58.368-114.688 5.12 60.416 49.152 118.784t103.424 103.424q-37.888 26.624-83.968 26.624-50.176 0-88.576-41.472t-38.4-92.672zM139.264 305.664q0-55.296 31.744-106.496t81.408-87.552 104.96-60.928 107.52-34.816q76.8-14.336 149.504-14.336 125.952 0 238.592 40.448t189.44 125.44h-3.072q30.72 38.912 44.032 70.144t13.312 74.24q0 55.296-27.136 105.472t-71.168 86.016-94.208 61.952-102.4 39.424q-87.040 23.552-185.344 23.552-75.776 0-155.136-18.432t-153.6-55.296-121.344-101.888-47.104-146.944zM329.728 380.416q0 37.888 23.040 60.928t60.928 23.040 63.488-23.040 25.6-60.928q0-36.864-26.112-61.44t-62.976-24.576-60.416 24.576-23.552 61.44zM366.592 212.48h45.056q25.6-46.080 81.408-70.144t114.176-24.064q59.392 0 112.64 24.064t86.016 70.144h41.984q-25.6-63.488-95.232-98.304t-145.408-34.816q-73.728 0-144.896 35.328t-95.744 97.792zM710.656 380.416q0 38.912 23.552 61.44t62.464 22.528q34.816 0 59.392-24.576t24.576-59.392-24.576-60.416-59.392-25.6q-37.888 0-61.952 24.064t-24.064 61.952zM971.776 859.648q0-35.84 25.6-61.44t61.44-25.6q36.864 0 60.416 25.088t23.552 61.952q0 34.816-24.576 59.392t-59.392 24.576-60.928-25.088-26.112-58.88zM986.112 571.904q56.32-36.864 97.28-94.72t57.344-122.368q60.416 44.032 60.416 98.304 0 59.392-36.352 102.4t-94.72 43.008q-46.080 0-83.968-26.624z" horiz-adv-x="1232" />
|
13 |
+
<glyph unicode="t" d="M0 556.544v145.408q61.44 20.48 103.424 56.32 41.984 33.792 68.608 88.064 26.624 52.224 35.84 130.048h146.432v-259.072h242.688v-160.768h-242.688v-262.144q0-88.064 9.216-114.688 9.216-24.576 34.816-39.936 34.816-20.48 77.824-20.48 78.848 0 154.624 50.176v-160.768q-64.512-31.744-118.784-44.032-53.248-12.288-114.688-12.288-69.632 0-124.928 17.408-56.32 19.456-91.136 51.2-36.864 31.744-53.248 69.632-14.336 34.816-14.336 107.52v358.4h-113.664z" horiz-adv-x="630" />
|
14 |
+
<glyph unicode="" d="M876.856 448v-73.142q0-30.286-18.572-51.714t-48.286-21.428h-402.286l167.428-168q21.714-20.572 21.714-51.428t-21.714-51.428l-42.858-43.428q-21.142-21.142-51.428-21.142-29.714 0-52 21.142l-372 372.572q-21.142 21.142-21.142 51.428 0 29.714 21.142 52l372 371.428q21.714 21.714 52 21.714 29.714 0 51.428-21.714l42.858-42.286q21.714-21.714 21.714-52t-21.714-52l-167.428-167.428h402.286q29.714 0 48.286-21.428t18.572-51.714z" horiz-adv-x="876" />
|
15 |
+
<glyph unicode="" d="M840.286 411.428q0-30.858-21.142-52l-372-372q-22.286-21.142-52-21.142-29.142 0-51.428 21.142l-42.858 42.858q-21.714 21.714-21.714 52t21.714 52l167.428 167.428h-402.286q-29.714 0-48.286 21.428t-18.572 51.714v73.142q0 30.286 18.572 51.714t48.286 21.428h402.286l-167.428 168q-21.714 20.572-21.714 51.428t21.714 51.428l42.858 42.858q21.714 21.714 51.428 21.714 30.286 0 52-21.714l372-372q21.142-20 21.142-51.428z" horiz-adv-x="876" />
|
16 |
+
<glyph unicode="" d="M741.428 204.572q0-22.858-16-38.858l-77.714-77.714q-16-16-38.858-16t-38.858 16l-168 168-168-168q-16-16-38.858-16t-38.858 16l-77.714 77.714q-16 16-16 38.858t16 38.858l168 168-168 168q-16 16-16 38.858t16 38.858l77.714 77.714q16 16 38.858 16t38.858-16l168-168 168 168q16 16 38.858 16t38.858-16l77.714-77.714q16-16 16-38.858t-16-38.858l-168-168 168-168q16-16 16-38.858z" horiz-adv-x="804" />
|
17 |
+
<glyph unicode="" d="M790.572 430.286l-758.858-421.714q-13.142-7.428-22.572-1.714t-9.428 20.572v841.142q0 14.858 9.428 20.572t22.572-1.714l758.858-421.714q13.142-7.428 13.142-17.714t-13.142-17.714z" horiz-adv-x="804" />
|
18 |
+
<glyph unicode="" d="M876.856 850.286v-804.572q0-14.858-10.858-25.714t-25.714-10.858h-292.572q-14.858 0-25.714 10.858t-10.858 25.714v804.572q0 14.858 10.858 25.714t25.714 10.858h292.572q14.858 0 25.714-10.858t10.858-25.714zM364.856 850.286v-804.572q0-14.858-10.858-25.714t-25.714-10.858h-292.572q-14.858 0-25.714 10.858t-10.858 25.714v804.572q0 14.858 10.858 25.714t25.714 10.858h292.572q14.858 0 25.714-10.858t10.858-25.714z" horiz-adv-x="876" />
|
19 |
+
<glyph unicode="" d="M283.428 192q0-34.286-24.286-58.286t-58-24q-34.286 0-58.286 24t-24 58.286 24 58.286 58.286 24q33.714 0 58-24t24.286-58.286zM530.286 82.286q0-30.286-21.428-51.714t-51.714-21.428-51.714 21.428-21.428 51.714 21.428 51.714 51.714 21.428 51.714-21.428 21.428-51.714zM182.858 448q0-37.714-26.858-64.572t-64.572-26.858-64.572 26.858-26.858 64.572 26.858 64.572 64.572 26.858 64.572-26.858 26.858-64.572zM777.142 192q0-26.286-18.858-45.142t-45.142-18.858-45.142 18.858-18.858 45.142 18.858 45.142 45.142 18.858 45.142-18.858 18.858-45.142zM301.714 704q0-41.714-29.428-71.142t-71.142-29.428-71.142 29.428-29.428 71.142 29.428 71.142 71.142 29.428 71.142-29.428 29.428-71.142zM566.858 813.714q0-45.714-32-77.714t-77.714-32-77.714 32-32 77.714 32 77.714 77.714 32 77.714-32 32-77.714zM877.714 448q0-22.858-16-38.858t-38.858-16-38.858 16-16 38.858 16 38.858 38.858 16 38.858-16 16-38.858zM758.858 704q0-18.858-13.428-32.286t-32.286-13.428-32.286 13.428-13.428 32.286 13.428 32.286 32.286 13.428 32.286-13.428 13.428-32.286z" horiz-adv-x="896" />
|
20 |
+
<glyph unicode="" d="M0 135.786q0 89.058 91.104 158.666t220.084 69.608h55.278q-42.994 40.946-42.994 88.034 0 29.686 16.378 59.372-10.236-1.024-29.686-1.024-106.46 0-174.020 66.538t-67.56 163.784q0 93.152 83.94 162.76t191.422 69.608h317.332l-70.632-51.182h-100.318q48.112-18.426 75.238-69.608t27.126-113.626q0-95.2-90.082-165.832-37.876-29.686-49.136-47.088t-11.26-42.994q0-19.45 27.638-49.136t55.278-50.158q62.442-44.016 86.498-90.082t24.056-115.672q0-92.128-83.94-160.202t-227.25-68.072q-136.146 0-230.32 51.182t-94.176 135.122zM114.648 169.568q0-70.632 59.884-120.278t148.94-49.646q121.814 0 176.58 45.040t54.766 119.766q0 19.45-4.094 32.756-3.070 11.26-7.166 20.984t-12.284 19.45-14.332 16.378-19.962 16.89-20.984 15.354-25.592 17.914-26.614 17.914q-39.922 12.284-78.82 12.284-92.128 1.024-161.224-48.112t-69.096-116.696zM182.21 741.786q11.26-80.868 61.93-139.216t112.090-59.372q60.396-2.048 96.222 53.23t25.592 136.146-60.908 137.168-112.090 58.348-97.246-52.206-25.592-134.098zM750.334 717.22v51.182h204.73v204.73h51.182v-204.73h205.754v-51.182h-205.754v-205.754h-51.182v205.754h-204.73z" horiz-adv-x="1212" />
|
21 |
+
<glyph unicode="" d="M0 589.312q0 64.512 27.136 128t77.824 117.76 133.12 88.064 182.784 33.792q162.816 0 267.264-100.352t104.448-236.544q0-175.104-88.576-289.28t-228.864-114.176q-46.080 0-86.528 21.504t-56.832 52.224l-40.96-161.792q-5.12-19.456-13.312-39.424t-17.92-38.4-19.456-34.816-19.456-30.72-16.896-24.064-13.312-16.896l-6.144-8.192q-3.072-4.096-8.192-3.072t-6.144 6.144q0 1.024-1.536 14.336t-3.072 28.16-3.072 38.4-1.024 45.568 3.072 48.64 7.68 49.152q11.264 48.128 75.776 320.512-8.192 16.384-13.312 39.424t-5.12 37.376l-1.024 15.36q0 65.536 33.28 109.056t80.384 43.52q37.888 0 58.88-25.088t20.992-62.976q0-23.552-8.704-57.856t-23.040-78.848-20.48-72.192q-10.24-46.080 17.92-79.872t75.264-33.792q80.896 0 133.632 91.648t52.736 221.696q0 99.328-64.512 162.304t-180.224 62.976q-129.024 0-209.408-82.944t-80.384-198.656q0-68.608 38.912-115.712 13.312-15.36 8.192-32.768-2.048-5.12-6.144-23.552t-6.144-23.552q-2.048-11.264-10.24-14.848t-18.432 0.512q-60.416 24.576-90.624 84.48t-30.208 139.776z" horiz-adv-x="793" />
|
22 |
+
<glyph unicode="" d="M-5.116 852.114q0 51.154 35.808 84.404t93.1 33.25q56.27 0 91.054-32.738 35.808-33.762 35.808-87.984 0-49.108-34.784-81.846-35.808-33.762-94.124-33.762h-1.024q-56.27 0-91.054 33.762t-34.784 84.916zM8.184-43.078v683.416h227.124v-683.416h-227.124zM361.146-43.078h227.124v381.608q0 35.808 8.184 55.246 14.324 34.784 43.48 58.826t73.15 24.042q114.584 0 114.584-154.484v-365.238h227.124v391.838q0 151.416-71.616 229.68t-189.27 78.266q-131.976 0-205.638-113.562v-2.046h-1.024l1.024 2.046v97.192h-227.124q2.046-32.738 2.046-203.592t-2.046-479.824z" horiz-adv-x="1064" />
|
23 |
+
<glyph unicode="" d="M0 52.19q30.682-3.068 61.366-3.068 180.006 0 321.148 110.458-83.866 1.022-150.346 51.138t-91.026 127.846q20.456-4.092 48.070-4.092 35.796 0 68.526 9.204-90.004 17.386-148.812 88.47t-58.808 164.154v3.068q54.206-30.682 117.618-31.706-53.184 34.774-84.378 91.538t-31.194 123.244q0 69.548 35.796 129.892 96.14-119.664 234.724-190.746t297.114-79.264q-7.16 33.752-7.16 59.32 0 106.368 75.684 182.052t183.074 75.684q111.482 0 188.188-81.822 88.98 18.41 163.642 63.412-28.638-93.072-112.504-143.186 74.662 9.204 147.278 40.91-49.092-76.708-127.846-133.982v-33.752q0-103.3-30.172-207.11t-92.048-198.416-147.79-168.244-206.086-117.106-258.248-43.468q-213.758 0-395.81 115.572z" horiz-adv-x="1258" />
|
24 |
+
<glyph unicode="" d="M286.416 426.496v195.584h157.696v98.304q0 106.496 69.12 181.248t167.424 74.752h156.672v-195.584h-156.672q-15.36 0-27.648-16.896t-12.288-41.472v-100.352h196.608v-195.584h-196.608v-474.112h-196.608v474.112h-157.696z" horiz-adv-x="836" />
|
25 |
+
<glyph unicode="" d="M0 163.328q11.264 15.36 32.256 26.112t50.176 20.48 41.472 15.872q19.456 0 34.304-4.608t34.304-15.36 25.6-12.8q48.128-21.504 266.24-121.856 19.456-4.096 36.352 0t40.448 17.92 24.576 14.848q20.48 9.216 78.336 35.328t89.6 40.448q4.096 2.048 42.496 21.504t61.952 24.576q13.312 2.048 28.16-1.024t24.064-7.68 23.552-13.312 18.432-10.752 15.872-6.144 18.944-8.192 11.264-11.264q3.072-4.096 4.096-14.336-10.24-13.312-31.744-24.576t-52.224-22.528-40.96-16.384q-44.032-20.48-131.584-62.976t-131.584-62.976q-7.168-3.072-21.504-11.776t-24.064-13.312-26.112-11.264-28.16-7.168-30.208 1.536l-270.336 125.952q-6.144 3.072-32.768 14.336t-52.736 22.528-54.784 24.576-47.616 24.064-22.016 16.896q-4.096 4.096-4.096 13.312zM0 437.76q11.264 15.36 32.256 25.6t51.2 20.48 42.496 15.36q19.456 0 34.816-4.608t35.328-15.36 26.112-13.824q43.008-19.456 129.536-59.392t130.56-60.416q19.456-5.12 37.888-0.512t39.936 17.408 25.6 14.848q69.632 32.768 163.84 73.728 11.264 5.12 32.256 16.896t39.424 19.968 36.864 11.264q16.384 3.072 32.256-1.024t38.4-17.408 23.552-13.312q5.12-3.072 15.872-6.656t18.432-8.192 11.776-10.752q3.072-5.12 4.096-14.336-10.24-14.336-32.256-26.112t-53.76-23.040-41.984-16.384q-49.152-23.552-138.752-66.56t-125.44-60.416q-7.168-3.072-26.624-14.336t-29.696-15.36-33.28-10.24-36.352 0q-219.136 103.424-266.24 124.928-6.144 3.072-45.056 19.456t-71.168 30.72-62.976 30.208-34.816 23.040q-4.096 4.096-4.096 14.336zM0 711.168q10.24 15.36 32.256 27.136t53.76 23.040 41.984 16.384l356.352 165.888q30.72 0 54.784-7.168t57.856-26.624 40.96-22.528q39.936-18.432 119.808-55.808t119.808-55.808q4.096-2.048 37.376-15.36t55.808-24.576 27.648-20.48q3.072-4.096 4.096-13.312-9.216-13.312-26.624-23.040t-44.544-19.456-35.328-13.824q-48.128-22.528-143.36-68.096t-142.336-68.096q-6.144-3.072-20.48-11.264t-23.552-12.8-25.6-10.752-27.648-6.144-28.672 1.024q-250.88 116.736-262.144 121.856-4.096 2.048-64.512 28.16t-104.448 47.616-49.152 30.72q-4.096 4.096-4.096 13.312z" horiz-adv-x="1002" />
|
26 |
+
<glyph unicode="" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" />
|
27 |
+
<glyph unicode="" d="M64 384h384v-384l-138.26 138.26-202-202-107.48 107.48 202 202zM821.74 245.74l202-202-107.48-107.48-202 202-138.26-138.26v384h384zM960 512h-384v384l138.26-138.26 202 202 107.48-107.48-202-202zM309.74 757.74l138.26 138.26v-384h-384l138.26 138.26-202 202 107.48 107.48z" />
|
28 |
+
<glyph unicode="" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
|
29 |
+
<glyph unicode="" d="M512 384l256 256h-192v256h-128v-256h-192zM744.726 488.728l-71.74-71.742 260.080-96.986-421.066-157.018-421.066 157.018 260.080 96.986-71.742 71.742-279.272-104.728v-256l512-192 512 192v256z" />
|
30 |
+
<glyph unicode="" d="M960 832h-896c-35.2 0-64-28.8-64-64v-640c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v640c0 35.2-28.8 64-64 64zM896 704v-46l-384-226.286-384 226.286v46h768zM128 192v354.572l384-226.286 384 226.286v-354.572h-768z" />
|
31 |
+
<glyph unicode="" d="M1024 448c-1.278 66.862-15.784 133.516-42.576 194.462-26.704 61-65.462 116.258-113.042 161.92-47.552 45.696-103.944 81.82-164.984 105.652-61.004 23.924-126.596 35.352-191.398 33.966-64.81-1.282-129.332-15.374-188.334-41.356-59.048-25.896-112.542-63.47-156.734-109.576-44.224-46.082-79.16-100.708-102.186-159.798-23.114-59.062-34.128-122.52-32.746-185.27 1.286-62.76 14.964-125.148 40.134-182.206 25.088-57.1 61.476-108.828 106.11-151.548 44.61-42.754 97.472-76.504 154.614-98.72 57.118-22.304 118.446-32.902 179.142-31.526 60.708 1.29 120.962 14.554 176.076 38.914 55.15 24.282 105.116 59.48 146.366 102.644 41.282 43.14 73.844 94.236 95.254 149.43 13.034 33.458 21.88 68.4 26.542 103.798 1.246-0.072 2.498-0.12 3.762-0.12 35.346 0 64 28.652 64 64 0 1.796-0.094 3.572-0.238 5.332h0.238zM922.306 278.052c-23.472-53.202-57.484-101.4-99.178-141.18-41.67-39.81-91-71.186-144.244-91.79-53.228-20.678-110.29-30.452-166.884-29.082-56.604 1.298-112.596 13.736-163.82 36.474-51.25 22.666-97.684 55.49-135.994 95.712-38.338 40.198-68.528 87.764-88.322 139.058-19.87 51.284-29.228 106.214-27.864 160.756 1.302 54.552 13.328 108.412 35.254 157.69 21.858 49.3 53.498 93.97 92.246 130.81 38.73 36.868 84.53 65.87 133.874 84.856 49.338 19.060 102.136 28.006 154.626 26.644 52.5-1.306 104.228-12.918 151.562-34.034 47.352-21.050 90.256-51.502 125.624-88.782 35.396-37.258 63.21-81.294 81.39-128.688 18.248-47.392 26.782-98.058 25.424-148.496h0.238c-0.144-1.76-0.238-3.536-0.238-5.332 0-33.012 24.992-60.174 57.086-63.624-6.224-34.822-16.53-68.818-30.78-100.992z" />
|
32 |
+
<glyph unicode="" d="M192 448c0 12.18 0.704 24.196 2.030 36.022l-184.98 60.104c-5.916-31.14-9.050-63.264-9.050-96.126 0-147.23 62.166-279.922 161.654-373.324l114.284 157.296c-52.124 56.926-83.938 132.758-83.938 216.028zM832 448c0-83.268-31.812-159.102-83.938-216.028l114.284-157.296c99.488 93.402 161.654 226.094 161.654 373.324 0 32.862-3.132 64.986-9.048 96.126l-184.98-60.104c1.324-11.828 2.028-23.842 2.028-36.022zM576 761.592c91.934-18.662 169.544-76.742 214.45-155.826l184.978 60.102c-73.196 155.42-222.24 268.060-399.428 290.156v-194.432zM233.55 605.768c44.906 79.084 122.516 137.164 214.45 155.826v194.43c-177.188-22.096-326.23-134.736-399.426-290.154l184.976-60.102zM644.556 156.672c-40.39-18.408-85.272-28.672-132.556-28.672s-92.166 10.264-132.554 28.67l-114.292-157.31c73.206-40.366 157.336-63.36 246.846-63.36s173.64 22.994 246.848 63.36l-114.292 157.312z" />
|
33 |
+
<glyph unicode="" d="M384 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128-70.692 0-128 57.308-128 128zM655.53 719.53c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128-70.692 0-128 57.308-128 128zM832 448c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM719.53 176.47c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM448.002 64c0 0 0 0 0 0 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0 0 0 0 0 0 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM176.472 176.47c0 0 0 0 0 0 0 35.346 28.654 64 64 64 35.346 0 64-28.654 64-64 0 0 0 0 0 0 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM144.472 719.53c0 0 0 0 0 0 0 53.019 42.981 96 96 96 53.019 0 96-42.981 96-96 0 0 0 0 0 0 0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96zM56 448c0 39.765 32.235 72 72 72s72-32.235 72-72c0-39.765-32.235-72-72-72-39.765 0-72 32.235-72 72z" />
|
34 |
+
<glyph unicode="" d="M512 960c-278.748 0-505.458-222.762-511.848-499.974 5.92 241.864 189.832 435.974 415.848 435.974 229.75 0 416-200.576 416-448 0-53.020 42.98-96 96-96 53.020 0 96 42.98 96 96 0 282.77-229.23 512-512 512zM512-64c278.748 0 505.458 222.762 511.848 499.974-5.92-241.864-189.832-435.974-415.848-435.974-229.75 0-416 200.576-416 448 0 53.020-42.98 96-96 96-53.020 0-96-42.98-96-96 0-282.77 229.23-512 512-512z" />
|
35 |
+
<glyph unicode="" d="M0.042 446.382l-0.022-0.004c0 0 0.012-0.090 0.028-0.222 0.11-3.878 0.55-7.676 1.322-11.352 0.204-1.746 0.428-3.66 0.674-5.774 0.222-1.886 0.46-3.914 0.718-6.078 0.374-2.566 0.77-5.292 1.19-8.176 0.856-5.746 1.8-12.124 2.908-18.958 1.348-6.446 2.804-13.414 4.364-20.864 0.71-3.718 1.776-7.504 2.786-11.406 1.024-3.89 2.078-7.894 3.16-12.004 0.566-2.042 1.040-4.132 1.708-6.208 0.656-2.074 1.32-4.176 1.988-6.3 1.348-4.234 2.726-8.566 4.136-12.988 0.352-1.106 0.708-2.21 1.064-3.324 0.408-1.102 0.814-2.208 1.226-3.316 0.826-2.218 1.658-4.458 2.502-6.714 1.696-4.496 3.422-9.078 5.18-13.742 1.968-4.566 3.97-9.214 6.004-13.934 1.018-2.348 2.044-4.714 3.078-7.098 1.048-2.376 2.27-4.704 3.408-7.074 2.322-4.714 4.678-9.496 7.062-14.332 2.47-4.786 5.208-9.512 7.846-14.328 1.336-2.398 2.68-4.808 4.028-7.23 1.368-2.41 2.902-4.75 4.356-7.14 2.95-4.738 5.93-9.524 8.934-14.348 12.64-18.894 26.676-37.566 42.21-55.278 15.712-17.578 32.726-34.25 50.692-49.602 18.18-15.136 37.264-28.902 56.726-41.114 19.604-12.036 39.644-22.312 59.376-31.144 5.004-2.040 9.964-4.062 14.878-6.066 2.462-0.972 4.868-2.032 7.336-2.918 2.47-0.868 4.93-1.734 7.376-2.594 4.898-1.684 9.678-3.468 14.484-4.992 4.832-1.43 9.604-2.844 14.312-4.242 2.356-0.672 4.66-1.426 7.004-2.012 2.346-0.574 4.676-1.14 6.986-1.704 4.606-1.118 9.142-2.214 13.604-3.296 4.5-0.868 8.926-1.722 13.27-2.558 2.166-0.41 4.31-0.82 6.434-1.222 1.062-0.2 2.118-0.398 3.166-0.598 1.060-0.148 2.118-0.292 3.166-0.442 4.192-0.582 8.292-1.152 12.3-1.71 1.998-0.274 3.972-0.546 5.922-0.816 1.946-0.286 3.904-0.378 5.814-0.57 3.822-0.336 7.544-0.664 11.164-0.98 3.616-0.304 7.104-0.688 10.526-0.738 0.23-0.008 0.452-0.016 0.682-0.026 0.614-34.812 29.008-62.846 63.968-62.846 0.542 0 1.080 0.028 1.62 0.042v-0.022c0 0 0.090 0.012 0.224 0.028 3.878 0.11 7.674 0.55 11.35 1.322 1.748 0.204 3.662 0.426 5.776 0.672 1.884 0.222 3.912 0.462 6.076 0.718 2.566 0.376 5.292 0.772 8.176 1.192 5.746 0.856 12.124 1.8 18.958 2.908 6.446 1.348 13.414 2.804 20.864 4.362 3.718 0.712 7.504 1.778 11.406 2.786 3.892 1.026 7.894 2.080 12.004 3.162 2.044 0.566 4.132 1.040 6.208 1.708 2.074 0.656 4.174 1.318 6.3 1.988 4.232 1.348 8.564 2.726 12.988 4.134 1.104 0.354 2.21 0.708 3.324 1.066 1.1 0.406 2.206 0.814 3.316 1.226 2.216 0.824 4.456 1.658 6.714 2.5 4.496 1.698 9.078 3.424 13.74 5.182 4.568 1.968 9.216 3.97 13.936 6.004 2.348 1.018 4.714 2.044 7.098 3.078 2.376 1.048 4.702 2.27 7.074 3.408 4.714 2.322 9.494 4.678 14.33 7.062 4.786 2.47 9.512 5.208 14.328 7.846 2.398 1.336 4.808 2.678 7.23 4.028 2.41 1.366 4.75 2.9 7.14 4.354 4.738 2.952 9.524 5.93 14.35 8.936 18.89 12.64 37.564 26.674 55.278 42.21 17.574 15.712 34.248 32.726 49.602 50.69 15.136 18.182 28.902 37.264 41.112 56.728 12.036 19.602 22.314 39.644 31.142 59.376 2.042 5.002 4.062 9.964 6.068 14.878 0.974 2.462 2.032 4.868 2.918 7.334 0.87 2.472 1.732 4.932 2.592 7.376 1.686 4.898 3.468 9.678 4.994 14.484 1.432 4.832 2.846 9.604 4.24 14.31 0.674 2.358 1.43 4.66 2.016 7.004 0.57 2.348 1.138 4.676 1.702 6.988 1.118 4.606 2.216 9.14 3.296 13.602 0.868 4.502 1.72 8.928 2.558 13.272 0.41 2.164 0.818 4.308 1.222 6.434 0.2 1.060 0.398 2.116 0.596 3.164 0.148 1.062 0.296 2.118 0.444 3.168 0.582 4.19 1.152 8.292 1.708 12.3 0.278 1.996 0.55 3.97 0.82 5.922 0.284 1.946 0.376 3.902 0.568 5.812 0.336 3.822 0.664 7.546 0.98 11.164 0.304 3.616 0.686 7.106 0.738 10.528 0.020 0.534 0.040 1.044 0.058 1.574 35.224 0.146 63.732 28.738 63.732 63.992 0 0.542-0.028 1.080-0.042 1.62h0.022c0 0-0.012 0.090-0.028 0.224-0.11 3.878-0.55 7.674-1.322 11.35-0.204 1.748-0.428 3.662-0.674 5.776-0.222 1.886-0.46 3.914-0.718 6.076-0.374 2.566-0.77 5.294-1.19 8.176-0.856 5.746-1.8 12.124-2.908 18.958-1.348 6.444-2.804 13.414-4.364 20.862-0.71 3.72-1.776 7.506-2.786 11.408-1.024 3.892-2.078 7.894-3.16 12.002-0.566 2.044-1.040 4.134-1.708 6.208-0.656 2.076-1.32 4.174-1.988 6.3-1.348 4.234-2.726 8.566-4.136 12.99-0.352 1.102-0.708 2.21-1.064 3.324-0.408 1.1-0.814 2.206-1.226 3.316-0.826 2.216-1.658 4.454-2.502 6.714-1.696 4.498-3.422 9.080-5.18 13.74-1.968 4.57-3.97 9.216-6.004 13.936-1.020 2.348-2.044 4.714-3.078 7.098-1.048 2.376-2.27 4.702-3.408 7.076-2.322 4.714-4.678 9.494-7.062 14.33-2.47 4.786-5.208 9.512-7.846 14.328-1.336 2.398-2.68 4.808-4.028 7.23-1.368 2.41-2.902 4.75-4.356 7.14-2.95 4.74-5.93 9.524-8.934 14.35-12.64 18.892-26.676 37.564-42.21 55.278-15.712 17.576-32.726 34.25-50.692 49.602-18.18 15.136-37.264 28.902-56.726 41.112-19.604 12.036-39.644 22.314-59.376 31.142-5.004 2.040-9.964 4.062-14.878 6.068-2.462 0.974-4.868 2.032-7.336 2.918-2.47 0.87-4.93 1.734-7.376 2.592-4.898 1.684-9.678 3.468-14.484 4.994-4.832 1.432-9.604 2.846-14.312 4.242-2.356 0.672-4.66 1.428-7.004 2.014-2.346 0.572-4.676 1.138-6.986 1.702-4.606 1.118-9.142 2.216-13.604 3.298-4.5 0.868-8.926 1.72-13.27 2.558-2.166 0.412-4.31 0.82-6.434 1.222-1.062 0.2-2.118 0.398-3.166 0.596-1.060 0.148-2.118 0.296-3.166 0.442-4.192 0.584-8.292 1.154-12.3 1.71-1.998 0.276-3.972 0.55-5.922 0.82-1.946 0.284-3.904 0.376-5.814 0.57-3.822 0.336-7.544 0.664-11.164 0.98-3.616 0.304-7.104 0.686-10.526 0.738-0.852 0.032-1.674 0.062-2.512 0.092-0.65 34.78-29.028 62.778-63.966 62.778-0.542 0-1.080-0.028-1.62-0.042l-0.002 0.022c0 0-0.090-0.012-0.222-0.028-3.878-0.11-7.676-0.55-11.352-1.322-1.748-0.204-3.662-0.426-5.776-0.672-1.884-0.222-3.912-0.462-6.076-0.718-2.566-0.376-5.292-0.772-8.176-1.192-5.746-0.856-12.124-1.8-18.958-2.908-6.446-1.348-13.414-2.804-20.864-4.362-3.718-0.712-7.504-1.778-11.406-2.786-3.892-1.026-7.894-2.080-12.004-3.162-2.044-0.566-4.132-1.040-6.208-1.708-2.074-0.656-4.174-1.318-6.3-1.988-4.232-1.348-8.564-2.726-12.988-4.134-1.104-0.354-2.21-0.708-3.324-1.066-1.1-0.406-2.206-0.814-3.316-1.226-2.216-0.824-4.456-1.658-6.714-2.5-4.496-1.698-9.078-3.424-13.74-5.182-4.568-1.968-9.216-3.97-13.936-6.004-2.348-1.018-4.714-2.044-7.098-3.078-2.376-1.048-4.702-2.27-7.074-3.408-4.714-2.322-9.494-4.678-14.33-7.062-4.786-2.47-9.512-5.208-14.328-7.846-2.398-1.336-4.808-2.678-7.23-4.028-2.41-1.366-4.75-2.9-7.14-4.354-4.738-2.952-9.524-5.93-14.35-8.936-18.89-12.64-37.564-26.674-55.278-42.21-17.574-15.712-34.248-32.726-49.602-50.69-15.136-18.182-28.902-37.264-41.112-56.728-12.036-19.602-22.314-39.644-31.142-59.376-2.042-5.002-4.062-9.964-6.068-14.878-0.974-2.462-2.032-4.868-2.918-7.334-0.87-2.472-1.732-4.932-2.592-7.376-1.686-4.898-3.468-9.678-4.994-14.484-1.432-4.832-2.846-9.604-4.24-14.31-0.674-2.358-1.43-4.66-2.016-7.004-0.57-2.348-1.138-4.676-1.702-6.988-1.118-4.606-2.216-9.14-3.296-13.602-0.868-4.502-1.72-8.928-2.558-13.272-0.41-2.164-0.818-4.308-1.222-6.434-0.2-1.060-0.398-2.116-0.596-3.164-0.148-1.062-0.296-2.118-0.444-3.168-0.582-4.19-1.152-8.292-1.708-12.3-0.278-1.996-0.55-3.97-0.82-5.922-0.284-1.946-0.376-3.902-0.568-5.812-0.336-3.822-0.664-7.546-0.98-11.164-0.304-3.616-0.686-7.106-0.738-10.528-0.020-0.548-0.040-1.076-0.058-1.62-34.376-1.112-61.902-29.304-61.902-63.946 0-0.542 0.028-1.078 0.042-1.618zM73.518 511.294c0.042 0.196 0.086 0.384 0.128 0.58 0.644 3.248 1.632 6.542 2.556 9.942 0.934 3.388 1.894 6.876 2.88 10.454 0.516 1.78 0.934 3.602 1.546 5.406 0.596 1.802 1.202 3.628 1.81 5.476 1.218 3.682 2.464 7.45 3.736 11.294 0.316 0.958 0.634 1.924 0.956 2.892 0.37 0.954 0.74 1.914 1.114 2.876 0.746 1.924 1.5 3.868 2.26 5.83 1.52 3.904 3.070 7.882 4.646 11.93 1.768 3.96 3.566 7.99 5.392 12.080 0.908 2.038 1.824 4.090 2.746 6.156 0.932 2.060 2.036 4.072 3.052 6.126 2.070 4.084 4.17 8.222 6.294 12.412 2.202 4.142 4.654 8.224 6.998 12.392 1.184 2.074 2.374 4.16 3.57 6.256 1.21 2.086 2.586 4.102 3.876 6.166 2.616 4.098 5.256 8.232 7.918 12.402 11.234 16.298 23.632 32.398 37.33 47.638 13.874 15.104 28.842 29.404 44.598 42.548 15.974 12.928 32.686 24.65 49.676 35.022 17.13 10.194 34.6 18.838 51.734 26.258 4.35 1.7 8.662 3.382 12.934 5.050 2.136 0.812 4.216 1.71 6.36 2.444 2.146 0.714 4.28 1.428 6.404 2.136 4.25 1.386 8.382 2.888 12.548 4.142 4.184 1.174 8.314 2.332 12.392 3.474 2.038 0.55 4.026 1.19 6.054 1.662 2.030 0.458 4.044 0.914 6.044 1.368 3.978 0.91 7.896 1.806 11.748 2.688 3.888 0.686 7.71 1.36 11.462 2.022 1.868 0.33 3.716 0.658 5.546 0.98 0.914 0.162 1.824 0.324 2.728 0.484 0.916 0.112 1.828 0.222 2.734 0.332 3.612 0.448 7.148 0.882 10.604 1.31 1.72 0.216 3.422 0.432 5.102 0.644 1.674 0.226 3.364 0.266 5.010 0.408 3.292 0.238 6.498 0.472 9.616 0.7 3.11 0.218 6.11 0.524 9.058 0.508 5.848 0.132 11.32 0.256 16.38 0.372 4.664-0.168 8.948-0.324 12.818-0.462 1.914-0.054 3.726-0.108 5.432-0.156 2.122-0.134 4.108-0.26 5.958-0.378 2.13-0.138 4.060-0.266 5.82-0.38 3.256-0.51 6.592-0.782 9.99-0.782 0.466 0 0.93 0.026 1.396 0.036 0.132-0.008 0.224-0.014 0.224-0.014v0.020c31.14 0.778 56.75 23.784 61.556 53.754 0.542-0.12 1.064-0.236 1.612-0.356 3.246-0.644 6.542-1.632 9.942-2.556 3.386-0.934 6.876-1.894 10.454-2.88 1.778-0.516 3.602-0.934 5.404-1.546 1.802-0.596 3.63-1.202 5.478-1.812 3.68-1.218 7.448-2.464 11.292-3.736 0.96-0.316 1.924-0.634 2.892-0.956 0.956-0.37 1.914-0.74 2.876-1.112 1.926-0.746 3.868-1.5 5.83-2.26 3.904-1.52 7.884-3.070 11.932-4.646 3.96-1.768 7.988-3.566 12.080-5.392 2.038-0.908 4.088-1.824 6.156-2.746 2.060-0.932 4.072-2.036 6.126-3.054 4.082-2.070 8.222-4.17 12.41-6.294 4.144-2.202 8.226-4.654 12.394-6.998 2.074-1.184 4.16-2.374 6.256-3.572 2.086-1.21 4.102-2.586 6.166-3.876 4.098-2.616 8.23-5.256 12.402-7.918 16.296-11.234 32.398-23.632 47.636-37.33 15.104-13.874 29.406-28.842 42.55-44.598 12.928-15.974 24.648-32.686 35.020-49.676 10.196-17.13 18.84-34.6 26.26-51.736 1.698-4.348 3.382-8.662 5.050-12.932 0.812-2.136 1.71-4.216 2.444-6.36 0.714-2.146 1.428-4.28 2.136-6.404 1.386-4.25 2.888-8.384 4.142-12.548 1.174-4.184 2.33-8.316 3.474-12.392 0.55-2.038 1.19-4.026 1.66-6.054 0.46-2.030 0.916-4.046 1.368-6.046 0.91-3.978 1.808-7.896 2.688-11.748 0.688-3.888 1.362-7.71 2.024-11.462 0.33-1.868 0.656-3.716 0.98-5.548 0.162-0.914 0.324-1.824 0.484-2.728 0.11-0.916 0.222-1.828 0.332-2.734 0.446-3.612 0.882-7.148 1.31-10.604 0.216-1.72 0.432-3.42 0.642-5.1 0.226-1.674 0.268-3.364 0.41-5.010 0.238-3.292 0.472-6.498 0.7-9.616 0.218-3.11 0.524-6.11 0.508-9.058 0.132-5.848 0.256-11.32 0.372-16.38-0.168-4.664-0.324-8.948-0.462-12.818-0.054-1.914-0.108-3.726-0.156-5.432-0.134-2.122-0.26-4.108-0.378-5.958-0.138-2.13-0.266-4.060-0.38-5.82-0.498-3.256-0.768-6.592-0.768-9.99 0-0.468 0.026-0.93 0.036-1.396-0.008-0.132-0.016-0.224-0.016-0.224h0.022c0.768-30.766 23.236-56.128 52.682-61.37-0.066-0.296-0.13-0.584-0.198-0.884-0.644-3.248-1.632-6.542-2.556-9.942-0.934-3.388-1.894-6.876-2.88-10.454-0.516-1.78-0.934-3.602-1.546-5.406-0.596-1.802-1.202-3.628-1.81-5.476-1.218-3.682-2.464-7.45-3.736-11.294-0.316-0.958-0.634-1.924-0.956-2.892-0.37-0.954-0.74-1.914-1.114-2.876-0.746-1.924-1.5-3.868-2.26-5.83-1.52-3.904-3.070-7.882-4.646-11.93-1.768-3.96-3.566-7.99-5.392-12.080-0.908-2.038-1.824-4.090-2.746-6.156-0.932-2.060-2.036-4.072-3.052-6.126-2.070-4.084-4.17-8.222-6.294-12.412-2.202-4.142-4.654-8.224-6.998-12.392-1.184-2.074-2.374-4.16-3.57-6.256-1.21-2.086-2.586-4.102-3.876-6.166-2.616-4.098-5.256-8.232-7.918-12.402-11.234-16.298-23.632-32.398-37.33-47.638-13.874-15.104-28.842-29.404-44.598-42.548-15.974-12.928-32.686-24.65-49.676-35.022-17.13-10.194-34.6-18.838-51.734-26.258-4.35-1.7-8.662-3.382-12.934-5.050-2.136-0.812-4.216-1.71-6.36-2.444-2.146-0.714-4.28-1.428-6.404-2.136-4.25-1.386-8.382-2.888-12.548-4.142-4.184-1.174-8.314-2.332-12.392-3.474-2.038-0.55-4.026-1.19-6.054-1.662-2.030-0.458-4.044-0.914-6.044-1.368-3.978-0.91-7.896-1.806-11.748-2.688-3.888-0.686-7.71-1.36-11.462-2.022-1.868-0.33-3.716-0.658-5.546-0.98-0.914-0.162-1.824-0.324-2.728-0.484-0.916-0.112-1.828-0.222-2.734-0.332-3.612-0.448-7.148-0.882-10.604-1.31-1.72-0.216-3.422-0.432-5.102-0.644-1.674-0.226-3.364-0.266-5.010-0.408-3.292-0.238-6.498-0.472-9.616-0.7-3.11-0.218-6.11-0.524-9.058-0.508-5.848-0.132-11.32-0.256-16.38-0.372-4.664 0.168-8.948 0.324-12.818 0.462-1.914 0.054-3.726 0.108-5.432 0.156-2.122 0.134-4.108 0.26-5.958 0.378-2.13 0.138-4.060 0.266-5.82 0.38-3.256 0.51-6.592 0.782-9.99 0.782-0.466 0-0.93-0.026-1.396-0.036-0.132 0.008-0.224 0.014-0.224 0.014v-0.020c-31.004-0.774-56.524-23.586-61.488-53.364-3.2 0.64-6.446 1.61-9.792 2.522-3.386 0.934-6.876 1.894-10.454 2.878-1.778 0.516-3.602 0.938-5.404 1.546-1.802 0.598-3.63 1.204-5.478 1.812-3.68 1.218-7.448 2.464-11.292 3.738-0.96 0.316-1.924 0.632-2.892 0.954-0.956 0.372-1.914 0.742-2.876 1.114-1.926 0.746-3.868 1.5-5.83 2.258-3.904 1.524-7.884 3.070-11.932 4.648-3.96 1.77-7.988 3.566-12.080 5.39-2.038 0.91-4.088 1.824-6.156 2.746-2.060 0.934-4.072 2.036-6.126 3.054-4.082 2.070-8.222 4.172-12.41 6.296-4.144 2.2-8.226 4.652-12.394 6.996-2.074 1.184-4.16 2.376-6.256 3.57-2.086 1.21-4.102 2.586-6.166 3.878-4.098 2.614-8.23 5.254-12.402 7.918-16.296 11.23-32.398 23.632-47.636 37.328-15.104 13.876-29.406 28.84-42.55 44.598-12.928 15.972-24.648 32.684-35.020 49.676-10.196 17.128-18.84 34.602-26.26 51.734-1.698 4.352-3.382 8.664-5.050 12.934-0.812 2.136-1.71 4.218-2.444 6.36-0.714 2.148-1.428 4.282-2.136 6.406-1.386 4.25-2.888 8.382-4.142 12.546-1.174 4.184-2.33 8.316-3.474 12.394-0.55 2.036-1.19 4.024-1.66 6.054-0.46 2.028-0.916 4.042-1.368 6.042-0.91 3.98-1.808 7.898-2.688 11.75-0.688 3.886-1.362 7.71-2.024 11.46-0.33 1.868-0.656 3.718-0.98 5.546-0.162 0.914-0.324 1.824-0.484 2.73-0.11 0.914-0.222 1.828-0.332 2.734-0.446 3.61-0.882 7.148-1.31 10.602-0.216 1.722-0.432 3.422-0.642 5.102-0.226 1.676-0.268 3.364-0.41 5.012-0.238 3.29-0.472 6.496-0.7 9.614-0.218 3.11-0.524 6.11-0.508 9.058-0.132 5.848-0.256 11.32-0.372 16.382 0.168 4.664 0.324 8.946 0.462 12.816 0.054 1.914 0.108 3.726 0.156 5.434 0.134 2.122 0.26 4.106 0.378 5.958 0.138 2.128 0.266 4.058 0.38 5.82 0.496 3.26 0.766 6.596 0.766 9.994 0 0.466-0.026 0.93-0.036 1.396 0.008 0.132 0.016 0.224 0.016 0.224h-0.022c-0.78 31.38-24.134 57.154-54.44 61.674z" />
|
36 |
+
<glyph unicode="" d="M1024 544l-225.738 22.574 143.66 175.582-135.766 135.764-175.582-143.658-22.574 225.738h-192l-22.574-225.738-175.582 143.658-135.764-135.764 143.658-175.582-225.738-22.574v-192l225.738-22.574-143.658-175.582 135.764-135.766 175.582 143.66 22.574-225.738h192l22.574 225.738 175.582-143.66 135.766 135.766-143.66 175.582 225.738 22.574v192zM704 527.528v-159.056l-112.472-112.472h-159.056l-112.472 112.472v159.056l112.47 112.472h159.056l112.474-112.472z" />
|
37 |
+
<glyph unicode="" d="M874.022 810.020c-92.652 92.656-220.636 149.98-362.022 149.98-219.488 0-406.69-138.128-479.498-332.188l119.876-44.954c54.604 145.546 195.006 249.142 359.622 249.142 106.040 0 202.020-43 271.506-112.494l-143.506-143.506h384v384l-149.978-149.98zM512 64c-106.040 0-202.026 42.992-271.512 112.488l143.512 143.512h-384v-384l149.994 149.994c92.646-92.662 220.618-149.994 362.006-149.994 219.49 0 406.692 138.128 479.5 332.188l-119.876 44.954c-54.604-145.546-195.006-249.142-359.624-249.142z" />
|
38 |
+
<glyph unicode="" d="M512 752c-100.252 0-189.54-46.802-246.326-119.256l-76.776 57.582c74.32 95.764 191.494 157.674 323.102 157.674v112l160-160-160-160v112zM512 144c100.254 0 189.542 46.802 246.326 119.256l76.776-57.582c-74.32-95.764-191.494-157.674-323.102-157.674v-112l-160 160 160 160v-112zM201.6 448c0-100.364 49.928-189.508 126.724-244.902l-57.584-76.78c-100.108 72.928-165.14 189.966-165.14 321.682h-105.6l160 160 160-160h-118.4zM918.4 448h105.6l-160-160-160 160h118.4c0 100.364-49.928 189.508-126.724 244.902l57.584 76.778c100.108-72.926 165.14-189.962 165.14-321.68z" />
|
39 |
+
<glyph unicode="" d="M831.924 753.296v0 0zM834.050 448c104.384 99.81 155.082 197.58 121.354 256-19.26 33.356-63.36 49.296-123.48 49.296v-48c42.144 0 72.766-9.458 81.912-25.296 7.218-12.504 3.2-31.73-1.446-45.658-8.906-26.71-28.288-58.664-56.042-92.404-16.848-20.478-36.27-41.122-57.874-61.642-29.764 25.698-62.876 51.258-98.796 76.058-3.514 43.48-9.090 84.916-16.458 123.518 56.19 16.666 107.186 25.418 148.682 25.422l0.022 48c-0.008 0-0.018 0-0.026 0-45.174-0.004-99.396-9.032-158.874-26.404-34.24 140.318-93.566 233.11-161.024 233.11-67.458 0-126.784-92.792-161.028-233.102-59.474 17.372-113.698 26.398-158.872 26.398-60.12 0-104.248-15.942-123.506-49.296-33.73-58.42 16.966-156.19 121.352-256-104.386-99.808-155.082-197.58-121.352-256 19.26-33.36 63.37-49.294 123.506-49.294 45.172 0 99.396 9.030 158.872 26.4 34.244-140.314 93.568-233.106 161.028-233.106 67.458 0 126.784 92.792 161.028 233.102 59.474-17.374 113.7-26.398 158.874-26.398 60.12 0 104.248 15.944 123.506 49.296 33.724 58.418-16.97 156.192-121.358 256zM762.542 448c-18.62-15.876-38.454-31.584-59.358-46.988 0.53 15.476 0.816 31.142 0.816 46.988 0 15.844-0.286 31.51-0.812 46.988 20.904-15.404 40.738-31.112 59.354-46.988zM637.292 231.132c-23.054 8.196-46.562 17.52-70.27 27.868 13.626 7.262 27.294 14.824 40.974 22.722 13.722 7.922 27.146 16 40.288 24.198-2.882-25.766-6.562-50.76-10.992-74.788zM584 323.292c-23.782-13.728-47.876-26.63-72-38.616-24.124 11.982-48.22 24.884-72 38.616-23.976 13.844-47.192 28.226-69.498 43.012-1.65 26.712-2.502 54.010-2.502 81.696s0.852 54.984 2.502 81.694c22.306 14.786 45.522 29.17 69.498 43.014 23.78 13.728 47.876 26.63 72 38.614 24.124-11.982 48.218-24.884 72-38.614 23.976-13.842 47.192-28.23 69.498-43.014 1.65-26.71 2.502-54.008 2.502-81.694s-0.852-54.984-2.502-81.696c-22.306-14.784-45.522-29.172-69.498-43.012zM375.712 305.92c13.14-8.198 26.564-16.276 40.288-24.198 13.68-7.898 27.346-15.46 40.974-22.722-23.704-10.348-47.214-19.67-70.266-27.864-4.43 24.026-8.112 49.020-10.996 74.784zM320.812 401.010c-20.904 15.406-40.74 31.116-59.358 46.99 18.618 15.876 38.454 31.584 59.358 46.99-0.528-15.48-0.812-31.144-0.812-46.99s0.284-31.512 0.812-46.99zM386.708 664.864c23.052-8.194 46.562-17.518 70.266-27.864-13.626-7.262-27.294-14.824-40.974-22.722-13.722-7.922-27.146-16.002-40.288-24.198 2.884 25.764 6.566 50.758 10.996 74.784zM608 614.278c-13.68 7.898-27.346 15.46-40.972 22.722 23.706 10.346 47.212 19.668 70.268 27.862 4.43-24.024 8.11-49.016 10.992-74.782-13.142 8.196-26.566 16.274-40.288 24.198zM421.18 793.184c15.34 40.908 33.322 73.668 52.002 94.736 9.738 10.986 24.378 24.080 38.818 24.080 14.442 0 29.078-13.094 38.818-24.080 18.68-21.068 36.658-53.828 52.002-94.736 9.312-24.834 17.478-51.978 24.45-80.952-37.136-12.926-75.832-28.824-115.268-47.532-39.438 18.71-78.132 34.608-115.27 47.536 6.97 28.972 15.136 56.116 24.448 80.948zM167.65 541.938c-27.756 33.74-47.136 65.692-56.042 92.404-4.644 13.926-8.664 33.154-1.444 45.658 9.144 15.838 39.776 25.294 81.938 25.296h0.004c41.492 0 92.486-8.752 148.674-25.418-7.368-38.604-12.942-80.040-16.456-123.522-35.92-24.798-69.036-50.36-98.8-76.058-21.604 20.52-41.026 41.162-57.874 61.64zM192.1 190.708c-42.162 0-72.792 9.456-81.936 25.292-7.22 12.504-3.2 31.73 1.444 45.658 8.906 26.708 28.286 58.662 56.042 92.4 16.848 20.48 36.27 41.124 57.874 61.644 29.762-25.702 62.878-51.262 98.798-76.058 3.514-43.482 9.088-84.916 16.456-123.524-56.19-16.662-107.184-25.412-148.678-25.412zM602.82 102.816c-15.342-40.91-33.322-73.668-52.002-94.738-9.74-10.984-24.376-24.078-38.818-24.078-14.44 0-29.080 13.094-38.818 24.078-18.68 21.070-36.662 53.828-52.002 94.736-9.312 24.834-17.478 51.978-24.45 80.952 37.138 12.93 75.832 28.824 115.268 47.536 39.44-18.71 78.13-34.61 115.27-47.538-6.972-28.972-15.136-56.116-24.448-80.948zM912.39 261.656c4.642-13.926 8.664-33.152 1.446-45.656-9.146-15.84-39.778-25.296-81.938-25.296-41.496 0-92.49 8.754-148.678 25.418 7.368 38.606 12.944 80.042 16.458 123.524 35.92 24.8 69.036 50.362 98.796 76.058 21.604-20.522 41.026-41.164 57.874-61.64 27.758-33.744 47.136-65.696 56.042-92.408zM432 448c0 44.183 35.817 80 80 80s80-35.817 80-80c0-44.183-35.817-80-80-80-44.183 0-80 35.817-80 80z" />
|
40 |
+
<glyph unicode="" d="M466.038 402.038l-320 320-146.038-146.038v384h384l-146.038-146.038 320-320zM512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512h128c0-212.078 171.922-384 384-384s384 171.922 384 384c0 212.078-171.922 384-384 384v128z" />
|
41 |
+
<glyph unicode="" d="M640-64l192 192-320 320 320 320-192 192-512-512z" />
|
42 |
+
<glyph unicode="" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" />
|
43 |
+
<glyph unicode="" d="M0 448l1024-448-192 448 192 448z" />
|
44 |
+
<glyph unicode="" d="M1024 448l-1024 448 192-448-192-448z" />
|
45 |
+
<glyph unicode="" d="M768 960l-512-512 512-512-255.998 512z" />
|
46 |
+
<glyph unicode="" d="M256-64l512 512-512 512 256-512z" />
|
47 |
+
<glyph unicode="" d="M640.002 704l-256-256 256-256.002z" />
|
48 |
+
<glyph unicode="" d="M384.002 192l256 256-256 256z" />
|
49 |
+
<glyph unicode="" d="M0 448.002l512-512.002v320h511.998l0.002 384h-512v320l-512-511.998zM152 509.492l16 16v-154.98l-16 16v122.98zM136 402.512l-16 16v58.98l16 16v-90.98zM184 541.492l16 16v-218.982l-16 16v186.982zM216 573.492l16 16v-282.982l-16 16v250.982zM248 605.492l16 16v-346.982l-16 16v314.982zM280 637.492l16 15.998v-410.98l-16 16v378.982zM312 669.49l16 16v-474.98l-16 16v442.98zM344 701.49l16 16v-538.98l-16 16v506.98zM376 733.49l16 16v-602.98l-16 16v570.98zM408 765.49l16 16v-666.98l-16 16v634.98zM104 461.492v-26.98l-13.49 13.49 13.49 13.49zM472 320v256h16v-256h-16zM504 320v256h16v-256h-16zM536 320v256h16v-256h-16zM568 320v256h16v-256h-16zM600 320v256h16v-256h-16zM632 320v256h16v-256h-16zM664 320v256h16v-256h-16zM696 320v256h16v-256h-16zM728 320v256h16v-256h-16zM760 320v256h16v-256h-16zM792 320v256h16v-256h-16zM824 320v256h16v-256h-16zM856 320v256h16v-256h-16zM888 320v256h16v-256h-16zM920 320v256h16v-256h-16zM959.998 320h-7.998v256h8l-0.002-256zM448 576h8v-256h-8v-229.49l-8 8v698.98l8 8v-229.49z" />
|
50 |
+
<glyph unicode="" d="M1024 447.998l-512 512.002v-320h-511.998l-0.002-384h512v-320l512 511.998zM872 386.508l-16-16v154.98l16-16v-122.98zM888 493.488l16-16v-58.98l-16-16v90.98zM840 354.508l-16-16v218.982l16-16v-186.982zM808 322.508l-16-16v282.982l16-16v-250.982zM776 290.508l-16-16v346.982l16-16v-314.982zM744 258.508l-16-15.998v410.98l16-16v-378.982zM712 226.51l-16-16v474.98l16-16v-442.98zM680 194.51l-16-16v538.98l16-16v-506.98zM648 162.51l-16-16v602.98l16-16v-570.98zM616 130.51l-16-16v666.98l16-16v-634.98zM920 434.508v26.98l13.49-13.49-13.49-13.49zM552 576v-256h-16v256h16zM520 576v-256h-16v256h16zM488 576v-256h-16v256h16zM456 576v-256h-16v256h16zM424 576v-256h-16v256h16zM392 576v-256h-16v256h16zM360 576v-256h-16v256h16zM328 576v-256h-16v256h16zM296 576v-256h-16v256h16zM264 576v-256h-16v256h16zM232 576v-256h-16v256h16zM200 576v-256h-16v256h16zM168 576v-256h-16v256h16zM136 576v-256h-16v256h16zM104 576v-256h-16v256h16zM64.002 576h7.998v-256h-8l0.002 256zM576 320h-8v256h8v229.49l8-8v-698.98l-8-8v229.49z" />
|
51 |
+
<glyph unicode="" d="M0 448l512-512v320h511.998l0.002 384h-512v320z" />
|
52 |
+
<glyph unicode="" d="M1024 448l-512 512v-320h-511.998l-0.002-384h512v-320z" />
|
53 |
+
<glyph unicode="" d="M448 704c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 128c-35.348 0-64 28.652-64 64s28.652 64 64 64c35.346 0 64-28.652 64-64s-28.654-64-64-64zM512 448c-114.876 0-208-93.124-208-208s93.124-208 208-208c-229.75 0-416 186.25-416 416s186.25 416 416 416c114.876 0 208-93.124 208-208s-93.124-208-208-208z" />
|
54 |
+
<glyph unicode="" d="M512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156 78.572-78.572 183.038-121.844 294.156-121.844 111.118 0 215.584 43.272 294.156 121.844 78.572 78.572 121.844 183.038 121.844 294.156 0 111.118-43.272 215.584-121.844 294.156-78.572 78.572-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512 0 282.77 229.23 512 512 512zM448 256h128v-128h-128zM448 768h128v-384h-128z" />
|
55 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 32c-229.75 0-416 186.25-416 416s186.25 416 416 416 416-186.25 416-416-186.25-416-416-416zM813.256 493.254l-256.002 256c-24.992 24.994-65.514 24.994-90.508 0s-24.994-65.516 0-90.51l146.744-146.744h-357.49c-35.346 0-64-28.654-64-64s28.654-64 64-64h357.49l-146.746-146.744c-24.994-24.994-24.994-65.518 0-90.512 12.498-12.496 28.878-18.744 45.256-18.744s32.758 6.248 45.254 18.744l256.002 256c24.992 24.994 24.992 65.518 0 90.51z" />
|
56 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM512 32c229.75 0 416 186.25 416 416s-186.25 416-416 416-416-186.25-416-416 186.25-416 416-416zM210.744 493.254l256.002 256c24.992 24.994 65.514 24.994 90.508 0s24.994-65.516 0-90.51l-146.744-146.744h357.49c35.346 0 64-28.654 64-64s-28.654-64-64-64h-357.49l146.746-146.744c24.994-24.994 24.994-65.518 0-90.512-12.498-12.496-28.878-18.744-45.256-18.744s-32.758 6.248-45.254 18.744l-256.002 256c-24.992 24.994-24.992 65.518 0 90.51z" />
|
57 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM813.256 402.744l-256.002-256c-12.496-12.496-28.876-18.744-45.254-18.744s-32.758 6.248-45.254 18.744c-24.994 24.994-24.994 65.518 0 90.512l146.744 146.744h-357.49c-35.346 0-64 28.654-64 64s28.654 64 64 64h357.49l-146.746 146.746c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.508 0l256.002-256c24.994-24.994 24.994-65.518 0.002-90.512z" />
|
58 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM210.744 402.744l256.002-256c12.496-12.496 28.876-18.744 45.254-18.744s32.758 6.248 45.254 18.744c24.994 24.994 24.994 65.518 0 90.512l-146.744 146.744h357.49c35.346 0 64 28.654 64 64s-28.654 64-64 64h-357.49l146.746 146.746c24.994 24.994 24.994 65.516 0 90.51s-65.516 24.994-90.508 0l-256.002-256c-24.994-24.994-24.994-65.518-0.002-90.512z" />
|
59 |
+
<glyph unicode="" d="M1023.998-64h-1023.998v1024h1024l-0.002-1024zM128 832v-768h767.998l0.002 768h-768zM576 224l224 224-224 224v-160h-320v-128h320v-160z" />
|
60 |
+
<glyph unicode="" d="M0.002-64h1023.998v1024h-1024l0.002-1024zM896 832v-768h-767.998l-0.002 768h768zM448 224l-224 224 224 224v-160h320v-128h-320v-160z" />
|
61 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM576 224v160h-320v128h320v160l224-224-224-224z" />
|
62 |
+
<glyph unicode="" d="M512 960c282.77 0 512-229.23 512-512s-229.23-512-512-512-512 229.23-512 512 229.23 512 512 512zM448 224v160h320v128h-320v160l-224-224 224-224z" />
|
63 |
+
<glyph unicode="" d="M0 640h64v-384h-64zM128 640h64v-384h-64zM256 640h64v-384h-64zM1024 448l-448 448v-256h-192v-384h192v-256z" />
|
64 |
+
<glyph unicode="" d="M960 640h64v-384h-64zM832 640h64v-384h-64zM704 640h64v-384h-64zM0 448l448 448v-256h192v-384h-192v-256z" />
|
65 |
+
<glyph unicode="" d="M864 256c-45.16 0-85.92-18.738-115.012-48.83l-431.004 215.502c1.314 8.252 2.016 16.706 2.016 25.328s-0.702 17.076-2.016 25.326l431.004 215.502c29.092-30.090 69.852-48.828 115.012-48.828 88.366 0 160 71.634 160 160s-71.634 160-160 160-160-71.634-160-160c0-8.622 0.704-17.076 2.016-25.326l-431.004-215.504c-29.092 30.090-69.852 48.83-115.012 48.83-88.366 0-160-71.636-160-160 0-88.368 71.634-160 160-160 45.16 0 85.92 18.738 115.012 48.828l431.004-215.502c-1.312-8.25-2.016-16.704-2.016-25.326 0-88.368 71.634-160 160-160s160 71.632 160 160c0 88.364-71.634 160-160 160z" />
|
66 |
</font>
|
67 |
</defs>
|
68 |
</svg>
|
assets/admin/layout/css/layout-rtl.css
CHANGED
@@ -253,8 +253,8 @@
|
|
253 |
{
|
254 |
width: 235px;
|
255 |
/* float: left;
|
256 |
-
|
257 |
-
|
258 |
}
|
259 |
.page-sidebar-tech-banker.navbar-collapse
|
260 |
{
|
253 |
{
|
254 |
width: 235px;
|
255 |
/* float: left;
|
256 |
+
position: relative;
|
257 |
+
margin-right: -100%;*/
|
258 |
}
|
259 |
.page-sidebar-tech-banker.navbar-collapse
|
260 |
{
|
assets/admin/layout/css/mail-bank-custom.css
CHANGED
@@ -183,3 +183,18 @@
|
|
183 |
margin: 65px 0px 10px 0px;
|
184 |
position: initial;
|
185 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
margin: 65px 0px 10px 0px;
|
184 |
position: initial;
|
185 |
}
|
186 |
+
.premium-editions
|
187 |
+
{
|
188 |
+
float:right;
|
189 |
+
font-size:15px !important;
|
190 |
+
top:10px !important;
|
191 |
+
color:white !important;
|
192 |
+
margin-top:10px !important;
|
193 |
+
font-weight:500 !important;
|
194 |
+
text-decoration: none !important;
|
195 |
+
|
196 |
+
}
|
197 |
+
.premium-editions:hover
|
198 |
+
{
|
199 |
+
text-decoration: underline !important;
|
200 |
+
}
|
assets/global/img/icon.png
CHANGED
Binary file
|
assets/global/plugins/custom/js/custom.js
CHANGED
@@ -18,248 +18,248 @@
|
|
18 |
|
19 |
, init: function (type, element, options)
|
20 |
{
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
}
|
44 |
|
45 |
, getOptions: function (options)
|
46 |
{
|
47 |
-
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
}
|
59 |
|
60 |
, enter: function (e)
|
61 |
{
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
}
|
75 |
|
76 |
, leave: function (e)
|
77 |
{
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
}
|
92 |
|
93 |
, show: function ()
|
94 |
{
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
}
|
151 |
|
152 |
, setContent: function ()
|
153 |
{
|
154 |
-
|
155 |
-
|
156 |
|
157 |
-
|
158 |
-
|
159 |
}
|
160 |
|
161 |
, hide: function ()
|
162 |
{
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
}
|
188 |
|
189 |
, fixTitle: function ()
|
190 |
{
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
}
|
197 |
|
198 |
, hasContent: function ()
|
199 |
{
|
200 |
-
|
201 |
}
|
202 |
|
203 |
, getPosition: function (inside)
|
204 |
{
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
}
|
211 |
|
212 |
, getTitle: function ()
|
213 |
{
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
|
218 |
-
|
219 |
-
|
220 |
|
221 |
-
|
222 |
}
|
223 |
|
224 |
, tip: function ()
|
225 |
{
|
226 |
-
|
227 |
}
|
228 |
|
229 |
, validate: function ()
|
230 |
{
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
}
|
238 |
|
239 |
, enable: function ()
|
240 |
{
|
241 |
-
|
242 |
}
|
243 |
|
244 |
, disable: function ()
|
245 |
{
|
246 |
-
|
247 |
}
|
248 |
|
249 |
, toggleEnabled: function ()
|
250 |
{
|
251 |
-
|
252 |
}
|
253 |
|
254 |
, toggle: function (e)
|
255 |
{
|
256 |
-
|
257 |
-
|
258 |
}
|
259 |
|
260 |
, destroy: function ()
|
261 |
{
|
262 |
-
|
263 |
}
|
264 |
|
265 |
}
|
@@ -274,13 +274,13 @@
|
|
274 |
{
|
275 |
return this.each(function ()
|
276 |
{
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
})
|
285 |
}
|
286 |
|
@@ -336,44 +336,44 @@
|
|
336 |
|
337 |
if (!selector)
|
338 |
{
|
339 |
-
|
340 |
-
|
341 |
}
|
342 |
|
343 |
if ($this.parent('li').hasClass('active'))
|
344 |
-
|
345 |
|
346 |
var $previous = $ul.find('.active:last a')
|
347 |
var hideEvent = $.Event('hide.bs.tab',
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
var showEvent = $.Event('show.bs.tab',
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
|
356 |
$previous.trigger(hideEvent)
|
357 |
$this.trigger(showEvent)
|
358 |
|
359 |
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented())
|
360 |
-
|
361 |
|
362 |
var $target = $(selector)
|
363 |
|
364 |
this.activate($this.closest('li'), $ul)
|
365 |
this.activate($target, $target.parent(), function ()
|
366 |
{
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
})
|
378 |
}
|
379 |
|
@@ -381,51 +381,51 @@
|
|
381 |
{
|
382 |
var $active = container.find('> .active')
|
383 |
var transition = callback
|
384 |
-
|
385 |
-
|
386 |
|
387 |
function next()
|
388 |
{
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
}
|
423 |
|
424 |
$active.length && transition ?
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
|
430 |
$active.removeClass('in')
|
431 |
}
|
@@ -438,13 +438,13 @@
|
|
438 |
{
|
439 |
return this.each(function ()
|
440 |
{
|
441 |
-
|
442 |
-
|
443 |
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
})
|
449 |
}
|
450 |
|
@@ -474,7 +474,7 @@
|
|
474 |
}
|
475 |
|
476 |
$(document)
|
477 |
-
|
478 |
-
|
479 |
|
480 |
}(jQuery);
|
18 |
|
19 |
, init: function (type, element, options)
|
20 |
{
|
21 |
+
var eventIn
|
22 |
+
, eventOut
|
23 |
+
|
24 |
+
this.type = type
|
25 |
+
this.$element = $(element)
|
26 |
+
this.options = this.getOptions(options)
|
27 |
+
this.enabled = true
|
28 |
+
|
29 |
+
if (this.options.trigger == 'click')
|
30 |
+
{
|
31 |
+
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
32 |
+
} else if (this.options.trigger != 'manual')
|
33 |
+
{
|
34 |
+
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
35 |
+
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
36 |
+
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
37 |
+
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
38 |
+
}
|
39 |
+
|
40 |
+
this.options.selector ?
|
41 |
+
(this._options = $.extend({}, this.options, {trigger: 'manual', selector: ''})) :
|
42 |
+
this.fixTitle()
|
43 |
}
|
44 |
|
45 |
, getOptions: function (options)
|
46 |
{
|
47 |
+
options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
|
48 |
|
49 |
+
if (options.delay && typeof options.delay == 'number')
|
50 |
+
{
|
51 |
+
options.delay = {
|
52 |
+
show: options.delay
|
53 |
+
, hide: options.delay
|
54 |
+
}
|
55 |
+
}
|
56 |
|
57 |
+
return options
|
58 |
}
|
59 |
|
60 |
, enter: function (e)
|
61 |
{
|
62 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
63 |
+
|
64 |
+
if (!self.options.delay || !self.options.delay.show)
|
65 |
+
return self.show()
|
66 |
+
|
67 |
+
clearTimeout(this.timeout)
|
68 |
+
self.hoverState = 'in'
|
69 |
+
this.timeout = setTimeout(function ()
|
70 |
+
{
|
71 |
+
if (self.hoverState == 'in')
|
72 |
+
self.show()
|
73 |
+
}, self.options.delay.show)
|
74 |
}
|
75 |
|
76 |
, leave: function (e)
|
77 |
{
|
78 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
79 |
+
|
80 |
+
if (this.timeout)
|
81 |
+
clearTimeout(this.timeout)
|
82 |
+
if (!self.options.delay || !self.options.delay.hide)
|
83 |
+
return self.hide()
|
84 |
+
|
85 |
+
self.hoverState = 'out'
|
86 |
+
this.timeout = setTimeout(function ()
|
87 |
+
{
|
88 |
+
if (self.hoverState == 'out')
|
89 |
+
self.hide()
|
90 |
+
}, self.options.delay.hide)
|
91 |
}
|
92 |
|
93 |
, show: function ()
|
94 |
{
|
95 |
+
var $tip
|
96 |
+
, inside
|
97 |
+
, pos
|
98 |
+
, actualWidth
|
99 |
+
, actualHeight
|
100 |
+
, placement
|
101 |
+
, tp
|
102 |
+
|
103 |
+
if (this.hasContent() && this.enabled)
|
104 |
+
{
|
105 |
+
$tip = this.tip()
|
106 |
+
this.setContent()
|
107 |
+
|
108 |
+
if (this.options.animation)
|
109 |
+
{
|
110 |
+
$tip.addClass('fade')
|
111 |
+
}
|
112 |
+
|
113 |
+
placement = typeof this.options.placement == 'function' ?
|
114 |
+
this.options.placement.call(this, $tip[0], this.$element[0]) :
|
115 |
+
this.options.placement
|
116 |
+
|
117 |
+
inside = /in/.test(placement)
|
118 |
+
|
119 |
+
$tip
|
120 |
+
.detach()
|
121 |
+
.css({top: 0, left: 0, display: 'block'})
|
122 |
+
.insertAfter(this.$element)
|
123 |
+
|
124 |
+
pos = this.getPosition(inside)
|
125 |
+
|
126 |
+
actualWidth = $tip[0].offsetWidth
|
127 |
+
actualHeight = $tip[0].offsetHeight
|
128 |
+
|
129 |
+
switch (inside ? placement.split(' ')[1] : placement)
|
130 |
+
{
|
131 |
+
case 'bottom':
|
132 |
+
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
133 |
+
break
|
134 |
+
case 'top':
|
135 |
+
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
|
136 |
+
break
|
137 |
+
case 'left':
|
138 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
|
139 |
+
break
|
140 |
+
case 'right':
|
141 |
+
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
|
142 |
+
break
|
143 |
+
}
|
144 |
+
|
145 |
+
$tip
|
146 |
+
.offset(tp)
|
147 |
+
.addClass(placement)
|
148 |
+
.addClass('in')
|
149 |
+
}
|
150 |
}
|
151 |
|
152 |
, setContent: function ()
|
153 |
{
|
154 |
+
var $tip = this.tip()
|
155 |
+
, title = this.getTitle()
|
156 |
|
157 |
+
$tip.find('.tooltip_tip-inner')[this.options.html ? 'html' : 'text'](title)
|
158 |
+
$tip.removeClass('fade in top bottom left right')
|
159 |
}
|
160 |
|
161 |
, hide: function ()
|
162 |
{
|
163 |
+
var that = this
|
164 |
+
, $tip = this.tip()
|
165 |
+
|
166 |
+
$tip.removeClass('in')
|
167 |
+
|
168 |
+
function removeWithAnimation()
|
169 |
+
{
|
170 |
+
var timeout = setTimeout(function ()
|
171 |
+
{
|
172 |
+
$tip.off($.support.transition.end).detach()
|
173 |
+
}, 500)
|
174 |
+
|
175 |
+
$tip.one($.support.transition.end, function ()
|
176 |
+
{
|
177 |
+
clearTimeout(timeout)
|
178 |
+
$tip.detach()
|
179 |
+
})
|
180 |
+
}
|
181 |
+
|
182 |
+
$.support.transition && this.$tip.hasClass('fade') ?
|
183 |
+
removeWithAnimation() :
|
184 |
+
$tip.detach()
|
185 |
+
|
186 |
+
return this
|
187 |
}
|
188 |
|
189 |
, fixTitle: function ()
|
190 |
{
|
191 |
+
var $e = this.$element
|
192 |
+
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string')
|
193 |
+
{
|
194 |
+
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
195 |
+
}
|
196 |
}
|
197 |
|
198 |
, hasContent: function ()
|
199 |
{
|
200 |
+
return this.getTitle()
|
201 |
}
|
202 |
|
203 |
, getPosition: function (inside)
|
204 |
{
|
205 |
+
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()),
|
206 |
+
{
|
207 |
+
width: this.$element[0].offsetWidth
|
208 |
+
, height: this.$element[0].offsetHeight
|
209 |
+
})
|
210 |
}
|
211 |
|
212 |
, getTitle: function ()
|
213 |
{
|
214 |
+
var title
|
215 |
+
, $e = this.$element
|
216 |
+
, o = this.options
|
217 |
|
218 |
+
title = $e.attr('data-original-title')
|
219 |
+
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
|
220 |
|
221 |
+
return title
|
222 |
}
|
223 |
|
224 |
, tip: function ()
|
225 |
{
|
226 |
+
return this.$tip = this.$tip || $(this.options.template)
|
227 |
}
|
228 |
|
229 |
, validate: function ()
|
230 |
{
|
231 |
+
if (!this.$element[0].parentNode)
|
232 |
+
{
|
233 |
+
this.hide()
|
234 |
+
this.$element = null
|
235 |
+
this.options = null
|
236 |
+
}
|
237 |
}
|
238 |
|
239 |
, enable: function ()
|
240 |
{
|
241 |
+
this.enabled = true
|
242 |
}
|
243 |
|
244 |
, disable: function ()
|
245 |
{
|
246 |
+
this.enabled = false
|
247 |
}
|
248 |
|
249 |
, toggleEnabled: function ()
|
250 |
{
|
251 |
+
this.enabled = !this.enabled
|
252 |
}
|
253 |
|
254 |
, toggle: function (e)
|
255 |
{
|
256 |
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
257 |
+
self[self.tip().hasClass('in') ? 'hide' : 'show']()
|
258 |
}
|
259 |
|
260 |
, destroy: function ()
|
261 |
{
|
262 |
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
263 |
}
|
264 |
|
265 |
}
|
274 |
{
|
275 |
return this.each(function ()
|
276 |
{
|
277 |
+
var $this = $(this)
|
278 |
+
, data = $this.data('tooltip_tip')
|
279 |
+
, options = typeof option == 'object' && option
|
280 |
+
if (!data)
|
281 |
+
$this.data('tooltip_tip', (data = new Tooltip(this, options)))
|
282 |
+
if (typeof option == 'string')
|
283 |
+
data[option]()
|
284 |
})
|
285 |
}
|
286 |
|
336 |
|
337 |
if (!selector)
|
338 |
{
|
339 |
+
selector = $this.attr('href')
|
340 |
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
341 |
}
|
342 |
|
343 |
if ($this.parent('li').hasClass('active'))
|
344 |
+
return
|
345 |
|
346 |
var $previous = $ul.find('.active:last a')
|
347 |
var hideEvent = $.Event('hide.bs.tab',
|
348 |
+
{
|
349 |
+
relatedTarget: $this[0]
|
350 |
+
})
|
351 |
var showEvent = $.Event('show.bs.tab',
|
352 |
+
{
|
353 |
+
relatedTarget: $previous[0]
|
354 |
+
})
|
355 |
|
356 |
$previous.trigger(hideEvent)
|
357 |
$this.trigger(showEvent)
|
358 |
|
359 |
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented())
|
360 |
+
return
|
361 |
|
362 |
var $target = $(selector)
|
363 |
|
364 |
this.activate($this.closest('li'), $ul)
|
365 |
this.activate($target, $target.parent(), function ()
|
366 |
{
|
367 |
+
$previous.trigger
|
368 |
+
({
|
369 |
+
type: 'hidden.bs.tab',
|
370 |
+
relatedTarget: $this[0]
|
371 |
+
})
|
372 |
+
$this.trigger(
|
373 |
+
{
|
374 |
+
type: 'shown.bs.tab',
|
375 |
+
relatedTarget: $previous[0]
|
376 |
+
})
|
377 |
})
|
378 |
}
|
379 |
|
381 |
{
|
382 |
var $active = container.find('> .active')
|
383 |
var transition = callback
|
384 |
+
&& $.support.transition
|
385 |
+
&& ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
|
386 |
|
387 |
function next()
|
388 |
{
|
389 |
+
$active
|
390 |
+
.removeClass('active')
|
391 |
+
.find('> .dropdown-menu > .active')
|
392 |
+
.removeClass('active')
|
393 |
+
.end()
|
394 |
+
.find('[data-toggle="tab"]')
|
395 |
+
.attr('aria-expanded', false)
|
396 |
+
|
397 |
+
element
|
398 |
+
.addClass('active')
|
399 |
+
.find('[data-toggle="tab"]')
|
400 |
+
.attr('aria-expanded', true)
|
401 |
+
|
402 |
+
if (transition)
|
403 |
+
{
|
404 |
+
element[0].offsetWidth // reflow for transition
|
405 |
+
element.addClass('in')
|
406 |
+
} else
|
407 |
+
{
|
408 |
+
element.removeClass('fade')
|
409 |
+
}
|
410 |
+
|
411 |
+
if (element.parent('.dropdown-menu').length)
|
412 |
+
{
|
413 |
+
element
|
414 |
+
.closest('li.dropdown')
|
415 |
+
.addClass('active')
|
416 |
+
.end()
|
417 |
+
.find('[data-toggle="tab"]')
|
418 |
+
.attr('aria-expanded', true)
|
419 |
+
}
|
420 |
+
|
421 |
+
callback && callback()
|
422 |
}
|
423 |
|
424 |
$active.length && transition ?
|
425 |
+
$active
|
426 |
+
.one('bsTransitionEnd', next)
|
427 |
+
.emulateTransitionEnd(Tab.TRANSITION_DURATION) :
|
428 |
+
next()
|
429 |
|
430 |
$active.removeClass('in')
|
431 |
}
|
438 |
{
|
439 |
return this.each(function ()
|
440 |
{
|
441 |
+
var $this = $(this)
|
442 |
+
var data = $this.data('bs.tab')
|
443 |
|
444 |
+
if (!data)
|
445 |
+
$this.data('bs.tab', (data = new Tab(this)))
|
446 |
+
if (typeof option == 'string')
|
447 |
+
data[option]()
|
448 |
})
|
449 |
}
|
450 |
|
474 |
}
|
475 |
|
476 |
$(document)
|
477 |
+
.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
|
478 |
+
.on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
|
479 |
|
480 |
}(jQuery);
|
assets/global/plugins/datatables/media/js/jquery.datatables.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
!function(t, e, n){!function(t){"use strict"; "function" == typeof define && define.amd?define("datatables", ["jquery"], t):"object" == typeof exports?module.exports = t(require("jquery")):jQuery && !jQuery.fn.dataTable && t(jQuery)}(function(a){"use strict"; function r(t){var e, n, o = "a aa ai ao as b fn i m o s ", i = {}; a.each(t, function(a, s){e = a.match(/^([^A-Z]+?)([A-Z])/), e && - 1 !== o.indexOf(e[1] + " ") && (n = a.replace(e[0], e[2].toLowerCase()), i[n] = a, "o" === e[1] && r(t[a]))}), t._hungarianMap = i}function o(t, e, i){t._hungarianMap || r(t); var s; a.each(e, function(r, l){s = t._hungarianMap[r], s === n || !i && e[s] !== n || ("o" === s.charAt(0)?(e[s] || (e[s] = {}), a.extend(!0, e[s], e[r]), o(t[s], e[s], i)):e[s] = e[r])})}function i(t){var e = qt.defaults.oLanguage, n = t.sZeroRecords; !t.sEmptyTable && n && "No data available in table" === e.sEmptyTable && Nt(t, t, "sZeroRecords", "sEmptyTable"), !t.sLoadingRecords && n && "Loading..." === e.sLoadingRecords && Nt(t, t, "sZeroRecords", "sLoadingRecords"), t.sInfoThousands && (t.sThousands = t.sInfoThousands); var a = t.sDecimal; a && Xt(a)}function s(t){be(t, "ordering", "bSort"), be(t, "orderMulti", "bSortMulti"), be(t, "orderClasses", "bSortClasses"), be(t, "orderCellsTop", "bSortCellsTop"), be(t, "order", "aaSorting"), be(t, "orderFixed", "aaSortingFixed"), be(t, "paging", "bPaginate"), be(t, "pagingType", "sPaginationType"), be(t, "pageLength", "iDisplayLength"), be(t, "searching", "bFilter"), "boolean" == typeof t.sScrollX && (t.sScrollX = t.sScrollX?"100%":""); var e = t.aoSearchCols; if (e)for (var n = 0, a = e.length; a > n; n++)e[n] && o(qt.models.oSearch, e[n])}function l(t){be(t, "orderable", "bSortable"), be(t, "orderData", "aDataSort"), be(t, "orderSequence", "asSorting"), be(t, "orderDataType", "sortDataType"); var e = t.aDataSort; e && !a.isArray(e) && (t.aDataSort = [e])}function u(t){if (!qt.__browser){var e = {}; qt.__browser = e; var n = a("<div/>").css({position:"fixed", top:0, left:0, height:1, width:1, overflow:"hidden"}).append(a("<div/>").css({position:"absolute", top:1, left:1, width:100, overflow:"scroll"}).append(a("<div/>").css({width:"100%", height:10}))).appendTo("body"), r = n.children(), o = r.children(); e.barWidth = r[0].offsetWidth - r[0].clientWidth, e.bScrollOversize = 100 === o[0].offsetWidth && 100 !== r[0].clientWidth, e.bScrollbarLeft = 1 !== Math.round(o.offset().left), e.bBounding = n[0].getBoundingClientRect().width?!0:!1, n.remove()}a.extend(t.oBrowser, qt.__browser), t.oScroll.iBarWidth = qt.__browser.barWidth}function c(t, e, a, r, o, i){var s, l = r, u = !1; for (a !== n && (s = a, u = !0); l !== o; )t.hasOwnProperty(l) && (s = u?e(s, t[l], l, t):t[l], u = !0, l += i); return s}function f(t, n){var r = qt.defaults.column, o = t.aoColumns.length, i = a.extend({}, qt.models.oColumn, r, {nTh:n?n:e.createElement("th"), sTitle:r.sTitle?r.sTitle:n?n.innerHTML:"", aDataSort:r.aDataSort?r.aDataSort:[o], mData:r.mData?r.mData:o, idx:o}); t.aoColumns.push(i); var s = t.aoPreSearchCols; s[o] = a.extend({}, qt.models.oSearch, s[o]), d(t, o, a(n).data())}function d(t, e, r){var i = t.aoColumns[e], s = t.oClasses, u = a(i.nTh); if (!i.sWidthOrig){i.sWidthOrig = u.attr("width") || null; var c = (u.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); c && (i.sWidthOrig = c[1])}r !== n && null !== r && (l(r), o(qt.defaults.column, r), r.mDataProp === n || r.mData || (r.mData = r.mDataProp), r.sType && (i._sManualType = r.sType), r.className && !r.sClass && (r.sClass = r.className), a.extend(i, r), Nt(i, r, "sWidth", "sWidthOrig"), r.iDataSort !== n && (i.aDataSort = [r.iDataSort]), Nt(i, r, "aDataSort")); var f = i.mData, d = I(f), h = i.mRender?I(i.mRender):null, p = function(t){return"string" == typeof t && - 1 !== t.indexOf("@")}; i._bAttrSrc = a.isPlainObject(f) && (p(f.sort) || p(f.type) || p(f.filter)), i.fnGetData = function(t, e, a){var r = d(t, e, n, a); return h && e?h(r, e, t, a):r}, i.fnSetData = function(t, e, n){return A(f)(t, e, n)}, "number" != typeof f && (t._rowReadObject = !0), t.oFeatures.bSort || (i.bSortable = !1, u.addClass(s.sSortableNone)); var g = - 1 !== a.inArray("asc", i.asSorting), b = - 1 !== a.inArray("desc", i.asSorting); i.bSortable && (g || b)?g && !b?(i.sSortingClass = s.sSortableAsc, i.sSortingClassJUI = s.sSortJUIAscAllowed):!g && b?(i.sSortingClass = s.sSortableDesc, i.sSortingClassJUI = s.sSortJUIDescAllowed):(i.sSortingClass = s.sSortable, i.sSortingClassJUI = s.sSortJUI):(i.sSortingClass = s.sSortableNone, i.sSortingClassJUI = "")}function h(t){if (t.oFeatures.bAutoWidth !== !1){var e = t.aoColumns; St(t); for (var n = 0, a = e.length; a > n; n++)e[n].nTh.style.width = e[n].sWidth}var r = t.oScroll; ("" !== r.sY || "" !== r.sX) && bt(t), Wt(t, null, "column-sizing", [t])}function p(t, e){var n = v(t, "bVisible"); return"number" == typeof n[e]?n[e]:null}function g(t, e){var n = v(t, "bVisible"), r = a.inArray(e, n); return - 1 !== r?r:null}function b(t){return v(t, "bVisible").length}function v(t, e){var n = []; return a.map(t.aoColumns, function(t, a){t[e] && n.push(a)}), n}function S(t){var e, a, r, o, i, s, l, u, c, f = t.aoColumns, d = t.aoData, h = qt.ext.type.detect; for (e = 0, a = f.length; a > e; e++)if (l = f[e], c = [], !l.sType && l._sManualType)l.sType = l._sManualType; else if (!l.sType){for (r = 0, o = h.length; o > r; r++){for (i = 0, s = d.length; s > i && (c[i] === n && (c[i] = w(t, i, e, "type")), u = h[r](c[i], t), u || r === h.length - 1) && "html" !== u; i++); if (u){l.sType = u; break}}l.sType || (l.sType = "string")}}function m(t, e, r, o){var i, s, l, u, c, d, h, p = t.aoColumns; if (e)for (i = e.length - 1; i >= 0; i--){h = e[i]; var g = h.targets !== n?h.targets:h.aTargets; for (a.isArray(g) || (g = [g]), l = 0, u = g.length; u > l; l++)if ("number" == typeof g[l] && g[l] >= 0){for (; p.length <= g[l]; )f(t); o(g[l], h)} else if ("number" == typeof g[l] && g[l] < 0)o(p.length + g[l], h); else if ("string" == typeof g[l])for (c = 0, d = p.length; d > c; c++)("_all" == g[l] || a(p[c].nTh).hasClass(g[l])) && o(c, h)}if (r)for (i = 0, s = r.length; s > i; i++)o(i, r[i])}function D(t, e, r, o){var i = t.aoData.length, s = a.extend(!0, {}, qt.models.oRow, {src:r?"dom":"data", idx:i}); s._aData = e, t.aoData.push(s); for (var l = t.aoColumns, u = 0, c = l.length; c > u; u++)l[u].sType = null; t.aiDisplayMaster.push(i); var f = t.rowIdFn(e); return f !== n && (t.aIds[f] = s), (r || !t.oFeatures.bDeferRender) && H(t, i, r, o), i}function y(t, e){var n; return e instanceof a || (e = a(e)), e.map(function(e, a){return n = j(t, a), D(t, n.data, a, n.cells)})}function _(t, e){return e._DT_RowIndex !== n?e._DT_RowIndex:null}function T(t, e, n){return a.inArray(n, t.aoData[e].anCells)}function w(t, e, a, r){var o = t.iDraw, i = t.aoColumns[a], s = t.aoData[e]._aData, l = i.sDefaultContent, u = i.fnGetData(s, r, {settings:t, row:e, col:a}); if (u === n)return t.iDrawError != o && null === l && (Ht(t, 0, "Requested unknown parameter " + ("function" == typeof i.mData?"{function}":"'" + i.mData + "'") + " for row " + e, 4), t.iDrawError = o), l; if (u !== s && null !== u || null === l){if ("function" == typeof u)return u.call(s)} else u = l; return null === u && "display" == r?"":u}function C(t, e, n, a){var r = t.aoColumns[n], o = t.aoData[e]._aData; r.fnSetData(o, a, {settings:t, row:e, col:n})}function x(t){return a.map(t.match(/(\\.|[^\.])+/g) || [""], function(t){return t.replace(/\\./g, ".")})}function I(t){if (a.isPlainObject(t)){var e = {}; return a.each(t, function(t, n){n && (e[t] = I(n))}), function(t, a, r, o){var i = e[a] || e._; return i !== n?i(t, a, r, o):t}}if (null === t)return function(t){return t}; if ("function" == typeof t)return function(e, n, a, r){return t(e, n, a, r)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){return e[t]}; var r = function(t, e, o){var i, s, l, u; if ("" !== o)for (var c = x(o), f = 0, d = c.length; d > f; f++){if (i = c[f].match(ve), s = c[f].match(Se), i){if (c[f] = c[f].replace(ve, ""), "" !== c[f] && (t = t[c[f]]), l = [], c.splice(0, f + 1), u = c.join("."), a.isArray(t))for (var h = 0, p = t.length; p > h; h++)l.push(r(t[h], e, u)); var g = i[0].substring(1, i[0].length - 1); t = "" === g?l:l.join(g); break}if (s)c[f] = c[f].replace(Se, ""), t = t[c[f]](); else{if (null === t || t[c[f]] === n)return n; t = t[c[f]]}}return t}; return function(e, n){return r(e, n, t)}}function A(t){if (a.isPlainObject(t))return A(t._); if (null === t)return function(){}; if ("function" == typeof t)return function(e, n, a){t(e, "set", n, a)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){e[t] = n}; var e = function(t, r, o){for (var i, s, l, u, c, f = x(o), d = f[f.length - 1], h = 0, p = f.length - 1; p > h; h++){if (s = f[h].match(ve), l = f[h].match(Se), s){if (f[h] = f[h].replace(ve, ""), t[f[h]] = [], i = f.slice(), i.splice(0, h + 1), c = i.join("."), a.isArray(r))for (var g = 0, b = r.length; b > g; g++)u = {}, e(u, r[g], c), t[f[h]].push(u); else t[f[h]] = r; return}l && (f[h] = f[h].replace(Se, ""), t = t[f[h]](r)), (null === t[f[h]] || t[f[h]] === n) && (t[f[h]] = {}), t = t[f[h]]}d.match(Se)?t = t[d.replace(Se, "")](r):t[d.replace(ve, "")] = r}; return function(n, a){return e(n, a, t)}}function F(t){return ce(t.aoData, "_aData")}function L(t){t.aoData.length = 0, t.aiDisplayMaster.length = 0, t.aiDisplay.length = 0, t.aIds = {}}function P(t, e, a){for (var r = - 1, o = 0, i = t.length; i > o; o++)t[o] == e?r = o:t[o] > e && t[o]--; - 1 != r && a === n && t.splice(r, 1)}function R(t, e, a, r){var o, i, s = t.aoData[e], l = function(n, a){for (; n.childNodes.length; )n.removeChild(n.firstChild); n.innerHTML = w(t, e, a, "display")}; if ("dom" !== a && (a && "auto" !== a || "dom" !== s.src)){var u = s.anCells; if (u)if (r !== n)l(u[r], r); else for (o = 0, i = u.length; i > o; o++)l(u[o], o)} else s._aData = j(t, s, r, r === n?n:s._aData).data; s._aSortData = null, s._aFilterData = null; var c = t.aoColumns; if (r !== n)c[r].sType = null; else{for (o = 0, i = c.length; i > o; o++)c[o].sType = null; N(t, s)}}function j(t, e, r, o){var i, s, l, u = [], c = e.firstChild, f = 0, d = t.aoColumns, h = t._rowReadObject; o = o !== n?o:h?{}:[]; var p = function(t, e){if ("string" == typeof t){var n = t.indexOf("@"); if ( - 1 !== n){var a = t.substring(n + 1), r = A(t); r(o, e.getAttribute(a))}}}, g = function(t){if (r === n || r === f)if (s = d[f], l = a.trim(t.innerHTML), s && s._bAttrSrc){var e = A(s.mData._); e(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)} else h?(s._setter || (s._setter = A(s.mData)), s._setter(o, l)):o[f] = l; f++}; if (c)for (; c; )i = c.nodeName.toUpperCase(), ("TD" == i || "TH" == i) && (g(c), u.push(c)), c = c.nextSibling; else{u = e.anCells; for (var b = 0, v = u.length; v > b; b++)g(u[b])}var S = c?e:e.nTr; if (S){var m = S.getAttribute("id"); m && A(t.rowId)(o, m)}return{data:o, cells:u}}function H(t, n, a, r){var o, i, s, l, u, c = t.aoData[n], f = c._aData, d = []; if (null === c.nTr){for (o = a || e.createElement("tr"), c.nTr = o, c.anCells = d, o._DT_RowIndex = n, N(t, c), l = 0, u = t.aoColumns.length; u > l; l++)s = t.aoColumns[l], i = a?r[l]:e.createElement(s.sCellType), d.push(i), (!a || s.mRender || s.mData !== l) && (i.innerHTML = w(t, n, l, "display")), s.sClass && (i.className += " " + s.sClass), s.bVisible && !a?o.appendChild(i):!s.bVisible && a && i.parentNode.removeChild(i), s.fnCreatedCell && s.fnCreatedCell.call(t.oInstance, i, w(t, n, l), f, n, l); Wt(t, "aoRowCreatedCallback", null, [o, f, n])}c.nTr.setAttribute("role", "row")}function N(t, e){var n = e.nTr, r = e._aData; if (n){var o = t.rowIdFn(r); if (o && (n.id = o), r.DT_RowClass){var i = r.DT_RowClass.split(" "); e.__rowc = e.__rowc?ge(e.__rowc.concat(i)):i, a(n).removeClass(e.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr && a(n).attr(r.DT_RowAttr), r.DT_RowData && a(n).data(r.DT_RowData)}}function k(t){var e, n, r, o, i, s = t.nTHead, l = t.nTFoot, u = 0 === a("th, td", s).length, c = t.oClasses, f = t.aoColumns; for (u && (o = a("<tr/>").appendTo(s)), e = 0, n = f.length; n > e; e++)i = f[e], r = a(i.nTh).addClass(i.sClass), u && r.appendTo(o), t.oFeatures.bSort && (r.addClass(i.sSortingClass), i.bSortable !== !1 && (r.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), At(t, i.nTh, e))), i.sTitle != r[0].innerHTML && r.html(i.sTitle), Et(t, "header")(t, r, i, c); if (u && E(t.aoHeader, s), a(s).find(">tr").attr("role", "row"), a(s).find(">tr>th, >tr>td").addClass(c.sHeaderTH), a(l).find(">tr>th, >tr>td").addClass(c.sFooterTH), null !== l){var d = t.aoFooter[0]; for (e = 0, n = d.length; n > e; e++)i = f[e], i.nTf = d[e].cell, i.sClass && a(i.nTf).addClass(i.sClass)}}function O(t, e, r){var o, i, s, l, u, c, f, d, h, p = [], g = [], b = t.aoColumns.length; if (e){for (r === n && (r = !1), o = 0, i = e.length; i > o; o++){for (p[o] = e[o].slice(), p[o].nTr = e[o].nTr, s = b - 1; s >= 0; s--)t.aoColumns[s].bVisible || r || p[o].splice(s, 1); g.push([])}for (o = 0, i = p.length; i > o; o++){if (f = p[o].nTr)for (; c = f.firstChild; )f.removeChild(c); for (s = 0, l = p[o].length; l > s; s++)if (d = 1, h = 1, g[o][s] === n){for (f.appendChild(p[o][s].cell), g[o][s] = 1; p[o + d] !== n && p[o][s].cell == p[o + d][s].cell; )g[o + d][s] = 1, d++; for (; p[o][s + h] !== n && p[o][s].cell == p[o][s + h].cell; ){for (u = 0; d > u; u++)g[o + u][s + h] = 1; h++}a(p[o][s].cell).attr("rowspan", d).attr("colspan", h)}}}}function M(t){var e = Wt(t, "aoPreDrawCallback", "preDraw", [t]); if ( - 1 !== a.inArray(!1, e))return void pt(t, !1); var r = [], o = 0, i = t.asStripeClasses, s = i.length, l = (t.aoOpenRows.length, t.oLanguage), u = t.iInitDisplayStart, c = "ssp" == Bt(t), f = t.aiDisplay; t.bDrawing = !0, u !== n && - 1 !== u && (t._iDisplayStart = c?u:u >= t.fnRecordsDisplay()?0:u, t.iInitDisplayStart = - 1); var d = t._iDisplayStart, h = t.fnDisplayEnd(); if (t.bDeferLoading)t.bDeferLoading = !1, t.iDraw++, pt(t, !1); else if (c){if (!t.bDestroying && !X(t))return} else t.iDraw++; if (0 !== f.length)for (var p = c?0:d, g = c?t.aoData.length:h, v = p; g > v; v++){var S = f[v], m = t.aoData[S]; null === m.nTr && H(t, S); var D = m.nTr; if (0 !== s){var y = i[o % s]; m._sRowStripe != y && (a(D).removeClass(m._sRowStripe).addClass(y), m._sRowStripe = y)}Wt(t, "aoRowCallback", null, [D, m._aData, o, v]), r.push(D), o++} else{var _ = l.sZeroRecords; 1 == t.iDraw && "ajax" == Bt(t)?_ = l.sLoadingRecords:l.sEmptyTable && 0 === t.fnRecordsTotal() && (_ = l.sEmptyTable), r[0] = a("<tr/>", {"class":s?i[0]:""}).append(a("<td />", {valign:"top", colSpan:b(t), "class":t.oClasses.sRowEmpty}).html(_))[0]}Wt(t, "aoHeaderCallback", "header", [a(t.nTHead).children("tr")[0], F(t), d, h, f]), Wt(t, "aoFooterCallback", "footer", [a(t.nTFoot).children("tr")[0], F(t), d, h, f]); var T = a(t.nTBody); T.children().detach(), T.append(a(r)), Wt(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1}function W(t, e){var n = t.oFeatures, a = n.bSort, r = n.bFilter; a && Ct(t), r?z(t, t.oPreviousSearch):t.aiDisplay = t.aiDisplayMaster.slice(), e !== !0 && (t._iDisplayStart = 0), t._drawHold = e, M(t), t._drawHold = !1}function U(t){var e = t.oClasses, n = a(t.nTable), r = a("<div/>").insertBefore(n), o = t.oFeatures, i = a("<div/>", {id:t.sTableId + "_wrapper", "class":e.sWrapper + (t.nTFoot?"":" " + e.sNoFooter)}); t.nHolding = r[0], t.nTableWrapper = i[0], t.nTableReinsertBefore = t.nTable.nextSibling; for (var s, l, u, c, f, d, h = t.sDom.split(""), p = 0; p < h.length; p++){if (s = null, l = h[p], "<" == l){if (u = a("<div/>")[0], c = h[p + 1], "'" == c || '"' == c){for (f = "", d = 2; h[p + d] != c; )f += h[p + d], d++; if ("H" == f?f = e.sJUIHeader:"F" == f && (f = e.sJUIFooter), - 1 != f.indexOf(".")){var g = f.split("."); u.id = g[0].substr(1, g[0].length - 1), u.className = g[1]} else"#" == f.charAt(0)?u.id = f.substr(1, f.length - 1):u.className = f; p += d}i.append(u), i = a(u)} else if (">" == l)i = i.parent(); else if ("l" == l && o.bPaginate && o.bLengthChange)s = ct(t); else if ("f" == l && o.bFilter)s = $(t); else if ("r" == l && o.bProcessing)s = ht(t); else if ("t" == l)s = gt(t); else if ("i" == l && o.bInfo)s = rt(t); else if ("p" == l && o.bPaginate)s = ft(t); else if (0 !== qt.ext.feature.length)for (var b = qt.ext.feature, v = 0, S = b.length; S > v; v++)if (l == b[v].cFeature){s = b[v].fnInit(t); break}if (s){var m = t.aanFeatures; m[l] || (m[l] = []), m[l].push(s), i.append(s)}}r.replaceWith(i), t.nHolding = null}function E(t, e){var n, r, o, i, s, l, u, c, f, d, h, p = a(e).children("tr"), g = function(t, e, n){for (var a = t[e]; a[n]; )n++; return n}; for (t.splice(0, t.length), o = 0, l = p.length; l > o; o++)t.push([]); for (o = 0, l = p.length; l > o; o++)for (n = p[o], c = 0, r = n.firstChild; r; ){if ("TD" == r.nodeName.toUpperCase() || "TH" == r.nodeName.toUpperCase())for (f = 1 * r.getAttribute("colspan"), d = 1 * r.getAttribute("rowspan"), f = f && 0 !== f && 1 !== f?f:1, d = d && 0 !== d && 1 !== d?d:1, u = g(t, o, c), h = 1 === f?!0:!1, s = 0; f > s; s++)for (i = 0; d > i; i++)t[o + i][u + s] = {cell:r, unique:h}, t[o + i].nTr = n; r = r.nextSibling}}function B(t, e, n){var a = []; n || (n = t.aoHeader, e && (n = [], E(n, e))); for (var r = 0, o = n.length; o > r; r++)for (var i = 0, s = n[r].length; s > i; i++)!n[r][i].unique || a[i] && t.bSortCellsTop || (a[i] = n[r][i].cell); return a}function J(t, e, n){if (Wt(t, "aoServerParams", "serverParams", [e]), e && a.isArray(e)){var r = {}, o = /(.*?)\[\]$/; a.each(e, function(t, e){var n = e.name.match(o); if (n){var a = n[0]; r[a] || (r[a] = []), r[a].push(e.value)} else r[e.name] = e.value}), e = r}var i, s = t.ajax, l = t.oInstance, u = function(e){Wt(t, null, "xhr", [t, e, t.jqXHR]), n(e)}; if (a.isPlainObject(s) && s.data){i = s.data; var c = a.isFunction(i)?i(e, t):i; e = a.isFunction(i) && c?c:a.extend(!0, e, c), delete s.data}var f = {data:e, success:function(e){var n = e.error || e.sError; n && Ht(t, 0, n), t.json = e, u(e)}, dataType:"json", cache:!1, type:t.sServerMethod, error:function(e, n, r){var o = Wt(t, null, "xhr", [t, null, t.jqXHR]); - 1 === a.inArray(!0, o) && ("parsererror" == n?Ht(t, 0, "Invalid JSON response", 1):4 === e.readyState && Ht(t, 0, "Ajax error", 7)), pt(t, !1)}}; t.oAjaxData = e, Wt(t, null, "preXhr", [t, e]), t.fnServerData?t.fnServerData.call(l, t.sAjaxSource, a.map(e, function(t, e){return{name:e, value:t}}), u, t):t.sAjaxSource || "string" == typeof s?t.jqXHR = a.ajax(a.extend(f, {url:s || t.sAjaxSource})):a.isFunction(s)?t.jqXHR = s.call(l, e, u, t):(t.jqXHR = a.ajax(a.extend(f, s)), s.data = i)}function X(t){return t.bAjaxDataGet?(t.iDraw++, pt(t, !0), J(t, V(t), function(e){q(t, e)}), !1):!0}function V(t){var e, n, r, o, i = t.aoColumns, s = i.length, l = t.oFeatures, u = t.oPreviousSearch, c = t.aoPreSearchCols, f = [], d = wt(t), h = t._iDisplayStart, p = l.bPaginate !== !1?t._iDisplayLength: - 1, g = function(t, e){f.push({name:t, value:e})}; g("sEcho", t.iDraw), g("iColumns", s), g("sColumns", ce(i, "sName").join(",")), g("iDisplayStart", h), g("iDisplayLength", p); var b = {draw:t.iDraw, columns:[], order:[], start:h, length:p, search:{value:u.sSearch, regex:u.bRegex}}; for (e = 0; s > e; e++)r = i[e], o = c[e], n = "function" == typeof r.mData?"function":r.mData, b.columns.push({data:n, name:r.sName, searchable:r.bSearchable, orderable:r.bSortable, search:{value:o.sSearch, regex:o.bRegex}}), g("mDataProp_" + e, n), l.bFilter && (g("sSearch_" + e, o.sSearch), g("bRegex_" + e, o.bRegex), g("bSearchable_" + e, r.bSearchable)), l.bSort && g("bSortable_" + e, r.bSortable); l.bFilter && (g("sSearch", u.sSearch), g("bRegex", u.bRegex)), l.bSort && (a.each(d, function(t, e){b.order.push({column:e.col, dir:e.dir}), g("iSortCol_" + t, e.col), g("sSortDir_" + t, e.dir)}), g("iSortingCols", d.length)); var v = qt.ext.legacy.ajax; return null === v?t.sAjaxSource?f:b:v?f:b}function q(t, e){var a = function(t, a){return e[t] !== n?e[t]:e[a]}, r = G(t, e), o = a("sEcho", "draw"), i = a("iTotalRecords", "recordsTotal"), s = a("iTotalDisplayRecords", "recordsFiltered"); if (o){if (1 * o < t.iDraw)return; t.iDraw = 1 * o}L(t), t._iRecordsTotal = parseInt(i, 10), t._iRecordsDisplay = parseInt(s, 10); for (var l = 0, u = r.length; u > l; l++)D(t, r[l]); t.aiDisplay = t.aiDisplayMaster.slice(), t.bAjaxDataGet = !1, M(t), t._bInitComplete || lt(t, e), t.bAjaxDataGet = !0, pt(t, !1)}function G(t, e){var r = a.isPlainObject(t.ajax) && t.ajax.dataSrc !== n?t.ajax.dataSrc:t.sAjaxDataProp; return"data" === r?e.aaData || e[r]:"" !== r?I(r)(e):e}function $(t){var n = t.oClasses, r = t.sTableId, o = t.oLanguage, i = t.oPreviousSearch, s = t.aanFeatures, l = '<input type="search" class="' + n.sFilterInput + '"/>', u = o.sSearch; u = u.match(/_INPUT_/)?u.replace("_INPUT_", l):u + l; var c = a("<div/>", {id:s.f?null:r + "_filter", "class":n.sFilter}).append(a("<label/>").append(u)), f = function(){var e = (s.f, this.value?this.value:""); e != i.sSearch && (z(t, {sSearch:e, bRegex:i.bRegex, bSmart:i.bSmart, bCaseInsensitive:i.bCaseInsensitive}), t._iDisplayStart = 0, M(t))}, d = null !== t.searchDelay?t.searchDelay:"ssp" === Bt(t)?400:0, h = a("input", c).val(i.sSearch).attr("placeholder", o.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT", d?mt(f, d):f).bind("keypress.DT", function(t){return 13 == t.keyCode?!1:void 0}).attr("aria-controls", r); return a(t.nTable).on("search.dt.DT", function(n, a){if (t === a)try{h[0] !== e.activeElement && h.val(i.sSearch)} catch (r){}}), c[0]}function z(t, e, a){var r = t.oPreviousSearch, o = t.aoPreSearchCols, i = function(t){r.sSearch = t.sSearch, r.bRegex = t.bRegex, r.bSmart = t.bSmart, r.bCaseInsensitive = t.bCaseInsensitive}, s = function(t){return t.bEscapeRegex !== n?!t.bEscapeRegex:t.bRegex}; if (S(t), "ssp" != Bt(t)){Z(t, e.sSearch, a, s(e), e.bSmart, e.bCaseInsensitive), i(e); for (var l = 0; l < o.length; l++)Q(t, o[l].sSearch, l, s(o[l]), o[l].bSmart, o[l].bCaseInsensitive); Y(t)} else i(e); t.bFiltered = !0, Wt(t, null, "search", [t])}function Y(t){for (var e, n, r = qt.ext.search, o = t.aiDisplay, i = 0, s = r.length; s > i; i++){for (var l = [], u = 0, c = o.length; c > u; u++)n = o[u], e = t.aoData[n], r[i](t, e._aFilterData, n, e._aData, u) && l.push(n); o.length = 0, a.merge(o, l)}}function Q(t, e, n, a, r, o){if ("" !== e)for (var i, s = t.aiDisplay, l = K(e, a, r, o), u = s.length - 1; u >= 0; u--)i = t.aoData[s[u]]._aFilterData[n], l.test(i) || s.splice(u, 1)}function Z(t, e, n, a, r, o){var i, s, l, u = K(e, a, r, o), c = t.oPreviousSearch.sSearch, f = t.aiDisplayMaster; if (0 !== qt.ext.search.length && (n = !0), s = et(t), e.length <= 0)t.aiDisplay = f.slice(); else for ((s || n || c.length > e.length || 0 !== e.indexOf(c) || t.bSorted) && (t.aiDisplay = f.slice()), i = t.aiDisplay, l = i.length - 1; l >= 0; l--)u.test(t.aoData[i[l]]._sFilterRow) || i.splice(l, 1)}function K(t, e, n, r){if (t = e?t:tt(t), n){var o = a.map(t.match(/"[^"]+"|[^ ]+/g) || [""], function(t){if ('"' === t.charAt(0)){var e = t.match(/^"(.*)"$/); t = e?e[1]:t}return t.replace('"', "")}); t = "^(?=.*?" + o.join(")(?=.*?") + ").*$"}return new RegExp(t, r?"i":"")}function tt(t){return t.replace(ne, "\\$1")}function et(t){var e, n, a, r, o, i, s, l, u = t.aoColumns, c = qt.ext.type.search, f = !1; for (n = 0, r = t.aoData.length; r > n; n++)if (l = t.aoData[n], !l._aFilterData){for (i = [], a = 0, o = u.length; o > a; a++)e = u[a], e.bSearchable?(s = w(t, n, a, "filter"), c[e.sType] && (s = c[e.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())):s = "", s.indexOf && - 1 !== s.indexOf("&") && (me.innerHTML = s, s = De?me.textContent:me.innerText), s.replace && (s = s.replace(/[\r\n]/g, "")), i.push(s); l._aFilterData = i, l._sFilterRow = i.join(" "), f = !0}return f}function nt(t){return{search:t.sSearch, smart:t.bSmart, regex:t.bRegex, caseInsensitive:t.bCaseInsensitive}}function at(t){return{sSearch:t.search, bSmart:t.smart, bRegex:t.regex, bCaseInsensitive:t.caseInsensitive}}function rt(t){var e = t.sTableId, n = t.aanFeatures.i, r = a("<div/>", {"class":t.oClasses.sInfo, id:n?null:e + "_info"}); return n || (t.aoDrawCallback.push({fn:ot, sName:"information"}), r.attr("role", "status").attr("aria-live", "polite"), a(t.nTable).attr("aria-describedby", e + "_info")), r[0]}function ot(t){var e = t.aanFeatures.i; if (0 !== e.length){var n = t.oLanguage, r = t._iDisplayStart + 1, o = t.fnDisplayEnd(), i = t.fnRecordsTotal(), s = t.fnRecordsDisplay(), l = s?n.sInfo:n.sInfoEmpty; s !== i && (l += " " + n.sInfoFiltered), l += n.sInfoPostFix, l = it(t, l); var u = n.fnInfoCallback; null !== u && (l = u.call(t.oInstance, t, r, o, i, s, l)), a(e).html(l)}}function it(t, e){var n = t.fnFormatNumber, a = t._iDisplayStart + 1, r = t._iDisplayLength, o = t.fnRecordsDisplay(), i = - 1 === r; return e.replace(/_START_/g, n.call(t, a)).replace(/_END_/g, n.call(t, t.fnDisplayEnd())).replace(/_MAX_/g, n.call(t, t.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(t, o)).replace(/_PAGE_/g, n.call(t, i?1:Math.ceil(a / r))).replace(/_PAGES_/g, n.call(t, i?1:Math.ceil(o / r)))}function st(t){var e, n, a, r = t.iInitDisplayStart, o = t.aoColumns, i = t.oFeatures, s = t.bDeferLoading; if (!t.bInitialised)return void setTimeout(function(){st(t)}, 200); for (U(t), k(t), O(t, t.aoHeader), O(t, t.aoFooter), pt(t, !0), i.bAutoWidth && St(t), e = 0, n = o.length; n > e; e++)a = o[e], a.sWidth && (a.nTh.style.width = Tt(a.sWidth)); Wt(t, null, "preInit", [t]), W(t); var l = Bt(t); ("ssp" != l || s) && ("ajax" == l?J(t, [], function(n){var a = G(t, n); for (e = 0; e < a.length; e++)D(t, a[e]); t.iInitDisplayStart = r, W(t), pt(t, !1), lt(t, n)}, t):(pt(t, !1), lt(t)))}function lt(t, e){t._bInitComplete = !0, (e || t.oInit.aaData) && h(t), Wt(t, "aoInitComplete", "init", [t, e])}function ut(t, e){var n = parseInt(e, 10); t._iDisplayLength = n, Ut(t), Wt(t, null, "length", [t, n])}function ct(t){for (var e = t.oClasses, n = t.sTableId, r = t.aLengthMenu, o = a.isArray(r[0]), i = o?r[0]:r, s = o?r[1]:r, l = a("<select/>", {name:n + "_length", "aria-controls":n, "class":e.sLengthSelect}), u = 0, c = i.length; c > u; u++)l[0][u] = new Option(s[u], i[u]); var f = a("<div><label/></div>").addClass(e.sLength); return t.aanFeatures.l || (f[0].id = n + "_length"), f.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), a("select", f).val(t._iDisplayLength).bind("change.DT", function(e){ut(t, a(this).val()), M(t)}), a(t.nTable).bind("length.dt.DT", function(e, n, r){t === n && a("select", f).val(r)}), f[0]}function ft(t){var e = t.sPaginationType, n = qt.ext.pager[e], r = "function" == typeof n, o = function(t){M(t)}, i = a("<div/>").addClass(t.oClasses.sPaging + e)[0], s = t.aanFeatures; return r || n.fnInit(t, i, o), s.p || (i.id = t.sTableId + "_paginate", t.aoDrawCallback.push({fn:function(t){if (r){var e, a, i = t._iDisplayStart, l = t._iDisplayLength, u = t.fnRecordsDisplay(), c = - 1 === l, f = c?0:Math.ceil(i / l), d = c?1:Math.ceil(u / l), h = n(f, d); for (e = 0, a = s.p.length; a > e; e++)Et(t, "pageButton")(t, s.p[e], e, h, f, d)} else n.fnUpdate(t, o)}, sName:"pagination"})), i}function dt(t, e, n){var a = t._iDisplayStart, r = t._iDisplayLength, o = t.fnRecordsDisplay(); 0 === o || - 1 === r?a = 0:"number" == typeof e?(a = e * r, a > o && (a = 0)):"first" == e?a = 0:"previous" == e?(a = r >= 0?a - r:0, 0 > a && (a = 0)):"next" == e?o > a + r && (a += r):"last" == e?a = Math.floor((o - 1) / r) * r:Ht(t, 0, "Unknown paging action: " + e, 5); var i = t._iDisplayStart !== a; return t._iDisplayStart = a, i && (Wt(t, null, "page", [t]), n && M(t)), i}function ht(t){return a("<div/>", {id:t.aanFeatures.r?null:t.sTableId + "_processing", "class":t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function pt(t, e){t.oFeatures.bProcessing && a(t.aanFeatures.r).css("display", e?"block":"none"), Wt(t, null, "processing", [t, e])}function gt(t){var e = a(t.nTable); e.attr("role", "grid"); var n = t.oScroll; if ("" === n.sX && "" === n.sY)return t.nTable; var r = n.sX, o = n.sY, i = t.oClasses, s = e.children("caption"), l = s.length?s[0]._captionSide:null, u = a(e[0].cloneNode(!1)), c = a(e[0].cloneNode(!1)), f = e.children("tfoot"), d = "<div/>", h = function(t){return t?Tt(t):null}; n.sX && "100%" === e.attr("width") && e.removeAttr("width"), f.length || (f = null); var p = a(d, {"class":i.sScrollWrapper}).append(a(d, {"class":i.sScrollHead}).css({overflow:"hidden", position:"relative", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollHeadInner}).css({"box-sizing":"content-box", width:n.sXInner || "100%"}).append(u.removeAttr("id").css("margin-left", 0).append("top" === l?s:null).append(e.children("thead"))))).append(a(d, {"class":i.sScrollBody}).css({position:"relative", overflow:"auto", width:h(r)}).append(e)); f && p.append(a(d, {"class":i.sScrollFoot}).css({overflow:"hidden", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollFootInner}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === l?s:null).append(e.children("tfoot"))))); var g = p.children(), b = g[0], v = g[1], S = f?g[2]:null; return r && a(v).on("scroll.DT", function(t){var e = this.scrollLeft; b.scrollLeft = e, f && (S.scrollLeft = e)}), a(v).css(o && n.bCollapse?"max-height":"height", o), t.nScrollHead = b, t.nScrollBody = v, t.nScrollFoot = S, t.aoDrawCallback.push({fn:bt, sName:"scrolling"}), p[0]}function bt(t){var e, n, r, o, i, s, l, u, c, f = t.oScroll, d = f.sX, h = f.sXInner, g = f.sY, b = f.iBarWidth, v = a(t.nScrollHead), S = v[0].style, m = v.children("div"), D = m[0].style, y = m.children("table"), _ = t.nScrollBody, T = a(_), w = _.style, C = a(t.nScrollFoot), x = C.children("div"), I = x.children("table"), A = a(t.nTHead), F = a(t.nTable), L = F[0], P = L.style, R = t.nTFoot?a(t.nTFoot):null, j = t.oBrowser, H = j.bScrollOversize, N = [], k = [], O = [], M = function(t){var e = t.style; e.paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0}; F.children("thead, tfoot").remove(), i = A.clone().prependTo(F), e = A.find("tr"), r = i.find("tr"), i.find("th, td").removeAttr("tabindex"), R && (s = R.clone().prependTo(F), n = R.find("tr"), o = s.find("tr")), d || (w.width = "100%", v[0].style.width = "100%"), a.each(B(t, i), function(e, n){l = p(t, e), n.style.width = t.aoColumns[l].sWidth}), R && vt(function(t){t.style.width = ""}, o), c = F.outerWidth(), "" === d?(P.width = "100%", H && (F.find("tbody").height() > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(F.outerWidth() - b)), c = F.outerWidth()):"" !== h && (P.width = Tt(h), c = F.outerWidth()), vt(M, r), vt(function(t){O.push(t.innerHTML), N.push(Tt(a(t).css("width")))}, r), vt(function(t, e){t.style.width = N[e]}, e), a(r).height(0), R && (vt(M, o), vt(function(t){k.push(Tt(a(t).css("width")))}, o), vt(function(t, e){t.style.width = k[e]}, n), a(o).height(0)), vt(function(t, e){t.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + O[e] + "</div>", t.style.width = N[e]}, r), R && vt(function(t, e){t.innerHTML = "", t.style.width = k[e]}, o), F.outerWidth() < c?(u = _.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")?c + b:c, H && (_.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(u - b)), ("" === d || "" !== h) && Ht(t, 1, "Possible column misalignment", 6)):u = "100%", w.width = Tt(u), S.width = Tt(u), R && (t.nScrollFoot.style.width = Tt(u)), g || H && (w.height = Tt(L.offsetHeight + b)); var W = F.outerWidth(); y[0].style.width = Tt(W), D.width = Tt(W); var U = F.height() > _.clientHeight || "scroll" == T.css("overflow-y"), E = "padding" + (j.bScrollbarLeft?"Left":"Right"); D[E] = U?b + "px":"0px", R && (I[0].style.width = Tt(W), x[0].style.width = Tt(W), x[0].style[E] = U?b + "px":"0px"), T.scroll(), !t.bSorted && !t.bFiltered || t._drawHold || (_.scrollTop = 0)}function vt(t, e, n){for (var a, r, o = 0, i = 0, s = e.length; s > i; ){for (a = e[i].firstChild, r = n?n[i].firstChild:null; a; )1 === a.nodeType && (n?t(a, r, o):t(a, o), o++), a = a.nextSibling, r = n?r.nextSibling:null; i++}}function St(e){var n, r, o, i, s, l = e.nTable, u = e.aoColumns, c = e.oScroll, f = c.sY, d = c.sX, g = c.sXInner, S = u.length, m = v(e, "bVisible"), D = a("th", e.nTHead), y = l.getAttribute("width"), _ = l.parentNode, T = !1, w = e.oBrowser, C = w.bScrollOversize, x = l.style.width; for (x && - 1 !== x.indexOf("%") && (y = x), n = 0; n < m.length; n++)r = u[m[n]], null !== r.sWidth && (r.sWidth = Dt(r.sWidthOrig, _), T = !0); if (C || !T && !d && !f && S == b(e) && S == D.length)for (n = 0; S > n; n++){var I = p(e, n); I && (u[I].sWidth = Tt(D.eq(n).width()))} else{var A = a(l).clone().css("visibility", "hidden").removeAttr("id"); A.find("tbody tr").remove(); var F = a("<tr/>").appendTo(A.find("tbody")); for (A.find("thead, tfoot").remove(), A.append(a(e.nTHead).clone()).append(a(e.nTFoot).clone()), A.find("tfoot th, tfoot td").css("width", ""), D = B(e, A.find("thead")[0]), n = 0; n < m.length; n++)r = u[m[n]], D[n].style.width = null !== r.sWidthOrig && "" !== r.sWidthOrig?Tt(r.sWidthOrig):""; if (e.aoData.length)for (n = 0; n < m.length; n++)o = m[n], r = u[o], a(yt(e, o)).clone(!1).append(r.sContentPadding).appendTo(F); var L = a("<div/>").css(d || f?{position:"absolute", top:0, left:0, height:1, right:0, overflow:"hidden"}:{}).append(A).appendTo(_); if (d && g?A.width(g):d?(A.css("width", "auto"), A.width() < _.clientWidth && A.width(_.clientWidth)):f?A.width(_.clientWidth):y && A.width(y), d){var P = 0; for (n = 0; n < m.length; n++)r = u[m[n]], s = w.bBounding?D[n].getBoundingClientRect().width:a(D[n]).outerWidth(), P += null === r.sWidthOrig?s:parseInt(r.sWidth, 10) + s - a(D[n]).width(); A.width(Tt(P)), l.style.width = Tt(P)}for (n = 0; n < m.length; n++)r = u[m[n]], i = a(D[n]).width(), i && (r.sWidth = Tt(i)); l.style.width = Tt(A.css("width")), L.remove()}if (y && (l.style.width = Tt(y)), (y || d) && !e._reszEvt){var R = function(){a(t).bind("resize.DT-" + e.sInstance, mt(function(){h(e)}))}; C?setTimeout(R, 1e3):R(), e._reszEvt = !0}}function mt(t, e){var a, r, o = e !== n?e:200; return function(){var e = this, i = + new Date, s = arguments; a && a + o > i?(clearTimeout(r), r = setTimeout(function(){a = n, t.apply(e, s)}, o)):(a = i, t.apply(e, s))}}function Dt(t, n){if (!t)return 0; var r = a("<div/>").css("width", Tt(t)).appendTo(n || e.body), o = r[0].offsetWidth; return r.remove(), o}function yt(t, e){var n = _t(t, e); if (0 > n)return null; var r = t.aoData[n]; return r.nTr?r.anCells[e]:a("<td/>").html(w(t, n, e, "display"))[0]}function _t(t, e){for (var n, a = - 1, r = - 1, o = 0, i = t.aoData.length; i > o; o++)n = w(t, o, e, "display") + "", n = n.replace(ye, ""), n.length > a && (a = n.length, r = o); return r}function Tt(t){return null === t?"0px":"number" == typeof t?0 > t?"0px":t + "px":t.match(/\d$/)?t + "px":t}function wt(t){var e, r, o, i, s, l, u, c = [], f = t.aoColumns, d = t.aaSortingFixed, h = a.isPlainObject(d), p = [], g = function(t){t.length && !a.isArray(t[0])?p.push(t):a.merge(p, t)}; for (a.isArray(d) && g(d), h && d.pre && g(d.pre), g(t.aaSorting), h && d.post && g(d.post), e = 0; e < p.length; e++)for (u = p[e][0], i = f[u].aDataSort, r = 0, o = i.length; o > r; r++)s = i[r], l = f[s].sType || "string", p[e]._idx === n && (p[e]._idx = a.inArray(p[e][1], f[s].asSorting)), c.push({src:u, col:s, dir:p[e][1], index:p[e]._idx, type:l, formatter:qt.ext.type.order[l + "-pre"]}); return c}function Ct(t){var e, n, a, r, o, i = [], s = qt.ext.type.order, l = t.aoData, u = (t.aoColumns, 0), c = t.aiDisplayMaster; for (S(t), o = wt(t), e = 0, n = o.length; n > e; e++)r = o[e], r.formatter && u++, Lt(t, r.col); if ("ssp" != Bt(t) && 0 !== o.length){for (e = 0, a = c.length; a > e; e++)i[c[e]] = e; u === o.length?c.sort(function(t, e){var n, a, r, s, u, c = o.length, f = l[t]._aSortData, d = l[e]._aSortData; for (r = 0; c > r; r++)if (u = o[r], n = f[u.col], a = d[u.col], s = a > n? - 1:n > a?1:0, 0 !== s)return"asc" === u.dir?s: - s; return n = i[t], a = i[e], a > n? - 1:n > a?1:0}):c.sort(function(t, e){var n, a, r, u, c, f, d = o.length, h = l[t]._aSortData, p = l[e]._aSortData; for (r = 0; d > r; r++)if (c = o[r], n = h[c.col], a = p[c.col], f = s[c.type + "-" + c.dir] || s["string-" + c.dir], u = f(n, a), 0 !== u)return u; return n = i[t], a = i[e], a > n? - 1:n > a?1:0})}t.bSorted = !0}function xt(t){for (var e, n, a = t.aoColumns, r = wt(t), o = t.oLanguage.oAria, i = 0, s = a.length; s > i; i++){var l = a[i], u = l.asSorting, c = l.sTitle.replace(/<.*?>/g, ""), f = l.nTh;
|
2 |
-
f.removeAttribute("aria-sort"), l.bSortable?(r.length > 0 && r[0].col == i?(f.setAttribute("aria-sort", "asc" == r[0].dir?"ascending":"descending"), n = u[r[0].index + 1] || u[0]):n = u[0], e = c + ("asc" === n?o.sSortAscending:o.sSortDescending)):e = c, f.setAttribute("aria-label", e)}}function It(t, e, r, o){var i, s = t.aoColumns[e], l = t.aaSorting, u = s.asSorting, c = function(t, e){var r = t._idx; return r === n && (r = a.inArray(t[1], u)), r + 1 < u.length?r + 1:e?null:0}; if ("number" == typeof l[0] && (l = t.aaSorting = [l]), r && t.oFeatures.bSortMulti){var f = a.inArray(e, ce(l, "0")); - 1 !== f?(i = c(l[f], !0), null === i && 1 === l.length && (i = 0), null === i?l.splice(f, 1):(l[f][1] = u[i], l[f]._idx = i)):(l.push([e, u[0], 0]), l[l.length - 1]._idx = 0)} else l.length && l[0][0] == e?(i = c(l[0]), l.length = 1, l[0][1] = u[i], l[0]._idx = i):(l.length = 0, l.push([e, u[0]]), l[0]._idx = 0); W(t), "function" == typeof o && o(t)}function At(t, e, n, a){var r = t.aoColumns[n]; Ot(e, {}, function(e){r.bSortable !== !1 && (t.oFeatures.bProcessing?(pt(t, !0), setTimeout(function(){It(t, n, e.shiftKey, a), "ssp" !== Bt(t) && pt(t, !1)}, 0)):It(t, n, e.shiftKey, a))})}function Ft(t){var e, n, r, o = t.aLastSort, i = t.oClasses.sSortColumn, s = wt(t), l = t.oFeatures; if (l.bSort && l.bSortClasses){for (e = 0, n = o.length; n > e; e++)r = o[e].src, a(ce(t.aoData, "anCells", r)).removeClass(i + (2 > e?e + 1:3)); for (e = 0, n = s.length; n > e; e++)r = s[e].src, a(ce(t.aoData, "anCells", r)).addClass(i + (2 > e?e + 1:3))}t.aLastSort = s}function Lt(t, e){var n, a = t.aoColumns[e], r = qt.ext.order[a.sSortDataType]; r && (n = r.call(t.oInstance, t, e, g(t, e))); for (var o, i, s = qt.ext.type.order[a.sType + "-pre"], l = 0, u = t.aoData.length; u > l; l++)o = t.aoData[l], o._aSortData || (o._aSortData = []), (!o._aSortData[e] || r) && (i = r?n[l]:w(t, l, e, "sort"), o._aSortData[e] = s?s(i):i)}function Pt(t){if (t.oFeatures.bStateSave && !t.bDestroying){var e = {time: + new Date, start:t._iDisplayStart, length:t._iDisplayLength, order:a.extend(!0, [], t.aaSorting), search:nt(t.oPreviousSearch), columns:a.map(t.aoColumns, function(e, n){return{visible:e.bVisible, search:nt(t.aoPreSearchCols[n])}})}; Wt(t, "aoStateSaveParams", "stateSaveParams", [t, e]), t.oSavedState = e, t.fnStateSaveCallback.call(t.oInstance, t, e)}}function Rt(t, e){var r, o, i = t.aoColumns; if (t.oFeatures.bStateSave){var s = t.fnStateLoadCallback.call(t.oInstance, t); if (s && s.time){var l = Wt(t, "aoStateLoadParams", "stateLoadParams", [t, s]); if ( - 1 === a.inArray(!1, l)){var u = t.iStateDuration; if (!(u > 0 && s.time < + new Date - 1e3 * u) && i.length === s.columns.length){for (t.oLoadedState = a.extend(!0, {}, s), s.start !== n && (t._iDisplayStart = s.start, t.iInitDisplayStart = s.start), s.length !== n && (t._iDisplayLength = s.length), s.order !== n && (t.aaSorting = [], a.each(s.order, function(e, n){t.aaSorting.push(n[0] >= i.length?[0, n[1]]:n)})), s.search !== n && a.extend(t.oPreviousSearch, at(s.search)), r = 0, o = s.columns.length; o > r; r++){var c = s.columns[r]; c.visible !== n && (i[r].bVisible = c.visible), c.search !== n && a.extend(t.aoPreSearchCols[r], at(c.search))}Wt(t, "aoStateLoaded", "stateLoaded", [t, s])}}}}}function jt(t){var e = qt.settings, n = a.inArray(t, ce(e, "nTable")); return - 1 !== n?e[n]:null}function Ht(e, n, a, r){if (a = "DataTables warning: " + (e?"table id=" + e.sTableId + " - ":"") + a, r && (a += ". For more information about this error, please see http://datatables.net/tn/" + r), n)t.console && console.log && console.log(a); else{var o = qt.ext, i = o.sErrMode || o.errMode; if (e && Wt(e, null, "error", [e, r, a]), "alert" == i)alert(a); else{if ("throw" == i)throw new Error(a); "function" == typeof i && i(e, r, a)}}}function Nt(t, e, r, o){return a.isArray(r)?void a.each(r, function(n, r){a.isArray(r)?Nt(t, e, r[0], r[1]):Nt(t, e, r)}):(o === n && (o = r), void(e[r] !== n && (t[o] = e[r])))}function kt(t, e, n){var r; for (var o in e)e.hasOwnProperty(o) && (r = e[o], a.isPlainObject(r)?(a.isPlainObject(t[o]) || (t[o] = {}), a.extend(!0, t[o], r)):n && "data" !== o && "aaData" !== o && a.isArray(r)?t[o] = r.slice():t[o] = r); return t}function Ot(t, e, n){a(t).bind("click.DT", e, function(e){t.blur(), n(e)}).bind("keypress.DT", e, function(t){13 === t.which && (t.preventDefault(), n(t))}).bind("selectstart.DT", function(){return!1})}function Mt(t, e, n, a){n && t[e].push({fn:n, sName:a})}function Wt(t, e, n, r){var o = []; if (e && (o = a.map(t[e].slice().reverse(), function(e, n){return e.fn.apply(t.oInstance, r)})), null !== n){var i = a.Event(n + ".dt"); a(t.nTable).trigger(i, r), o.push(i.result)}return o}function Ut(t){var e = t._iDisplayStart, n = t.fnDisplayEnd(), a = t._iDisplayLength; e >= n && (e = n - a), e -= e % a, ( - 1 === a || 0 > e) && (e = 0), t._iDisplayStart = e}function Et(t, e){var n = t.renderer, r = qt.ext.renderer[e]; return a.isPlainObject(n) && n[e]?r[n[e]] || r._:"string" == typeof n?r[n] || r._:r._}function Bt(t){return t.oFeatures.bServerSide?"ssp":t.ajax || t.sAjaxSource?"ajax":"dom"}function Jt(t, e){var n = [], a = Xe.numbers_length, r = Math.floor(a / 2); return a >= e?n = de(0, e):r >= t?(n = de(0, a - 2), n.push("ellipsis"), n.push(e - 1)):t >= e - 1 - r?(n = de(e - (a - 2), e), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)):(n = de(t - r + 2, t + r - 1), n.push("ellipsis"), n.push(e - 1), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n}function Xt(t){a.each({num:function(e){return Ve(e, t)}, "num-fmt":function(e){return Ve(e, t, ae)}, "html-num":function(e){return Ve(e, t, Kt)}, "html-num-fmt":function(e){return Ve(e, t, Kt, ae)}}, function(e, n){Gt.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Gt.type.search[e + t] = Gt.type.search.html)})}function Vt(t){return function(){var e = [jt(this[qt.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return qt.ext.internal[t].apply(this, e)}}var qt, Gt, $t, zt, Yt, Qt = {}, Zt = /[\r\n]/g, Kt = /<.*?>/g, te = /^[\w\+\-]/, ee = /[\w\+\-]$/, ne = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"), ae = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, re = function(t){return t && t !== !0 && "-" !== t?!1:!0}, oe = function(t){var e = parseInt(t, 10); return!isNaN(e) && isFinite(t)?e:null}, ie = function(t, e){return Qt[e] || (Qt[e] = new RegExp(tt(e), "g")), "string" == typeof t && "." !== e?t.replace(/\./g, "").replace(Qt[e], "."):t}, se = function(t, e, n){var a = "string" == typeof t; return re(t)?!0:(e && a && (t = ie(t, e)), n && a && (t = t.replace(ae, "")), !isNaN(parseFloat(t)) && isFinite(t))}, le = function(t){return re(t) || "string" == typeof t}, ue = function(t, e, n){if (re(t))return!0; var a = le(t); return a && se(pe(t), e, n)?!0:null}, ce = function(t, e, a){var r = [], o = 0, i = t.length; if (a !== n)for (; i > o; o++)t[o] && t[o][e] && r.push(t[o][e][a]); else for (; i > o; o++)t[o] && r.push(t[o][e]); return r}, fe = function(t, e, a, r){var o = [], i = 0, s = e.length; if (r !== n)for (; s > i; i++)t[e[i]][a] && o.push(t[e[i]][a][r]); else for (; s > i; i++)o.push(t[e[i]][a]); return o}, de = function(t, e){var a, r = []; e === n?(e = 0, a = t):(a = e, e = t); for (var o = e; a > o; o++)r.push(o); return r}, he = function(t){for (var e = [], n = 0, a = t.length; a > n; n++)t[n] && e.push(t[n]); return e}, pe = function(t){return t.replace(Kt, "")}, ge = function(t){var e, n, a, r = [], o = t.length, i = 0; t:for (n = 0; o > n; n++){for (e = t[n], a = 0; i > a; a++)if (r[a] === e)continue t; r.push(e), i++}return r}, be = function(t, e, a){t[e] !== n && (t[a] = t[e])}, ve = /\[.*?\]$/, Se = /\(\)$/, me = a("<div>")[0], De = me.textContent !== n, ye = /<.*?>/g; qt = function(t){this.$ = function(t, e){return this.api(!0).$(t, e)}, this._ = function(t, e){return this.api(!0).rows(t, e).data()}, this.api = function(t){return new $t(t?jt(this[Gt.iApiIndex]):this)}, this.fnAddData = function(t, e){var r = this.api(!0), o = a.isArray(t) && (a.isArray(t[0]) || a.isPlainObject(t[0]))?r.rows.add(t):r.row.add(t); return(e === n || e) && r.draw(), o.flatten().toArray()}, this.fnAdjustColumnSizing = function(t){var e = this.api(!0).columns.adjust(), a = e.settings()[0], r = a.oScroll; t === n || t?e.draw(!1):("" !== r.sX || "" !== r.sY) && bt(a)}, this.fnClearTable = function(t){var e = this.api(!0).clear(); (t === n || t) && e.draw()}, this.fnClose = function(t){this.api(!0).row(t).child.hide()}, this.fnDeleteRow = function(t, e, a){var r = this.api(!0), o = r.rows(t), i = o.settings()[0], s = i.aoData[o[0][0]]; return o.remove(), e && e.call(this, i, s), (a === n || a) && r.draw(), s}, this.fnDestroy = function(t){this.api(!0).destroy(t)}, this.fnDraw = function(t){this.api(!0).draw(t)}, this.fnFilter = function(t, e, a, r, o, i){var s = this.api(!0); null === e || e === n?s.search(t, a, r, i):s.column(e).search(t, a, r, i), s.draw()}, this.fnGetData = function(t, e){var a = this.api(!0); if (t !== n){var r = t.nodeName?t.nodeName.toLowerCase():""; return e !== n || "td" == r || "th" == r?a.cell(t, e).data():a.row(t).data() || null}return a.data().toArray()}, this.fnGetNodes = function(t){var e = this.api(!0); return t !== n?e.row(t).node():e.rows().nodes().flatten().toArray()}, this.fnGetPosition = function(t){var e = this.api(!0), n = t.nodeName.toUpperCase(); if ("TR" == n)return e.row(t).index(); if ("TD" == n || "TH" == n){var a = e.cell(t).index(); return[a.row, a.columnVisible, a.column]}return null}, this.fnIsOpen = function(t){return this.api(!0).row(t).child.isShown()}, this.fnOpen = function(t, e, n){return this.api(!0).row(t).child(e, n).show().child()[0]}, this.fnPageChange = function(t, e){var a = this.api(!0).page(t); (e === n || e) && a.draw(!1)}, this.fnSetColumnVis = function(t, e, a){var r = this.api(!0).column(t).visible(e); (a === n || a) && r.columns.adjust().draw()}, this.fnSettings = function(){return jt(this[Gt.iApiIndex])}, this.fnSort = function(t){this.api(!0).order(t).draw()}, this.fnSortListener = function(t, e, n){this.api(!0).order.listener(t, e, n)}, this.fnUpdate = function(t, e, a, r, o){var i = this.api(!0); return a === n || null === a?i.row(e).data(t):i.cell(e, a).data(t), (o === n || o) && i.columns.adjust(), (r === n || r) && i.draw(), 0}, this.fnVersionCheck = Gt.fnVersionCheck; var e = this, r = t === n, c = this.length; r && (t = {}), this.oApi = this.internal = Gt.internal; for (var h in qt.ext.internal)h && (this[h] = Vt(h)); return this.each(function(){var h, p = {}, g = c > 1?kt(p, t, !0):t, b = 0, v = this.getAttribute("id"), S = !1, _ = qt.defaults, T = a(this); if ("table" != this.nodeName.toLowerCase())return void Ht(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); s(_), l(_.column), o(_, _, !0), o(_.column, _.column, !0), o(_, a.extend(g, T.data())); var w = qt.settings; for (b = 0, h = w.length; h > b; b++){var C = w[b]; if (C.nTable == this || C.nTHead.parentNode == this || C.nTFoot && C.nTFoot.parentNode == this){var x = g.bRetrieve !== n?g.bRetrieve:_.bRetrieve, A = g.bDestroy !== n?g.bDestroy:_.bDestroy; if (r || x)return C.oInstance; if (A){C.oInstance.fnDestroy(); break}return void Ht(C, 0, "Cannot reinitialise DataTable", 3)}if (C.sTableId == this.id){w.splice(b, 1); break}}(null === v || "" === v) && (v = "DataTables_Table_" + qt.ext._unique++, this.id = v); var F = a.extend(!0, {}, qt.models.oSettings, {sDestroyWidth:T[0].style.width, sInstance:v, sTableId:v}); F.nTable = this, F.oApi = e.internal, F.oInit = g, w.push(F), F.oInstance = 1 === e.length?e:T.dataTable(), s(g), g.oLanguage && i(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = a.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]), g = kt(a.extend(!0, {}, _), g), Nt(F.oFeatures, g, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), Nt(F, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], ["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]), Nt(F.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]), Nt(F.oLanguage, g, "fnInfoCallback"), Mt(F, "aoDrawCallback", g.fnDrawCallback, "user"), Mt(F, "aoServerParams", g.fnServerParams, "user"), Mt(F, "aoStateSaveParams", g.fnStateSaveParams, "user"), Mt(F, "aoStateLoadParams", g.fnStateLoadParams, "user"), Mt(F, "aoStateLoaded", g.fnStateLoaded, "user"), Mt(F, "aoRowCallback", g.fnRowCallback, "user"), Mt(F, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Mt(F, "aoHeaderCallback", g.fnHeaderCallback, "user"), Mt(F, "aoFooterCallback", g.fnFooterCallback, "user"), Mt(F, "aoInitComplete", g.fnInitComplete, "user"), Mt(F, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), F.rowIdFn = I(g.rowId), u(F); var L = F.oClasses; if (g.bJQueryUI?(a.extend(L, qt.ext.oJUIClasses, g.oClasses), g.sDom === _.sDom && "lfrtip" === _.sDom && (F.sDom = '<"H"lfr>t<"F"ip>'), F.renderer?a.isPlainObject(F.renderer) && !F.renderer.header && (F.renderer.header = "jqueryui"):F.renderer = "jqueryui"):a.extend(L, qt.ext.classes, g.oClasses), T.addClass(L.sTable), F.iInitDisplayStart === n && (F.iInitDisplayStart = g.iDisplayStart, F._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading){F.bDeferLoading = !0; var P = a.isArray(g.iDeferLoading); F._iRecordsDisplay = P?g.iDeferLoading[0]:g.iDeferLoading, F._iRecordsTotal = P?g.iDeferLoading[1]:g.iDeferLoading}var R = F.oLanguage; a.extend(!0, R, g.oLanguage), "" !== R.sUrl && (a.ajax({dataType:"json", url:R.sUrl, success:function(t){i(t), o(_.oLanguage, t), a.extend(!0, R, t), st(F)}, error:function(){st(F)}}), S = !0), null === g.asStripeClasses && (F.asStripeClasses = [L.sStripeOdd, L.sStripeEven]); var j = F.asStripeClasses, H = T.children("tbody").find("tr").eq(0); - 1 !== a.inArray(!0, a.map(j, function(t, e){return H.hasClass(t)})) && (a("tbody tr", this).removeClass(j.join(" ")), F.asDestroyStripes = j.slice()); var N, k = [], O = this.getElementsByTagName("thead"); if (0 !== O.length && (E(F.aoHeader, O[0]), k = B(F)), null === g.aoColumns)for (N = [], b = 0, h = k.length; h > b; b++)N.push(null); else N = g.aoColumns; for (b = 0, h = N.length; h > b; b++)f(F, k?k[b]:null); if (m(F, g.aoColumnDefs, N, function(t, e){d(F, t, e)}), H.length){var M = function(t, e){return null !== t.getAttribute("data-" + e)?e:null}; a(H[0]).children("th, td").each(function(t, e){var a = F.aoColumns[t]; if (a.mData === t){var r = M(e, "sort") || M(e, "order"), o = M(e, "filter") || M(e, "search"); (null !== r || null !== o) && (a.mData = {_:t + ".display", sort:null !== r?t + ".@data-" + r:n, type:null !== r?t + ".@data-" + r:n, filter:null !== o?t + ".@data-" + o:n}, d(F, t))}})}var W = F.oFeatures; if (g.bStateSave && (W.bStateSave = !0, Rt(F, g), Mt(F, "aoDrawCallback", Pt, "state_save")), g.aaSorting === n){var U = F.aaSorting; for (b = 0, h = U.length; h > b; b++)U[b][1] = F.aoColumns[b].asSorting[0]}Ft(F), W.bSort && Mt(F, "aoDrawCallback", function(){if (F.bSorted){var t = wt(F), e = {}; a.each(t, function(t, n){e[n.src] = n.dir}), Wt(F, null, "order", [F, t, e]), xt(F)}}), Mt(F, "aoDrawCallback", function(){(F.bSorted || "ssp" === Bt(F) || W.bDeferRender) && Ft(F)}, "sc"); var J = T.children("caption").each(function(){this._captionSide = T.css("caption-side")}), X = T.children("thead"); 0 === X.length && (X = a("<thead/>").appendTo(this)), F.nTHead = X[0]; var V = T.children("tbody"); 0 === V.length && (V = a("<tbody/>").appendTo(this)), F.nTBody = V[0]; var q = T.children("tfoot"); if (0 === q.length && J.length > 0 && ("" !== F.oScroll.sX || "" !== F.oScroll.sY) && (q = a("<tfoot/>").appendTo(this)), 0 === q.length || 0 === q.children().length?T.addClass(L.sNoFooter):q.length > 0 && (F.nTFoot = q[0], E(F.aoFooter, F.nTFoot)), g.aaData)for (b = 0; b < g.aaData.length; b++)D(F, g.aaData[b]); else(F.bDeferLoading || "dom" == Bt(F)) && y(F, a(F.nTBody).children("tr")); F.aiDisplay = F.aiDisplayMaster.slice(), F.bInitialised = !0, S === !1 && st(F)}), e = null, this}; var _e = [], Te = Array.prototype, we = function(t){var e, n, r = qt.settings, o = a.map(r, function(t, e){return t.nTable}); return t?t.nTable && t.oApi?[t]:t.nodeName && "table" === t.nodeName.toLowerCase()?(e = a.inArray(t, o), - 1 !== e?[r[e]]:null):t && "function" == typeof t.settings?t.settings().toArray():("string" == typeof t?n = a(t):t instanceof a && (n = t), n?n.map(function(t){return e = a.inArray(this, o), - 1 !== e?r[e]:null}).toArray():void 0):[]}; $t = function(t, e){if (!(this instanceof $t))return new $t(t, e); var n = [], r = function(t){var e = we(t); e && (n = n.concat(e))}; if (a.isArray(t))for (var o = 0, i = t.length; i > o; o++)r(t[o]); else r(t); this.context = ge(n), e && a.merge(this, e), this.selector = {rows:null, cols:null, opts:null}, $t.extend(this, this, _e)}, qt.Api = $t, a.extend($t.prototype, {any:function(){return 0 !== this.count()}, concat:Te.concat, context:[], count:function(){return this.flatten().length}, each:function(t){for (var e = 0, n = this.length; n > e; e++)t.call(this, this[e], e, this); return this}, eq:function(t){var e = this.context; return e.length > t?new $t(e[t], this[t]):null}, filter:function(t){var e = []; if (Te.filter)e = Te.filter.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)t.call(this, this[n], n, this) && e.push(this[n]); return new $t(this.context, e)}, flatten:function(){var t = []; return new $t(this.context, t.concat.apply(t, this.toArray()))}, join:Te.join, indexOf:Te.indexOf || function(t, e){for (var n = e || 0, a = this.length; a > n; n++)if (this[n] === t)return n; return - 1}, iterator:function(t, e, a, r){var o, i, s, l, u, c, f, d, h = [], p = this.context, g = this.selector; for ("string" == typeof t && (r = a, a = e, e = t, t = !1), i = 0, s = p.length; s > i; i++){var b = new $t(p[i]); if ("table" === e)o = a.call(b, p[i], i), o !== n && h.push(o); else if ("columns" === e || "rows" === e)o = a.call(b, p[i], this[i], i), o !== n && h.push(o); else if ("column" === e || "column-rows" === e || "row" === e || "cell" === e)for (f = this[i], "column-rows" === e && (c = Le(p[i], g.opts)), l = 0, u = f.length; u > l; l++)d = f[l], o = "cell" === e?a.call(b, p[i], d.row, d.column, i, l):a.call(b, p[i], d, i, l, c), o !== n && h.push(o)}if (h.length || r){var v = new $t(p, t?h.concat.apply([], h):h), S = v.selector; return S.rows = g.rows, S.cols = g.cols, S.opts = g.opts, v}return this}, lastIndexOf:Te.lastIndexOf || function(t, e){return this.indexOf.apply(this.toArray.reverse(), arguments)}, length:0, map:function(t){var e = []; if (Te.map)e = Te.map.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)e.push(t.call(this, this[n], n)); return new $t(this.context, e)}, pluck:function(t){return this.map(function(e){return e[t]})}, pop:Te.pop, push:Te.push, reduce:Te.reduce || function(t, e){return c(this, t, e, 0, this.length, 1)}, reduceRight:Te.reduceRight || function(t, e){return c(this, t, e, this.length - 1, - 1, - 1)}, reverse:Te.reverse, selector:null, shift:Te.shift, sort:Te.sort, splice:Te.splice, toArray:function(){return Te.slice.call(this)}, to$:function(){return a(this)}, toJQuery:function(){return a(this)}, unique:function(){return new $t(this.context, ge(this))}, unshift:Te.unshift}), $t.extend = function(t, e, n){if (n.length && e && (e instanceof $t || e.__dt_wrapper)){var r, o, i, s = function(t, e, n){return function(){var a = e.apply(t, arguments); return $t.extend(a, a, n.methodExt), a}}; for (r = 0, o = n.length; o > r; r++)i = n[r], e[i.name] = "function" == typeof i.val?s(t, i.val, i):a.isPlainObject(i.val)?{}:i.val, e[i.name].__dt_wrapper = !0, $t.extend(t, e[i.name], i.propExt)}}, $t.register = zt = function(t, e){if (a.isArray(t))for (var n = 0, r = t.length; r > n; n++)$t.register(t[n], e); else{var o, i, s, l, u = t.split("."), c = _e, f = function(t, e){for (var n = 0, a = t.length; a > n; n++)if (t[n].name === e)return t[n]; return null}; for (o = 0, i = u.length; i > o; o++){l = - 1 !== u[o].indexOf("()"), s = l?u[o].replace("()", ""):u[o]; var d = f(c, s); d || (d = {name:s, val:{}, methodExt:[], propExt:[]}, c.push(d)), o === i - 1?d.val = e:c = l?d.methodExt:d.propExt}}}, $t.registerPlural = Yt = function(t, e, r){$t.register(t, r), $t.register(e, function(){var t = r.apply(this, arguments); return t === this?this:t instanceof $t?t.length?a.isArray(t[0])?new $t(t.context, t[0]):t[0]:n:t})}; var Ce = function(t, e){if ("number" == typeof t)return[e[t]]; var n = a.map(e, function(t, e){return t.nTable}); return a(n).filter(t).map(function(t){var r = a.inArray(this, n); return e[r]}).toArray()}; zt("tables()", function(t){return t?new $t(Ce(t, this.context)):this}), zt("table()", function(t){var e = this.tables(t), n = e.context; return n.length?new $t(n[0]):e}), Yt("tables().nodes()", "table().node()", function(){return this.iterator("table", function(t){return t.nTable}, 1)}), Yt("tables().body()", "table().body()", function(){return this.iterator("table", function(t){return t.nTBody}, 1)}), Yt("tables().header()", "table().header()", function(){return this.iterator("table", function(t){return t.nTHead}, 1)}), Yt("tables().footer()", "table().footer()", function(){return this.iterator("table", function(t){return t.nTFoot}, 1)}), Yt("tables().containers()", "table().container()", function(){return this.iterator("table", function(t){return t.nTableWrapper}, 1)}), zt("draw()", function(t){return this.iterator("table", function(e){"page" === t?M(e):("string" == typeof t && (t = "full-hold" === t?!1:!0), W(e, t === !1))})}), zt("page()", function(t){return t === n?this.page.info().page:this.iterator("table", function(e){dt(e, t)})}), zt("page.info()", function(t){if (0 === this.context.length)return n; var e = this.context[0], a = e._iDisplayStart, r = e._iDisplayLength, o = e.fnRecordsDisplay(), i = - 1 === r; return{page:i?0:Math.floor(a / r), pages:i?1:Math.ceil(o / r), start:a, end:e.fnDisplayEnd(), length:r, recordsTotal:e.fnRecordsTotal(), recordsDisplay:o, serverSide:"ssp" === Bt(e)}}), zt("page.len()", function(t){return t === n?0 !== this.context.length?this.context[0]._iDisplayLength:n:this.iterator("table", function(e){ut(e, t)})}); var xe = function(t, e, n){if (n){var a = new $t(t); a.one("draw", function(){n(a.ajax.json())})}if ("ssp" == Bt(t))W(t, e); else{pt(t, !0); var r = t.jqXHR; r && 4 !== r.readyState && r.abort(), J(t, [], function(n){L(t); for (var a = G(t, n), r = 0, o = a.length; o > r; r++)D(t, a[r]); W(t, e), pt(t, !1)})}}; zt("ajax.json()", function(){var t = this.context; return t.length > 0?t[0].json:void 0}), zt("ajax.params()", function(){var t = this.context; return t.length > 0?t[0].oAjaxData:void 0}), zt("ajax.reload()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}), zt("ajax.url()", function(t){var e = this.context; return t === n?0 === e.length?n:(e = e[0], e.ajax?a.isPlainObject(e.ajax)?e.ajax.url:e.ajax:e.sAjaxSource):this.iterator("table", function(e){a.isPlainObject(e.ajax)?e.ajax.url = t:e.ajax = t})}), zt("ajax.url().load()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}); var Ie = function(t, e, r, o, i){var s, l, u, c, f, d, h = [], p = typeof e; for (e && "string" !== p && "function" !== p && e.length !== n || (e = [e]), u = 0, c = e.length; c > u; u++)for (l = e[u] && e[u].split?e[u].split(","):[e[u]], f = 0, d = l.length; d > f; f++)s = r("string" == typeof l[f]?a.trim(l[f]):l[f]), s && s.length && (h = h.concat(s)); var g = Gt.selector[t]; if (g.length)for (u = 0, c = g.length; c > u; u++)h = g[u](o, i, h); return ge(h)}, Ae = function(t){return t || (t = {}), t.filter && t.search === n && (t.search = t.filter), a.extend({search:"none", order:"current", page:"all"}, t)}, Fe = function(t){for (var e = 0, n = t.length; n > e; e++)if (t[e].length > 0)return t[0] = t[e], t[0].length = 1, t.length = 1, t.context = [t.context[e]], t; return t.length = 0, t}, Le = function(t, e){var n, r, o, i = [], s = t.aiDisplay, l = t.aiDisplayMaster, u = e.search, c = e.order, f = e.page; if ("ssp" == Bt(t))return"removed" === u?[]:de(0, l.length); if ("current" == f)for (n = t._iDisplayStart, r = t.fnDisplayEnd(); r > n; n++)i.push(s[n]); else if ("current" == c || "applied" == c)i = "none" == u?l.slice():"applied" == u?s.slice():a.map(l, function(t, e){return - 1 === a.inArray(t, s)?t:null}); else if ("index" == c || "original" == c)for (n = 0, r = t.aoData.length; r > n; n++)"none" == u?i.push(n):(o = a.inArray(n, s), ( - 1 === o && "removed" == u || o >= 0 && "applied" == u) && i.push(n)); return i}, Pe = function(t, e, r){var o = function(e){var o = oe(e); if (null !== o && !r)return[o]; var i = Le(t, r); if (null !== o && - 1 !== a.inArray(o, i))return[o]; if (!e)return i; if ("function" == typeof e)return a.map(i, function(n){var a = t.aoData[n]; return e(n, a._aData, a.nTr)?n:null}); var s = he(fe(t.aoData, i, "nTr")); if (e.nodeName && - 1 !== a.inArray(e, s))return[e._DT_RowIndex]; if ("string" == typeof e && "#" === e.charAt(0)){var l = t.aIds[e.replace(/^#/, "")]; if (l !== n)return[l.idx]}return a(s).filter(e).map(function(){return this._DT_RowIndex}).toArray()}; return Ie("row", e, o, t, r)}; zt("rows()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Pe(n, t, e)}, 1); return r.selector.rows = t, r.selector.opts = e, r}), zt("rows().nodes()", function(){return this.iterator("row", function(t, e){return t.aoData[e].nTr || n}, 1)}), zt("rows().data()", function(){return this.iterator(!0, "rows", function(t, e){return fe(t.aoData, e, "_aData")}, 1)}), Yt("rows().cache()", "row().cache()", function(t){return this.iterator("row", function(e, n){var a = e.aoData[n]; return"search" === t?a._aFilterData:a._aSortData}, 1)}), Yt("rows().invalidate()", "row().invalidate()", function(t){return this.iterator("row", function(e, n){R(e, n, t)})}), Yt("rows().indexes()", "row().index()", function(){return this.iterator("row", function(t, e){return e}, 1)}), Yt("rows().ids()", "row().id()", function(t){for (var e = [], n = this.context, a = 0, r = n.length; r > a; a++)for (var o = 0, i = this[a].length; i > o; o++){var s = n[a].rowIdFn(n[a].aoData[this[a][o]]._aData); e.push((t === !0?"#":"") + s)}return new $t(n, e)}), Yt("rows().remove()", "row().remove()", function(){var t = this; return this.iterator("row", function(e, a, r){var o = e.aoData, i = o[a]; o.splice(a, 1); for (var s = 0, l = o.length; l > s; s++)null !== o[s].nTr && (o[s].nTr._DT_RowIndex = s); P(e.aiDisplayMaster, a), P(e.aiDisplay, a), P(t[r], a, !1), Ut(e); var u = e.rowIdFn(i._aData); u !== n && delete e.aIds[u]}), this.iterator("table", function(t){for (var e = 0, n = t.aoData.length; n > e; e++)t.aoData[e].idx = e}), this}), zt("rows.add()", function(t){var e = this.iterator("table", function(e){var n, a, r, o = []; for (a = 0, r = t.length; r > a; a++)n = t[a], n.nodeName && "TR" === n.nodeName.toUpperCase()?o.push(y(e, n)[0]):o.push(D(e, n)); return o}, 1), n = this.rows( - 1); return n.pop(), a.merge(n, e), n}), zt("row()", function(t, e){return Fe(this.rows(t, e))}), zt("row().data()", function(t){var e = this.context; return t === n?e.length && this.length?e[0].aoData[this[0]]._aData:n:(e[0].aoData[this[0]]._aData = t, R(e[0], this[0], "data"), this)}), zt("row().node()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]].nTr || null:null}), zt("row.add()", function(t){t instanceof a && t.length && (t = t[0]); var e = this.iterator("table", function(e){return t.nodeName && "TR" === t.nodeName.toUpperCase()?y(e, t)[0]:D(e, t)}); return this.row(e[0])}); var Re = function(t, e, n, r){var o = [], i = function(e, n){if (a.isArray(e) || e instanceof a)for (var r = 0, s = e.length; s > r; r++)i(e[r], n); else if (e.nodeName && "tr" === e.nodeName.toLowerCase())o.push(e); else{var l = a("<tr><td/></tr>").addClass(n); a("td", l).addClass(n).html(e)[0].colSpan = b(t), o.push(l[0])}}; i(n, r), e._details && e._details.remove(), e._details = a(o), e._detailsShow && e._details.insertAfter(e.nTr)}, je = function(t, e){var a = t.context; if (a.length){var r = a[0].aoData[e !== n?e:t[0]]; r && r._details && (r._details.remove(), r._detailsShow = n, r._details = n)}}, He = function(t, e){var n = t.context; if (n.length && t.length){var a = n[0].aoData[t[0]]; a._details && (a._detailsShow = e, e?a._details.insertAfter(a.nTr):a._details.detach(), Ne(n[0]))}}, Ne = function(t){var e = new $t(t), n = ".dt.DT_details", a = "draw" + n, r = "column-visibility" + n, o = "destroy" + n, i = t.aoData; e.off(a + " " + r + " " + o), ce(i, "_details").length > 0 && (e.on(a, function(n, a){t === a && e.rows({page:"current"}).eq(0).each(function(t){var e = i[t]; e._detailsShow && e._details.insertAfter(e.nTr)})}), e.on(r, function(e, n, a, r){if (t === n)for (var o, s = b(n), l = 0, u = i.length; u > l; l++)o = i[l], o._details && o._details.children("td[colspan]").attr("colspan", s)}), e.on(o, function(n, a){if (t === a)for (var r = 0, o = i.length; o > r; r++)i[r]._details && je(e, r)}))}, ke = "", Oe = ke + "row().child", Me = Oe + "()"; zt(Me, function(t, e){var a = this.context; return t === n?a.length && this.length?a[0].aoData[this[0]]._details:n:(t === !0?this.child.show():t === !1?je(this):a.length && this.length && Re(a[0], a[0].aoData[this[0]], t, e), this)}), zt([Oe + ".show()", Me + ".show()"], function(t){return He(this, !0), this}), zt([Oe + ".hide()", Me + ".hide()"], function(){return He(this, !1), this}), zt([Oe + ".remove()", Me + ".remove()"], function(){return je(this), this}), zt(Oe + ".isShown()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]]._detailsShow || !1:!1}); var We = /^(.+):(name|visIdx|visible)$/, Ue = function(t, e, n, a, r){for (var o = [], i = 0, s = r.length; s > i; i++)o.push(w(t, r[i], e)); return o}, Ee = function(t, e, n){var r = t.aoColumns, o = ce(r, "sName"), i = ce(r, "nTh"), s = function(e){var s = oe(e); if ("" === e)return de(r.length); if (null !== s)return[s >= 0?s:r.length + s]; if ("function" == typeof e){var l = Le(t, n); return a.map(r, function(n, a){return e(a, Ue(t, a, 0, 0, l), i[a])?a:null})}var u = "string" == typeof e?e.match(We):""; if (!u)return a(i).filter(e).map(function(){return a.inArray(this, i)}).toArray(); switch (u[2]){case"visIdx":case"visible":var c = parseInt(u[1], 10); if (0 > c){var f = a.map(r, function(t, e){return t.bVisible?e:null}); return[f[f.length + c]]}return[p(t, c)]; case"name":return a.map(o, function(t, e){return t === u[1]?e:null})}}; return Ie("column", e, s, t, n)}, Be = function(t, e, r, o){var i, s, l, u, c = t.aoColumns, f = c[e], d = t.aoData; if (r === n)return f.bVisible; if (f.bVisible !== r){if (r){var p = a.inArray(!0, ce(c, "bVisible"), e + 1); for (s = 0, l = d.length; l > s; s++)u = d[s].nTr, i = d[s].anCells, u && u.insertBefore(i[e], i[p] || null)} else a(ce(t.aoData, "anCells", e)).detach(); f.bVisible = r, O(t, t.aoHeader), O(t, t.aoFooter), (o === n || o) && (h(t), (t.oScroll.sX || t.oScroll.sY) && bt(t)), Wt(t, null, "column-visibility", [t, e, r]), Pt(t)}}; zt("columns()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Ee(n, t, e)}, 1); return r.selector.cols = t, r.selector.opts = e, r}), Yt("columns().header()", "column().header()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTh}, 1)}), Yt("columns().footer()", "column().footer()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTf}, 1)}), Yt("columns().data()", "column().data()", function(){return this.iterator("column-rows", Ue, 1)}), Yt("columns().dataSrc()", "column().dataSrc()", function(){return this.iterator("column", function(t, e){return t.aoColumns[e].mData}, 1)}), Yt("columns().cache()", "column().cache()", function(t){return this.iterator("column-rows", function(e, n, a, r, o){return fe(e.aoData, o, "search" === t?"_aFilterData":"_aSortData", n)}, 1)}), Yt("columns().nodes()", "column().nodes()", function(){return this.iterator("column-rows", function(t, e, n, a, r){return fe(t.aoData, r, "anCells", e)}, 1)}), Yt("columns().visible()", "column().visible()", function(t, e){return this.iterator("column", function(a, r){return t === n?a.aoColumns[r].bVisible:void Be(a, r, t, e)})}), Yt("columns().indexes()", "column().index()", function(t){return this.iterator("column", function(e, n){return"visible" === t?g(e, n):n}, 1)}), zt("columns.adjust()", function(){return this.iterator("table", function(t){h(t)}, 1)}), zt("column.index()", function(t, e){if (0 !== this.context.length){var n = this.context[0]; if ("fromVisible" === t || "toData" === t)return p(n, e); if ("fromData" === t || "toVisible" === t)return g(n, e)}}), zt("column()", function(t, e){return Fe(this.columns(t, e))}); var Je = function(t, e, r){var o, i, s, l, u, c, f, d = t.aoData, h = Le(t, r), p = he(fe(d, h, "anCells")), g = a([].concat.apply([], p)), b = t.aoColumns.length, v = function(e){var r = "function" == typeof e; if (null === e || e === n || r){for (i = [], s = 0, l = h.length; l > s; s++)for (o = h[s], u = 0; b > u; u++)c = {row:o, column:u}, r?(f = d[o], e(c, w(t, o, u), f.anCells?f.anCells[u]:null) && i.push(c)):i.push(c); return i}return a.isPlainObject(e)?[e]:g.filter(e).map(function(t, e){if (e.parentNode)o = e.parentNode._DT_RowIndex; else for (t = 0, l = d.length; l > t; t++)if ( - 1 !== a.inArray(e, d[t].anCells)){o = t; break}return{row:o, column:a.inArray(e, d[o].anCells)}}).toArray()}; return Ie("cell", e, v, t, r)}; zt("cells()", function(t, e, r){if (a.isPlainObject(t) && (t.row === n?(r = t, t = null):(r = e, e = null)), a.isPlainObject(e) && (r = e, e = null), null === e || e === n)return this.iterator("table", function(e){return Je(e, t, Ae(r))}); var o, i, s, l, u, c = this.columns(e, r), f = this.rows(t, r), d = this.iterator("table", function(t, e){for (o = [], i = 0, s = f[e].length; s > i; i++)for (l = 0, u = c[e].length; u > l; l++)o.push({row:f[e][i], column:c[e][l]}); return o}, 1); return a.extend(d.selector, {cols:e, rows:t, opts:r}), d}), Yt("cells().nodes()", "cell().node()", function(){return this.iterator("cell", function(t, e, a){var r = t.aoData[e].anCells; return r?r[a]:n}, 1)}), zt("cells().data()", function(){return this.iterator("cell", function(t, e, n){return w(t, e, n)}, 1)}), Yt("cells().cache()", "cell().cache()", function(t){return t = "search" === t?"_aFilterData":"_aSortData", this.iterator("cell", function(e, n, a){return e.aoData[n][t][a]}, 1)}), Yt("cells().render()", "cell().render()", function(t){return this.iterator("cell", function(e, n, a){return w(e, n, a, t)}, 1)}), Yt("cells().indexes()", "cell().index()", function(){return this.iterator("cell", function(t, e, n){return{row:e, column:n, columnVisible:g(t, n)}}, 1)}), Yt("cells().invalidate()", "cell().invalidate()", function(t){return this.iterator("cell", function(e, n, a){R(e, n, t, a)})}), zt("cell()", function(t, e, n){return Fe(this.cells(t, e, n))}), zt("cell().data()", function(t){var e = this.context, a = this[0]; return t === n?e.length && a.length?w(e[0], a[0].row, a[0].column):n:(C(e[0], a[0].row, a[0].column, t), R(e[0], a[0].row, "data", a[0].column), this)}), zt("order()", function(t, e){var r = this.context; return t === n?0 !== r.length?r[0].aaSorting:n:("number" == typeof t?t = [[t, e]]:a.isArray(t[0]) || (t = Array.prototype.slice.call(arguments)), this.iterator("table", function(e){e.aaSorting = t.slice()}))}), zt("order.listener()", function(t, e, n){return this.iterator("table", function(a){
|
3 |
At(a, t, e, n)})}), zt(["columns().order()", "column().order()"], function(t){var e = this; return this.iterator("table", function(n, r){var o = []; a.each(e[r], function(e, n){o.push([n, t])}), n.aaSorting = o})}), zt("search()", function(t, e, r, o){var i = this.context; return t === n?0 !== i.length?i[0].oPreviousSearch.sSearch:n:this.iterator("table", function(n){n.oFeatures.bFilter && z(n, a.extend({}, n.oPreviousSearch, {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), 1)})}), Yt("columns().search()", "column().search()", function(t, e, r, o){return this.iterator("column", function(i, s){var l = i.aoPreSearchCols; return t === n?l[s].sSearch:void(i.oFeatures.bFilter && (a.extend(l[s], {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), z(i, i.oPreviousSearch, 1)))})}), zt("state()", function(){return this.context.length?this.context[0].oSavedState:null}), zt("state.clear()", function(){return this.iterator("table", function(t){t.fnStateSaveCallback.call(t.oInstance, t, {})})}), zt("state.loaded()", function(){return this.context.length?this.context[0].oLoadedState:null}), zt("state.save()", function(){return this.iterator("table", function(t){Pt(t)})}), qt.versionCheck = qt.fnVersionCheck = function(t){for (var e, n, a = qt.version.split("."), r = t.split("."), o = 0, i = r.length; i > o; o++)if (e = parseInt(a[o], 10) || 0, n = parseInt(r[o], 10) || 0, e !== n)return e > n; return!0}, qt.isDataTable = qt.fnIsDataTable = function(t){var e = a(t).get(0), n = !1; return a.each(qt.settings, function(t, r){var o = r.nScrollHead?a("table", r.nScrollHead)[0]:null, i = r.nScrollFoot?a("table", r.nScrollFoot)[0]:null; (r.nTable === e || o === e || i === e) && (n = !0)}), n}, qt.tables = qt.fnTables = function(t){var e = !1; a.isPlainObject(t) && (e = t.api, t = t.visible); var n = a.map(qt.settings, function(e){return!t || t && a(e.nTable).is(":visible")?e.nTable:void 0}); return e?new $t(n):n}, qt.util = {throttle:mt, escapeRegex:tt}, qt.camelToHungarian = o, zt("$()", function(t, e){var n = this.rows(e).nodes(), r = a(n); return a([].concat(r.filter(t).toArray(), r.find(t).toArray()))}), a.each(["on", "one", "off"], function(t, e){zt(e + "()", function(){var t = Array.prototype.slice.call(arguments); t[0].match(/\.dt\b/) || (t[0] += ".dt"); var n = a(this.tables().nodes()); return n[e].apply(n, t), this})}), zt("clear()", function(){return this.iterator("table", function(t){L(t)})}), zt("settings()", function(){return new $t(this.context, this.context)}), zt("init()", function(){var t = this.context; return t.length?t[0].oInit:null}), zt("data()", function(){return this.iterator("table", function(t){return ce(t.aoData, "_aData")}).flatten()}), zt("destroy()", function(e){return e = e || !1, this.iterator("table", function(n){var r, o = n.nTableWrapper.parentNode, i = n.oClasses, s = n.nTable, l = n.nTBody, u = n.nTHead, c = n.nTFoot, f = a(s), d = a(l), h = a(n.nTableWrapper), p = a.map(n.aoData, function(t){return t.nTr}); n.bDestroying = !0, Wt(n, "aoDestroyCallback", "destroy", [n]), e || new $t(n).columns().visible(!0), h.unbind(".DT").find(":not(tbody *)").unbind(".DT"), a(t).unbind(".DT-" + n.sInstance), s != u.parentNode && (f.children("thead").detach(), f.append(u)), c && s != c.parentNode && (f.children("tfoot").detach(), f.append(c)), n.aaSorting = [], n.aaSortingFixed = [], Ft(n), a(p).removeClass(n.asStripeClasses.join(" ")), a("th, td", u).removeClass(i.sSortable + " " + i.sSortableAsc + " " + i.sSortableDesc + " " + i.sSortableNone), n.bJUI && (a("th span." + i.sSortIcon + ", td span." + i.sSortIcon, u).detach(), a("th, td", u).each(function(){var t = a("div." + i.sSortJUIWrapper, this); a(this).append(t.contents()), t.detach()})), d.children().detach(), d.append(p); var g = e?"remove":"detach"; f[g](), h[g](), !e && o && (o.insertBefore(s, n.nTableReinsertBefore), f.css("width", n.sDestroyWidth).removeClass(i.sTable), r = n.asDestroyStripes.length, r && d.children().each(function(t){a(this).addClass(n.asDestroyStripes[t % r])})); var b = a.inArray(n, qt.settings); - 1 !== b && qt.settings.splice(b, 1)})}), a.each(["column", "row", "cell"], function(t, e){zt(e + "s().every()", function(t){return this.iterator(e, function(a, r, o, i, s){t.call(new $t(a)[e](r, "cell" === e?o:n), r, o, i, s)})})}), zt("i18n()", function(t, e, r){var o = this.context[0], i = I(t)(o.oLanguage); return i === n && (i = e), r !== n && a.isPlainObject(i) && (i = i[r] !== n?i[r]:i._), i.replace("%d", r)}), qt.version = "1.10.9", qt.settings = [], qt.models = {}, qt.models.oSearch = {bCaseInsensitive:!0, sSearch:"", bRegex:!1, bSmart:!0}, qt.models.oRow = {nTr:null, anCells:null, _aData:[], _aSortData:null, _aFilterData:null, _sFilterRow:null, _sRowStripe:"", src:null, idx: - 1}, qt.models.oColumn = {idx:null, aDataSort:null, asSorting:null, bSearchable:null, bSortable:null, bVisible:null, _sManualType:null, _bAttrSrc:!1, fnCreatedCell:null, fnGetData:null, fnSetData:null, mData:null, mRender:null, nTh:null, nTf:null, sClass:null, sContentPadding:null, sDefaultContent:null, sName:null, sSortDataType:"std", sSortingClass:null, sSortingClassJUI:null, sTitle:null, sType:null, sWidth:null, sWidthOrig:null}, qt.defaults = {aaData:null, aaSorting:[[0, "asc"]], aaSortingFixed:[], ajax:null, aLengthMenu:[10, 25, 50, 100], aoColumns:null, aoColumnDefs:null, aoSearchCols:[], asStripeClasses:null, bAutoWidth:!0, bDeferRender:!1, bDestroy:!1, bFilter:!0, bInfo:!0, bJQueryUI:!1, bLengthChange:!0, bPaginate:!0, bProcessing:!1, bRetrieve:!1, bScrollCollapse:!1, bServerSide:!1, bSort:!0, bSortMulti:!0, bSortCellsTop:!1, bSortClasses:!0, bStateSave:!1, fnCreatedRow:null, fnDrawCallback:null, fnFooterCallback:null, fnFormatNumber:function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)}, fnHeaderCallback:null, fnInfoCallback:null, fnInitComplete:null, fnPreDrawCallback:null, fnRowCallback:null, fnServerData:null, fnServerParams:null, fnStateLoadCallback:function(t){try{return JSON.parse(( - 1 === t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_" + t.sInstance + "_" + location.pathname))} catch (e){}}, fnStateLoadParams:null, fnStateLoaded:null, fnStateSaveCallback:function(t, e){try{( - 1 === t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_" + t.sInstance + "_" + location.pathname, JSON.stringify(e))} catch (n){}}, fnStateSaveParams:null, iStateDuration:7200, iDeferLoading:null, iDisplayLength:10, iDisplayStart:0, iTabIndex:0, oClasses:{}, oLanguage:{oAria:{sSortAscending:": activate to sort column ascending", sSortDescending:": activate to sort column descending"}, oPaginate:{sFirst:"First", sLast:"Last", sNext:"Next", sPrevious:"Previous"}, sEmptyTable:"No data available in table", sInfo:"Showing _START_ to _END_ of _TOTAL_ entries", sInfoEmpty:"Showing 0 to 0 of 0 entries", sInfoFiltered:"(filtered from _MAX_ total entries)", sInfoPostFix:"", sDecimal:"", sThousands:",", sLengthMenu:"Show _MENU_ entries", sLoadingRecords:"Loading...", sProcessing:"Processing...", sSearch:"Search:", sSearchPlaceholder:"", sUrl:"", sZeroRecords:"No matching records found"}, oSearch:a.extend({}, qt.models.oSearch), sAjaxDataProp:"data", sAjaxSource:null, sDom:"lfrtip", searchDelay:null, sPaginationType:"simple_numbers", sScrollX:"", sScrollXInner:"", sScrollY:"", sServerMethod:"GET", renderer:null, rowId:"DT_RowId"}, r(qt.defaults), qt.defaults.column = {aDataSort:null, iDataSort: - 1, asSorting:["asc", "desc"], bSearchable:!0, bSortable:!0, bVisible:!0, fnCreatedCell:null, mData:null, mRender:null, sCellType:"td", sClass:"", sContentPadding:"", sDefaultContent:null, sName:"", sSortDataType:"std", sTitle:null, sType:null, sWidth:null}, r(qt.defaults.column), qt.models.oSettings = {oFeatures:{bAutoWidth:null, bDeferRender:null, bFilter:null, bInfo:null, bLengthChange:null, bPaginate:null, bProcessing:null, bServerSide:null, bSort:null, bSortMulti:null, bSortClasses:null, bStateSave:null}, oScroll:{bCollapse:null, iBarWidth:0, sX:null, sXInner:null, sY:null}, oLanguage:{fnInfoCallback:null}, oBrowser:{bScrollOversize:!1, bScrollbarLeft:!1, bBounding:!1, barWidth:0}, ajax:null, aanFeatures:[], aoData:[], aiDisplay:[], aiDisplayMaster:[], aIds:{}, aoColumns:[], aoHeader:[], aoFooter:[], oPreviousSearch:{}, aoPreSearchCols:[], aaSorting:null, aaSortingFixed:[], asStripeClasses:null, asDestroyStripes:[], sDestroyWidth:0, aoRowCallback:[], aoHeaderCallback:[], aoFooterCallback:[], aoDrawCallback:[], aoRowCreatedCallback:[], aoPreDrawCallback:[], aoInitComplete:[], aoStateSaveParams:[], aoStateLoadParams:[], aoStateLoaded:[], sTableId:"", nTable:null, nTHead:null, nTFoot:null, nTBody:null, nTableWrapper:null, bDeferLoading:!1, bInitialised:!1, aoOpenRows:[], sDom:null, searchDelay:null, sPaginationType:"two_button", iStateDuration:0, aoStateSave:[], aoStateLoad:[], oSavedState:null, oLoadedState:null, sAjaxSource:null, sAjaxDataProp:null, bAjaxDataGet:!0, jqXHR:null, json:n, oAjaxData:n, fnServerData:null, aoServerParams:[], sServerMethod:null, fnFormatNumber:null, aLengthMenu:null, iDraw:0, bDrawing:!1, iDrawError: - 1, _iDisplayLength:10, _iDisplayStart:0, _iRecordsTotal:0, _iRecordsDisplay:0, bJUI:null, oClasses:{}, bFiltered:!1, bSorted:!1, bSortCellsTop:null, oInit:null, aoDestroyCallback:[], fnRecordsTotal:function(){return"ssp" == Bt(this)?1 * this._iRecordsTotal:this.aiDisplayMaster.length}, fnRecordsDisplay:function(){return"ssp" == Bt(this)?1 * this._iRecordsDisplay:this.aiDisplay.length}, fnDisplayEnd:function(){var t = this._iDisplayLength, e = this._iDisplayStart, n = e + t, a = this.aiDisplay.length, r = this.oFeatures, o = r.bPaginate; return r.bServerSide?o === !1 || - 1 === t?e + a:Math.min(e + t, this._iRecordsDisplay):!o || n > a || - 1 === t?a:n}, oInstance:null, sInstance:null, iTabIndex:0, nScrollHead:null, nScrollFoot:null, aLastSort:[], oPlugins:{}, rowIdFn:null, rowId:null}, qt.ext = Gt = {buttons:{}, classes:{}, errMode:"alert", feature:[], search:[], selector:{cell:[], column:[], row:[]}, internal:{}, legacy:{ajax:null}, pager:{}, renderer:{pageButton:{}, header:{}}, order:{}, type:{detect:[], search:{}, order:{}}, _unique:0, fnVersionCheck:qt.fnVersionCheck, iApiIndex:0, oJUIClasses:{}, sVersion:qt.version}, a.extend(Gt, {afnFiltering:Gt.search, aTypes:Gt.type.detect, ofnSearch:Gt.type.search, oSort:Gt.type.order, afnSortData:Gt.order, aoFeatures:Gt.feature, oApi:Gt.internal, oStdClasses:Gt.classes, oPagination:Gt.pager}), a.extend(qt.ext.classes, {sTable:"dataTable", sNoFooter:"no-footer", sPageButton:"paginate_button", sPageButtonActive:"current", sPageButtonDisabled:"disabled", sStripeOdd:"odd", sStripeEven:"even", sRowEmpty:"dataTables_empty", sWrapper:"dataTables_wrapper", sFilter:"dataTables_filter", sInfo:"dataTables_info", sPaging:"dataTables_paginate paging_", sLength:"dataTables_length", sProcessing:"dataTables_processing", sSortAsc:"sorting_asc", sSortDesc:"sorting_desc", sSortable:"sorting", sSortableAsc:"sorting_asc_disabled", sSortableDesc:"sorting_desc_disabled", sSortableNone:"sorting_disabled", sSortColumn:"sorting_", sFilterInput:"", sLengthSelect:"", sScrollWrapper:"dataTables_scroll", sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner", sScrollBody:"dataTables_scrollBody", sScrollFoot:"dataTables_scrollFoot", sScrollFootInner:"dataTables_scrollFootInner", sHeaderTH:"", sFooterTH:"", sSortJUIAsc:"", sSortJUIDesc:"", sSortJUI:"", sSortJUIAscAllowed:"", sSortJUIDescAllowed:"", sSortJUIWrapper:"", sSortIcon:"", sJUIHeader:"", sJUIFooter:""}), function(){var t = ""; t = ""; var e = t + "ui-state-default", n = t + "css_right ui-icon ui-icon-", r = t + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; a.extend(qt.ext.oJUIClasses, qt.ext.classes, {sPageButton:"fg-button ui-button " + e, sPageButtonActive:"ui-state-disabled", sPageButtonDisabled:"ui-state-disabled", sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc:e + " sorting_asc", sSortDesc:e + " sorting_desc", sSortable:e + " sorting", sSortableAsc:e + " sorting_asc_disabled", sSortableDesc:e + " sorting_desc_disabled", sSortableNone:e + " sorting_disabled", sSortJUIAsc:n + "triangle-1-n", sSortJUIDesc:n + "triangle-1-s", sSortJUI:n + "carat-2-n-s", sSortJUIAscAllowed:n + "carat-1-n", sSortJUIDescAllowed:n + "carat-1-s", sSortJUIWrapper:"DataTables_sort_wrapper", sSortIcon:"DataTables_sort_icon", sScrollHead:"dataTables_scrollHead " + e, sScrollFoot:"dataTables_scrollFoot " + e, sHeaderTH:e, sFooterTH:e, sJUIHeader:r + " ui-corner-tl ui-corner-tr", sJUIFooter:r + " ui-corner-bl ui-corner-br"})}(); var Xe = qt.ext.pager; a.extend(Xe, {simple:function(t, e){return["previous", "next"]}, full:function(t, e){return["first", "previous", "next", "last"]}, numbers:function(t, e){return[Jt(t, e)]}, simple_numbers:function(t, e){return["previous", Jt(t, e), "next"]}, full_numbers:function(t, e){return["first", "previous", Jt(t, e), "next", "last"]}, _numbers:Jt, numbers_length:7}), a.extend(!0, qt.ext.renderer, {pageButton:{_:function(t, n, r, o, i, s){var l, u, c, f = t.oClasses, d = t.oLanguage.oPaginate, h = 0, p = function(e, n){var o, c, g, b, v = function(e){dt(t, e.data.action, !0)}; for (o = 0, c = n.length; c > o; o++)if (b = n[o], a.isArray(b)){var S = a("<" + (b.DT_el || "div") + "/>").appendTo(e); p(S, b)} else{switch (l = null, u = "", b){case"ellipsis":e.append('<span class="ellipsis">…</span>'); break; case"first":l = d.sFirst, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"previous":l = d.sPrevious, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"next":l = d.sNext, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; case"last":l = d.sLast, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; default:l = b + 1, u = i === b?f.sPageButtonActive:""}null !== l && (g = a("<a>", {"class":f.sPageButton + " " + u, "aria-controls":t.sTableId, "data-dt-idx":h, tabindex:t.iTabIndex, id:0 === r && "string" == typeof b?t.sTableId + "_" + b:null}).html(l).appendTo(e), Ot(g, {action:b}, v), h++)}}; try{c = a(n).find(e.activeElement).data("dt-idx")} catch (g){}p(a(n).empty(), o), c && a(n).find("[data-dt-idx=" + c + "]").focus()}}}), a.extend(qt.ext.type.detect, [function(t, e){var n = e.oLanguage.sDecimal; return se(t, n)?"num" + n:null}, function(t, e){if (t && !(t instanceof Date) && (!te.test(t) || !ee.test(t)))return null; var n = Date.parse(t); return null !== n && !isNaN(n) || re(t)?"date":null}, function(t, e){var n = e.oLanguage.sDecimal; return se(t, n, !0)?"num-fmt" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n)?"html-num" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n, !0)?"html-num-fmt" + n:null}, function(t, e){return re(t) || "string" == typeof t && - 1 !== t.indexOf("<")?"html":null}]), a.extend(qt.ext.type.search, {html:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " ").replace(Kt, ""):""}, string:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " "):t}}); var Ve = function(t, e, n, a){return 0 === t || t && "-" !== t?(e && (t = ie(t, e)), t.replace && (n && (t = t.replace(n, "")), a && (t = t.replace(a, ""))), 1 * t): - (1 / 0)}; return a.extend(Gt.type.order, {"date-pre":function(t){return Date.parse(t) || 0}, "html-pre":function(t){return re(t)?"":t.replace?t.replace(/<.*?>/g, "").toLowerCase():t + ""}, "string-pre":function(t){return re(t)?"":"string" == typeof t?t.toLowerCase():t.toString?t.toString():""}, "string-asc":function(t, e){return e > t? - 1:t > e?1:0}, "string-desc":function(t, e){return e > t?1:t > e? - 1:0}}), Xt(""), a.extend(!0, qt.ext.renderer, {header:{_:function(t, e, n, r){a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(n.sSortingClass + " " + r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass)}})}, jqueryui:function(t, e, n, r){a("<div/>").addClass(r.sSortJUIWrapper).append(e.contents()).append(a("<span/>").addClass(r.sSortIcon + " " + n.sSortingClassJUI)).appendTo(e), a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass), e.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[l]?r.sSortJUIAsc:"desc" == s[l]?r.sSortJUIDesc:n.sSortingClassJUI)}})}}}), qt.render = {number:function(t, e, n, a, r){return{display:function(o){if ("number" != typeof o && "string" != typeof o)return o; var i = 0 > o?"-":""; o = Math.abs(parseFloat(o)); var s = parseInt(o, 10), l = n?e + (o - s).toFixed(n).substring(2):""; return i + (a || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, t) + l + (r || "")}}}}, a.extend(qt.ext.internal, {_fnExternApiFunc:Vt, _fnBuildAjax:J, _fnAjaxUpdate:X, _fnAjaxParameters:V, _fnAjaxUpdateDraw:q, _fnAjaxDataSrc:G, _fnAddColumn:f, _fnColumnOptions:d, _fnAdjustColumnSizing:h, _fnVisibleToColumnIndex:p, _fnColumnIndexToVisible:g, _fnVisbleColumns:b, _fnGetColumns:v, _fnColumnTypes:S, _fnApplyColumnDefs:m, _fnHungarianMap:r, _fnCamelToHungarian:o, _fnLanguageCompat:i, _fnBrowserDetect:u, _fnAddData:D, _fnAddTr:y, _fnNodeToDataIndex:_, _fnNodeToColumnIndex:T, _fnGetCellData:w, _fnSetCellData:C, _fnSplitObjNotation:x, _fnGetObjectDataFn:I, _fnSetObjectDataFn:A, _fnGetDataMaster:F, _fnClearTable:L, _fnDeleteIndex:P, _fnInvalidate:R, _fnGetRowElements:j, _fnCreateTr:H, _fnBuildHead:k, _fnDrawHead:O, _fnDraw:M, _fnReDraw:W, _fnAddOptionsHtml:U, _fnDetectHeader:E, _fnGetUniqueThs:B, _fnFeatureHtmlFilter:$, _fnFilterComplete:z, _fnFilterCustom:Y, _fnFilterColumn:Q, _fnFilter:Z, _fnFilterCreateSearch:K, _fnEscapeRegex:tt, _fnFilterData:et, _fnFeatureHtmlInfo:rt, _fnUpdateInfo:ot, _fnInfoMacros:it, _fnInitialise:st, _fnInitComplete:lt, _fnLengthChange:ut, _fnFeatureHtmlLength:ct, _fnFeatureHtmlPaginate:ft, _fnPageChange:dt, _fnFeatureHtmlProcessing:ht, _fnProcessingDisplay:pt, _fnFeatureHtmlTable:gt, _fnScrollDraw:bt, _fnApplyToChildren:vt, _fnCalculateColumnWidths:St, _fnThrottle:mt, _fnConvertToWidth:Dt, _fnGetWidestNode:yt, _fnGetMaxLenString:_t, _fnStringToCss:Tt, _fnSortFlatten:wt, _fnSort:Ct, _fnSortAria:xt, _fnSortListener:It, _fnSortAttachListener:At, _fnSortingClasses:Ft, _fnSortData:Lt, _fnSaveState:Pt, _fnLoadState:Rt, _fnSettingsFromNode:jt, _fnLog:Ht, _fnMap:Nt, _fnBindAction:Ot, _fnCallbackReg:Mt, _fnCallbackFire:Wt, _fnLengthOverflow:Ut, _fnRenderer:Et, _fnDataSource:Bt, _fnRowAttributes:N, _fnCalculateEnd:function(){}}), a.fn.dataTable = qt, a.fn.dataTableSettings = qt.settings, a.fn.dataTableExt = qt.ext, a.fn.DataTable = function(t){return a(this).dataTable(t).api()}, a.each(qt, function(t, e){a.fn.DataTable[t] = e}), a.fn.dataTable})}(window, document), function(t, e, n){var a = function(t, n){"use strict"; t.extend(!0, n.defaults, {dom:"<'row'<'col-sm-5'><'col-sm-4'f><'col-sm-3'l>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>", renderer:"bootstrap"}), t.extend(n.ext.classes, {sWrapper:"dataTables_wrapper form-inline dt-bootstrap", sFilterInput:"form-control input-sm", sLengthSelect:"form-control input-sm"}), n.ext.renderer.pageButton.bootstrap = function(a, r, o, i, s, l){var u, c, f, d = new n.Api(a), h = a.oClasses, p = a.oLanguage.oPaginate, g = 0, b = function(e, n){var r, i, f, v, S = function(e){e.preventDefault(), t(e.currentTarget).hasClass("disabled") || d.page(e.data.action).draw("page")}; for (r = 0, i = n.length; i > r; r++)if (v = n[r], t.isArray(v))b(e, v); else{switch (u = "", c = "", v){case"ellipsis":u = "…", c = "disabled"; break; case"first":u = p.sFirst, c = v + (s > 0?"":" disabled"); break; case"previous":u = p.sPrevious, c = v + (s > 0?"":" disabled"); break; case"next":u = p.sNext, c = v + (l - 1 > s?"":" disabled"); break; case"last":u = p.sLast, c = v + (l - 1 > s?"":" disabled"); break; default:u = v + 1, c = s === v?"active":""}u && (f = t("<li>", {"class":h.sPageButton + " " + c, id:0 === o && "string" == typeof v?a.sTableId + "_" + v:null}).append(t("<a>", {href:"#", "aria-controls":a.sTableId, "data-dt-idx":g, tabindex:a.iTabIndex}).html(u)).appendTo(e), a.oApi._fnBindAction(f, {action:v}, S), g++)}}; try{f = t(r).find(e.activeElement).data("dt-idx")} catch (v){}b(t(r).empty().html('<ul class="pagination"/>').children("ul"), i), f && t(r).find("[data-dt-idx=" + f + "]").focus()}, n.TableTools && (t.extend(!0, n.TableTools.classes, {container:"DTTT btn-group", buttons:{normal:"btn btn-default", disabled:"disabled"}, collection:{container:"DTTT_dropdown dropdown-menu", buttons:{normal:"", disabled:"disabled"}}, print:{info:"DTTT_print_info"}, select:{row:"active"}}), t.extend(!0, n.TableTools.DEFAULTS.oTags, {collection:{container:"ul", button:"li", liner:"a"}}))}; "function" == typeof define && define.amd?define(["jquery", "datatables"], a):"object" == typeof exports?a(require("jquery"), require("datatables")):jQuery && a(jQuery, jQuery.fn.dataTable)}(window, document);
|
1 |
!function(t, e, n){!function(t){"use strict"; "function" == typeof define && define.amd?define("datatables", ["jquery"], t):"object" == typeof exports?module.exports = t(require("jquery")):jQuery && !jQuery.fn.dataTable && t(jQuery)}(function(a){"use strict"; function r(t){var e, n, o = "a aa ai ao as b fn i m o s ", i = {}; a.each(t, function(a, s){e = a.match(/^([^A-Z]+?)([A-Z])/), e && - 1 !== o.indexOf(e[1] + " ") && (n = a.replace(e[0], e[2].toLowerCase()), i[n] = a, "o" === e[1] && r(t[a]))}), t._hungarianMap = i}function o(t, e, i){t._hungarianMap || r(t); var s; a.each(e, function(r, l){s = t._hungarianMap[r], s === n || !i && e[s] !== n || ("o" === s.charAt(0)?(e[s] || (e[s] = {}), a.extend(!0, e[s], e[r]), o(t[s], e[s], i)):e[s] = e[r])})}function i(t){var e = qt.defaults.oLanguage, n = t.sZeroRecords; !t.sEmptyTable && n && "No data available in table" === e.sEmptyTable && Nt(t, t, "sZeroRecords", "sEmptyTable"), !t.sLoadingRecords && n && "Loading..." === e.sLoadingRecords && Nt(t, t, "sZeroRecords", "sLoadingRecords"), t.sInfoThousands && (t.sThousands = t.sInfoThousands); var a = t.sDecimal; a && Xt(a)}function s(t){be(t, "ordering", "bSort"), be(t, "orderMulti", "bSortMulti"), be(t, "orderClasses", "bSortClasses"), be(t, "orderCellsTop", "bSortCellsTop"), be(t, "order", "aaSorting"), be(t, "orderFixed", "aaSortingFixed"), be(t, "paging", "bPaginate"), be(t, "pagingType", "sPaginationType"), be(t, "pageLength", "iDisplayLength"), be(t, "searching", "bFilter"), "boolean" == typeof t.sScrollX && (t.sScrollX = t.sScrollX?"100%":""); var e = t.aoSearchCols; if (e)for (var n = 0, a = e.length; a > n; n++)e[n] && o(qt.models.oSearch, e[n])}function l(t){be(t, "orderable", "bSortable"), be(t, "orderData", "aDataSort"), be(t, "orderSequence", "asSorting"), be(t, "orderDataType", "sortDataType"); var e = t.aDataSort; e && !a.isArray(e) && (t.aDataSort = [e])}function u(t){if (!qt.__browser){var e = {}; qt.__browser = e; var n = a("<div/>").css({position:"fixed", top:0, left:0, height:1, width:1, overflow:"hidden"}).append(a("<div/>").css({position:"absolute", top:1, left:1, width:100, overflow:"scroll"}).append(a("<div/>").css({width:"100%", height:10}))).appendTo("body"), r = n.children(), o = r.children(); e.barWidth = r[0].offsetWidth - r[0].clientWidth, e.bScrollOversize = 100 === o[0].offsetWidth && 100 !== r[0].clientWidth, e.bScrollbarLeft = 1 !== Math.round(o.offset().left), e.bBounding = n[0].getBoundingClientRect().width?!0:!1, n.remove()}a.extend(t.oBrowser, qt.__browser), t.oScroll.iBarWidth = qt.__browser.barWidth}function c(t, e, a, r, o, i){var s, l = r, u = !1; for (a !== n && (s = a, u = !0); l !== o; )t.hasOwnProperty(l) && (s = u?e(s, t[l], l, t):t[l], u = !0, l += i); return s}function f(t, n){var r = qt.defaults.column, o = t.aoColumns.length, i = a.extend({}, qt.models.oColumn, r, {nTh:n?n:e.createElement("th"), sTitle:r.sTitle?r.sTitle:n?n.innerHTML:"", aDataSort:r.aDataSort?r.aDataSort:[o], mData:r.mData?r.mData:o, idx:o}); t.aoColumns.push(i); var s = t.aoPreSearchCols; s[o] = a.extend({}, qt.models.oSearch, s[o]), d(t, o, a(n).data())}function d(t, e, r){var i = t.aoColumns[e], s = t.oClasses, u = a(i.nTh); if (!i.sWidthOrig){i.sWidthOrig = u.attr("width") || null; var c = (u.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/); c && (i.sWidthOrig = c[1])}r !== n && null !== r && (l(r), o(qt.defaults.column, r), r.mDataProp === n || r.mData || (r.mData = r.mDataProp), r.sType && (i._sManualType = r.sType), r.className && !r.sClass && (r.sClass = r.className), a.extend(i, r), Nt(i, r, "sWidth", "sWidthOrig"), r.iDataSort !== n && (i.aDataSort = [r.iDataSort]), Nt(i, r, "aDataSort")); var f = i.mData, d = I(f), h = i.mRender?I(i.mRender):null, p = function(t){return"string" == typeof t && - 1 !== t.indexOf("@")}; i._bAttrSrc = a.isPlainObject(f) && (p(f.sort) || p(f.type) || p(f.filter)), i.fnGetData = function(t, e, a){var r = d(t, e, n, a); return h && e?h(r, e, t, a):r}, i.fnSetData = function(t, e, n){return A(f)(t, e, n)}, "number" != typeof f && (t._rowReadObject = !0), t.oFeatures.bSort || (i.bSortable = !1, u.addClass(s.sSortableNone)); var g = - 1 !== a.inArray("asc", i.asSorting), b = - 1 !== a.inArray("desc", i.asSorting); i.bSortable && (g || b)?g && !b?(i.sSortingClass = s.sSortableAsc, i.sSortingClassJUI = s.sSortJUIAscAllowed):!g && b?(i.sSortingClass = s.sSortableDesc, i.sSortingClassJUI = s.sSortJUIDescAllowed):(i.sSortingClass = s.sSortable, i.sSortingClassJUI = s.sSortJUI):(i.sSortingClass = s.sSortableNone, i.sSortingClassJUI = "")}function h(t){if (t.oFeatures.bAutoWidth !== !1){var e = t.aoColumns; St(t); for (var n = 0, a = e.length; a > n; n++)e[n].nTh.style.width = e[n].sWidth}var r = t.oScroll; ("" !== r.sY || "" !== r.sX) && bt(t), Wt(t, null, "column-sizing", [t])}function p(t, e){var n = v(t, "bVisible"); return"number" == typeof n[e]?n[e]:null}function g(t, e){var n = v(t, "bVisible"), r = a.inArray(e, n); return - 1 !== r?r:null}function b(t){return v(t, "bVisible").length}function v(t, e){var n = []; return a.map(t.aoColumns, function(t, a){t[e] && n.push(a)}), n}function S(t){var e, a, r, o, i, s, l, u, c, f = t.aoColumns, d = t.aoData, h = qt.ext.type.detect; for (e = 0, a = f.length; a > e; e++)if (l = f[e], c = [], !l.sType && l._sManualType)l.sType = l._sManualType; else if (!l.sType){for (r = 0, o = h.length; o > r; r++){for (i = 0, s = d.length; s > i && (c[i] === n && (c[i] = w(t, i, e, "type")), u = h[r](c[i], t), u || r === h.length - 1) && "html" !== u; i++); if (u){l.sType = u; break}}l.sType || (l.sType = "string")}}function m(t, e, r, o){var i, s, l, u, c, d, h, p = t.aoColumns; if (e)for (i = e.length - 1; i >= 0; i--){h = e[i]; var g = h.targets !== n?h.targets:h.aTargets; for (a.isArray(g) || (g = [g]), l = 0, u = g.length; u > l; l++)if ("number" == typeof g[l] && g[l] >= 0){for (; p.length <= g[l]; )f(t); o(g[l], h)} else if ("number" == typeof g[l] && g[l] < 0)o(p.length + g[l], h); else if ("string" == typeof g[l])for (c = 0, d = p.length; d > c; c++)("_all" == g[l] || a(p[c].nTh).hasClass(g[l])) && o(c, h)}if (r)for (i = 0, s = r.length; s > i; i++)o(i, r[i])}function D(t, e, r, o){var i = t.aoData.length, s = a.extend(!0, {}, qt.models.oRow, {src:r?"dom":"data", idx:i}); s._aData = e, t.aoData.push(s); for (var l = t.aoColumns, u = 0, c = l.length; c > u; u++)l[u].sType = null; t.aiDisplayMaster.push(i); var f = t.rowIdFn(e); return f !== n && (t.aIds[f] = s), (r || !t.oFeatures.bDeferRender) && H(t, i, r, o), i}function y(t, e){var n; return e instanceof a || (e = a(e)), e.map(function(e, a){return n = j(t, a), D(t, n.data, a, n.cells)})}function _(t, e){return e._DT_RowIndex !== n?e._DT_RowIndex:null}function T(t, e, n){return a.inArray(n, t.aoData[e].anCells)}function w(t, e, a, r){var o = t.iDraw, i = t.aoColumns[a], s = t.aoData[e]._aData, l = i.sDefaultContent, u = i.fnGetData(s, r, {settings:t, row:e, col:a}); if (u === n)return t.iDrawError != o && null === l && (Ht(t, 0, "Requested unknown parameter " + ("function" == typeof i.mData?"{function}":"'" + i.mData + "'") + " for row " + e, 4), t.iDrawError = o), l; if (u !== s && null !== u || null === l){if ("function" == typeof u)return u.call(s)} else u = l; return null === u && "display" == r?"":u}function C(t, e, n, a){var r = t.aoColumns[n], o = t.aoData[e]._aData; r.fnSetData(o, a, {settings:t, row:e, col:n})}function x(t){return a.map(t.match(/(\\.|[^\.])+/g) || [""], function(t){return t.replace(/\\./g, ".")})}function I(t){if (a.isPlainObject(t)){var e = {}; return a.each(t, function(t, n){n && (e[t] = I(n))}), function(t, a, r, o){var i = e[a] || e._; return i !== n?i(t, a, r, o):t}}if (null === t)return function(t){return t}; if ("function" == typeof t)return function(e, n, a, r){return t(e, n, a, r)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){return e[t]}; var r = function(t, e, o){var i, s, l, u; if ("" !== o)for (var c = x(o), f = 0, d = c.length; d > f; f++){if (i = c[f].match(ve), s = c[f].match(Se), i){if (c[f] = c[f].replace(ve, ""), "" !== c[f] && (t = t[c[f]]), l = [], c.splice(0, f + 1), u = c.join("."), a.isArray(t))for (var h = 0, p = t.length; p > h; h++)l.push(r(t[h], e, u)); var g = i[0].substring(1, i[0].length - 1); t = "" === g?l:l.join(g); break}if (s)c[f] = c[f].replace(Se, ""), t = t[c[f]](); else{if (null === t || t[c[f]] === n)return n; t = t[c[f]]}}return t}; return function(e, n){return r(e, n, t)}}function A(t){if (a.isPlainObject(t))return A(t._); if (null === t)return function(){}; if ("function" == typeof t)return function(e, n, a){t(e, "set", n, a)}; if ("string" != typeof t || - 1 === t.indexOf(".") && - 1 === t.indexOf("[") && - 1 === t.indexOf("("))return function(e, n){e[t] = n}; var e = function(t, r, o){for (var i, s, l, u, c, f = x(o), d = f[f.length - 1], h = 0, p = f.length - 1; p > h; h++){if (s = f[h].match(ve), l = f[h].match(Se), s){if (f[h] = f[h].replace(ve, ""), t[f[h]] = [], i = f.slice(), i.splice(0, h + 1), c = i.join("."), a.isArray(r))for (var g = 0, b = r.length; b > g; g++)u = {}, e(u, r[g], c), t[f[h]].push(u); else t[f[h]] = r; return}l && (f[h] = f[h].replace(Se, ""), t = t[f[h]](r)), (null === t[f[h]] || t[f[h]] === n) && (t[f[h]] = {}), t = t[f[h]]}d.match(Se)?t = t[d.replace(Se, "")](r):t[d.replace(ve, "")] = r}; return function(n, a){return e(n, a, t)}}function F(t){return ce(t.aoData, "_aData")}function L(t){t.aoData.length = 0, t.aiDisplayMaster.length = 0, t.aiDisplay.length = 0, t.aIds = {}}function P(t, e, a){for (var r = - 1, o = 0, i = t.length; i > o; o++)t[o] == e?r = o:t[o] > e && t[o]--; - 1 != r && a === n && t.splice(r, 1)}function R(t, e, a, r){var o, i, s = t.aoData[e], l = function(n, a){for (; n.childNodes.length; )n.removeChild(n.firstChild); n.innerHTML = w(t, e, a, "display")}; if ("dom" !== a && (a && "auto" !== a || "dom" !== s.src)){var u = s.anCells; if (u)if (r !== n)l(u[r], r); else for (o = 0, i = u.length; i > o; o++)l(u[o], o)} else s._aData = j(t, s, r, r === n?n:s._aData).data; s._aSortData = null, s._aFilterData = null; var c = t.aoColumns; if (r !== n)c[r].sType = null; else{for (o = 0, i = c.length; i > o; o++)c[o].sType = null; N(t, s)}}function j(t, e, r, o){var i, s, l, u = [], c = e.firstChild, f = 0, d = t.aoColumns, h = t._rowReadObject; o = o !== n?o:h?{}:[]; var p = function(t, e){if ("string" == typeof t){var n = t.indexOf("@"); if ( - 1 !== n){var a = t.substring(n + 1), r = A(t); r(o, e.getAttribute(a))}}}, g = function(t){if (r === n || r === f)if (s = d[f], l = a.trim(t.innerHTML), s && s._bAttrSrc){var e = A(s.mData._); e(o, l), p(s.mData.sort, t), p(s.mData.type, t), p(s.mData.filter, t)} else h?(s._setter || (s._setter = A(s.mData)), s._setter(o, l)):o[f] = l; f++}; if (c)for (; c; )i = c.nodeName.toUpperCase(), ("TD" == i || "TH" == i) && (g(c), u.push(c)), c = c.nextSibling; else{u = e.anCells; for (var b = 0, v = u.length; v > b; b++)g(u[b])}var S = c?e:e.nTr; if (S){var m = S.getAttribute("id"); m && A(t.rowId)(o, m)}return{data:o, cells:u}}function H(t, n, a, r){var o, i, s, l, u, c = t.aoData[n], f = c._aData, d = []; if (null === c.nTr){for (o = a || e.createElement("tr"), c.nTr = o, c.anCells = d, o._DT_RowIndex = n, N(t, c), l = 0, u = t.aoColumns.length; u > l; l++)s = t.aoColumns[l], i = a?r[l]:e.createElement(s.sCellType), d.push(i), (!a || s.mRender || s.mData !== l) && (i.innerHTML = w(t, n, l, "display")), s.sClass && (i.className += " " + s.sClass), s.bVisible && !a?o.appendChild(i):!s.bVisible && a && i.parentNode.removeChild(i), s.fnCreatedCell && s.fnCreatedCell.call(t.oInstance, i, w(t, n, l), f, n, l); Wt(t, "aoRowCreatedCallback", null, [o, f, n])}c.nTr.setAttribute("role", "row")}function N(t, e){var n = e.nTr, r = e._aData; if (n){var o = t.rowIdFn(r); if (o && (n.id = o), r.DT_RowClass){var i = r.DT_RowClass.split(" "); e.__rowc = e.__rowc?ge(e.__rowc.concat(i)):i, a(n).removeClass(e.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr && a(n).attr(r.DT_RowAttr), r.DT_RowData && a(n).data(r.DT_RowData)}}function k(t){var e, n, r, o, i, s = t.nTHead, l = t.nTFoot, u = 0 === a("th, td", s).length, c = t.oClasses, f = t.aoColumns; for (u && (o = a("<tr/>").appendTo(s)), e = 0, n = f.length; n > e; e++)i = f[e], r = a(i.nTh).addClass(i.sClass), u && r.appendTo(o), t.oFeatures.bSort && (r.addClass(i.sSortingClass), i.bSortable !== !1 && (r.attr("tabindex", t.iTabIndex).attr("aria-controls", t.sTableId), At(t, i.nTh, e))), i.sTitle != r[0].innerHTML && r.html(i.sTitle), Et(t, "header")(t, r, i, c); if (u && E(t.aoHeader, s), a(s).find(">tr").attr("role", "row"), a(s).find(">tr>th, >tr>td").addClass(c.sHeaderTH), a(l).find(">tr>th, >tr>td").addClass(c.sFooterTH), null !== l){var d = t.aoFooter[0]; for (e = 0, n = d.length; n > e; e++)i = f[e], i.nTf = d[e].cell, i.sClass && a(i.nTf).addClass(i.sClass)}}function O(t, e, r){var o, i, s, l, u, c, f, d, h, p = [], g = [], b = t.aoColumns.length; if (e){for (r === n && (r = !1), o = 0, i = e.length; i > o; o++){for (p[o] = e[o].slice(), p[o].nTr = e[o].nTr, s = b - 1; s >= 0; s--)t.aoColumns[s].bVisible || r || p[o].splice(s, 1); g.push([])}for (o = 0, i = p.length; i > o; o++){if (f = p[o].nTr)for (; c = f.firstChild; )f.removeChild(c); for (s = 0, l = p[o].length; l > s; s++)if (d = 1, h = 1, g[o][s] === n){for (f.appendChild(p[o][s].cell), g[o][s] = 1; p[o + d] !== n && p[o][s].cell == p[o + d][s].cell; )g[o + d][s] = 1, d++; for (; p[o][s + h] !== n && p[o][s].cell == p[o][s + h].cell; ){for (u = 0; d > u; u++)g[o + u][s + h] = 1; h++}a(p[o][s].cell).attr("rowspan", d).attr("colspan", h)}}}}function M(t){var e = Wt(t, "aoPreDrawCallback", "preDraw", [t]); if ( - 1 !== a.inArray(!1, e))return void pt(t, !1); var r = [], o = 0, i = t.asStripeClasses, s = i.length, l = (t.aoOpenRows.length, t.oLanguage), u = t.iInitDisplayStart, c = "ssp" == Bt(t), f = t.aiDisplay; t.bDrawing = !0, u !== n && - 1 !== u && (t._iDisplayStart = c?u:u >= t.fnRecordsDisplay()?0:u, t.iInitDisplayStart = - 1); var d = t._iDisplayStart, h = t.fnDisplayEnd(); if (t.bDeferLoading)t.bDeferLoading = !1, t.iDraw++, pt(t, !1); else if (c){if (!t.bDestroying && !X(t))return} else t.iDraw++; if (0 !== f.length)for (var p = c?0:d, g = c?t.aoData.length:h, v = p; g > v; v++){var S = f[v], m = t.aoData[S]; null === m.nTr && H(t, S); var D = m.nTr; if (0 !== s){var y = i[o % s]; m._sRowStripe != y && (a(D).removeClass(m._sRowStripe).addClass(y), m._sRowStripe = y)}Wt(t, "aoRowCallback", null, [D, m._aData, o, v]), r.push(D), o++} else{var _ = l.sZeroRecords; 1 == t.iDraw && "ajax" == Bt(t)?_ = l.sLoadingRecords:l.sEmptyTable && 0 === t.fnRecordsTotal() && (_ = l.sEmptyTable), r[0] = a("<tr/>", {"class":s?i[0]:""}).append(a("<td />", {valign:"top", colSpan:b(t), "class":t.oClasses.sRowEmpty}).html(_))[0]}Wt(t, "aoHeaderCallback", "header", [a(t.nTHead).children("tr")[0], F(t), d, h, f]), Wt(t, "aoFooterCallback", "footer", [a(t.nTFoot).children("tr")[0], F(t), d, h, f]); var T = a(t.nTBody); T.children().detach(), T.append(a(r)), Wt(t, "aoDrawCallback", "draw", [t]), t.bSorted = !1, t.bFiltered = !1, t.bDrawing = !1}function W(t, e){var n = t.oFeatures, a = n.bSort, r = n.bFilter; a && Ct(t), r?z(t, t.oPreviousSearch):t.aiDisplay = t.aiDisplayMaster.slice(), e !== !0 && (t._iDisplayStart = 0), t._drawHold = e, M(t), t._drawHold = !1}function U(t){var e = t.oClasses, n = a(t.nTable), r = a("<div/>").insertBefore(n), o = t.oFeatures, i = a("<div/>", {id:t.sTableId + "_wrapper", "class":e.sWrapper + (t.nTFoot?"":" " + e.sNoFooter)}); t.nHolding = r[0], t.nTableWrapper = i[0], t.nTableReinsertBefore = t.nTable.nextSibling; for (var s, l, u, c, f, d, h = t.sDom.split(""), p = 0; p < h.length; p++){if (s = null, l = h[p], "<" == l){if (u = a("<div/>")[0], c = h[p + 1], "'" == c || '"' == c){for (f = "", d = 2; h[p + d] != c; )f += h[p + d], d++; if ("H" == f?f = e.sJUIHeader:"F" == f && (f = e.sJUIFooter), - 1 != f.indexOf(".")){var g = f.split("."); u.id = g[0].substr(1, g[0].length - 1), u.className = g[1]} else"#" == f.charAt(0)?u.id = f.substr(1, f.length - 1):u.className = f; p += d}i.append(u), i = a(u)} else if (">" == l)i = i.parent(); else if ("l" == l && o.bPaginate && o.bLengthChange)s = ct(t); else if ("f" == l && o.bFilter)s = $(t); else if ("r" == l && o.bProcessing)s = ht(t); else if ("t" == l)s = gt(t); else if ("i" == l && o.bInfo)s = rt(t); else if ("p" == l && o.bPaginate)s = ft(t); else if (0 !== qt.ext.feature.length)for (var b = qt.ext.feature, v = 0, S = b.length; S > v; v++)if (l == b[v].cFeature){s = b[v].fnInit(t); break}if (s){var m = t.aanFeatures; m[l] || (m[l] = []), m[l].push(s), i.append(s)}}r.replaceWith(i), t.nHolding = null}function E(t, e){var n, r, o, i, s, l, u, c, f, d, h, p = a(e).children("tr"), g = function(t, e, n){for (var a = t[e]; a[n]; )n++; return n}; for (t.splice(0, t.length), o = 0, l = p.length; l > o; o++)t.push([]); for (o = 0, l = p.length; l > o; o++)for (n = p[o], c = 0, r = n.firstChild; r; ){if ("TD" == r.nodeName.toUpperCase() || "TH" == r.nodeName.toUpperCase())for (f = 1 * r.getAttribute("colspan"), d = 1 * r.getAttribute("rowspan"), f = f && 0 !== f && 1 !== f?f:1, d = d && 0 !== d && 1 !== d?d:1, u = g(t, o, c), h = 1 === f?!0:!1, s = 0; f > s; s++)for (i = 0; d > i; i++)t[o + i][u + s] = {cell:r, unique:h}, t[o + i].nTr = n; r = r.nextSibling}}function B(t, e, n){var a = []; n || (n = t.aoHeader, e && (n = [], E(n, e))); for (var r = 0, o = n.length; o > r; r++)for (var i = 0, s = n[r].length; s > i; i++)!n[r][i].unique || a[i] && t.bSortCellsTop || (a[i] = n[r][i].cell); return a}function J(t, e, n){if (Wt(t, "aoServerParams", "serverParams", [e]), e && a.isArray(e)){var r = {}, o = /(.*?)\[\]$/; a.each(e, function(t, e){var n = e.name.match(o); if (n){var a = n[0]; r[a] || (r[a] = []), r[a].push(e.value)} else r[e.name] = e.value}), e = r}var i, s = t.ajax, l = t.oInstance, u = function(e){Wt(t, null, "xhr", [t, e, t.jqXHR]), n(e)}; if (a.isPlainObject(s) && s.data){i = s.data; var c = a.isFunction(i)?i(e, t):i; e = a.isFunction(i) && c?c:a.extend(!0, e, c), delete s.data}var f = {data:e, success:function(e){var n = e.error || e.sError; n && Ht(t, 0, n), t.json = e, u(e)}, dataType:"json", cache:!1, type:t.sServerMethod, error:function(e, n, r){var o = Wt(t, null, "xhr", [t, null, t.jqXHR]); - 1 === a.inArray(!0, o) && ("parsererror" == n?Ht(t, 0, "Invalid JSON response", 1):4 === e.readyState && Ht(t, 0, "Ajax error", 7)), pt(t, !1)}}; t.oAjaxData = e, Wt(t, null, "preXhr", [t, e]), t.fnServerData?t.fnServerData.call(l, t.sAjaxSource, a.map(e, function(t, e){return{name:e, value:t}}), u, t):t.sAjaxSource || "string" == typeof s?t.jqXHR = a.ajax(a.extend(f, {url:s || t.sAjaxSource})):a.isFunction(s)?t.jqXHR = s.call(l, e, u, t):(t.jqXHR = a.ajax(a.extend(f, s)), s.data = i)}function X(t){return t.bAjaxDataGet?(t.iDraw++, pt(t, !0), J(t, V(t), function(e){q(t, e)}), !1):!0}function V(t){var e, n, r, o, i = t.aoColumns, s = i.length, l = t.oFeatures, u = t.oPreviousSearch, c = t.aoPreSearchCols, f = [], d = wt(t), h = t._iDisplayStart, p = l.bPaginate !== !1?t._iDisplayLength: - 1, g = function(t, e){f.push({name:t, value:e})}; g("sEcho", t.iDraw), g("iColumns", s), g("sColumns", ce(i, "sName").join(",")), g("iDisplayStart", h), g("iDisplayLength", p); var b = {draw:t.iDraw, columns:[], order:[], start:h, length:p, search:{value:u.sSearch, regex:u.bRegex}}; for (e = 0; s > e; e++)r = i[e], o = c[e], n = "function" == typeof r.mData?"function":r.mData, b.columns.push({data:n, name:r.sName, searchable:r.bSearchable, orderable:r.bSortable, search:{value:o.sSearch, regex:o.bRegex}}), g("mDataProp_" + e, n), l.bFilter && (g("sSearch_" + e, o.sSearch), g("bRegex_" + e, o.bRegex), g("bSearchable_" + e, r.bSearchable)), l.bSort && g("bSortable_" + e, r.bSortable); l.bFilter && (g("sSearch", u.sSearch), g("bRegex", u.bRegex)), l.bSort && (a.each(d, function(t, e){b.order.push({column:e.col, dir:e.dir}), g("iSortCol_" + t, e.col), g("sSortDir_" + t, e.dir)}), g("iSortingCols", d.length)); var v = qt.ext.legacy.ajax; return null === v?t.sAjaxSource?f:b:v?f:b}function q(t, e){var a = function(t, a){return e[t] !== n?e[t]:e[a]}, r = G(t, e), o = a("sEcho", "draw"), i = a("iTotalRecords", "recordsTotal"), s = a("iTotalDisplayRecords", "recordsFiltered"); if (o){if (1 * o < t.iDraw)return; t.iDraw = 1 * o}L(t), t._iRecordsTotal = parseInt(i, 10), t._iRecordsDisplay = parseInt(s, 10); for (var l = 0, u = r.length; u > l; l++)D(t, r[l]); t.aiDisplay = t.aiDisplayMaster.slice(), t.bAjaxDataGet = !1, M(t), t._bInitComplete || lt(t, e), t.bAjaxDataGet = !0, pt(t, !1)}function G(t, e){var r = a.isPlainObject(t.ajax) && t.ajax.dataSrc !== n?t.ajax.dataSrc:t.sAjaxDataProp; return"data" === r?e.aaData || e[r]:"" !== r?I(r)(e):e}function $(t){var n = t.oClasses, r = t.sTableId, o = t.oLanguage, i = t.oPreviousSearch, s = t.aanFeatures, l = '<input type="search" class="' + n.sFilterInput + '"/>', u = o.sSearch; u = u.match(/_INPUT_/)?u.replace("_INPUT_", l):u + l; var c = a("<div/>", {id:s.f?null:r + "_filter", "class":n.sFilter}).append(a("<label/>").append(u)), f = function(){var e = (s.f, this.value?this.value:""); e != i.sSearch && (z(t, {sSearch:e, bRegex:i.bRegex, bSmart:i.bSmart, bCaseInsensitive:i.bCaseInsensitive}), t._iDisplayStart = 0, M(t))}, d = null !== t.searchDelay?t.searchDelay:"ssp" === Bt(t)?400:0, h = a("input", c).val(i.sSearch).attr("placeholder", o.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT", d?mt(f, d):f).bind("keypress.DT", function(t){return 13 == t.keyCode?!1:void 0}).attr("aria-controls", r); return a(t.nTable).on("search.dt.DT", function(n, a){if (t === a)try{h[0] !== e.activeElement && h.val(i.sSearch)} catch (r){}}), c[0]}function z(t, e, a){var r = t.oPreviousSearch, o = t.aoPreSearchCols, i = function(t){r.sSearch = t.sSearch, r.bRegex = t.bRegex, r.bSmart = t.bSmart, r.bCaseInsensitive = t.bCaseInsensitive}, s = function(t){return t.bEscapeRegex !== n?!t.bEscapeRegex:t.bRegex}; if (S(t), "ssp" != Bt(t)){Z(t, e.sSearch, a, s(e), e.bSmart, e.bCaseInsensitive), i(e); for (var l = 0; l < o.length; l++)Q(t, o[l].sSearch, l, s(o[l]), o[l].bSmart, o[l].bCaseInsensitive); Y(t)} else i(e); t.bFiltered = !0, Wt(t, null, "search", [t])}function Y(t){for (var e, n, r = qt.ext.search, o = t.aiDisplay, i = 0, s = r.length; s > i; i++){for (var l = [], u = 0, c = o.length; c > u; u++)n = o[u], e = t.aoData[n], r[i](t, e._aFilterData, n, e._aData, u) && l.push(n); o.length = 0, a.merge(o, l)}}function Q(t, e, n, a, r, o){if ("" !== e)for (var i, s = t.aiDisplay, l = K(e, a, r, o), u = s.length - 1; u >= 0; u--)i = t.aoData[s[u]]._aFilterData[n], l.test(i) || s.splice(u, 1)}function Z(t, e, n, a, r, o){var i, s, l, u = K(e, a, r, o), c = t.oPreviousSearch.sSearch, f = t.aiDisplayMaster; if (0 !== qt.ext.search.length && (n = !0), s = et(t), e.length <= 0)t.aiDisplay = f.slice(); else for ((s || n || c.length > e.length || 0 !== e.indexOf(c) || t.bSorted) && (t.aiDisplay = f.slice()), i = t.aiDisplay, l = i.length - 1; l >= 0; l--)u.test(t.aoData[i[l]]._sFilterRow) || i.splice(l, 1)}function K(t, e, n, r){if (t = e?t:tt(t), n){var o = a.map(t.match(/"[^"]+"|[^ ]+/g) || [""], function(t){if ('"' === t.charAt(0)){var e = t.match(/^"(.*)"$/); t = e?e[1]:t}return t.replace('"', "")}); t = "^(?=.*?" + o.join(")(?=.*?") + ").*$"}return new RegExp(t, r?"i":"")}function tt(t){return t.replace(ne, "\\$1")}function et(t){var e, n, a, r, o, i, s, l, u = t.aoColumns, c = qt.ext.type.search, f = !1; for (n = 0, r = t.aoData.length; r > n; n++)if (l = t.aoData[n], !l._aFilterData){for (i = [], a = 0, o = u.length; o > a; a++)e = u[a], e.bSearchable?(s = w(t, n, a, "filter"), c[e.sType] && (s = c[e.sType](s)), null === s && (s = ""), "string" != typeof s && s.toString && (s = s.toString())):s = "", s.indexOf && - 1 !== s.indexOf("&") && (me.innerHTML = s, s = De?me.textContent:me.innerText), s.replace && (s = s.replace(/[\r\n]/g, "")), i.push(s); l._aFilterData = i, l._sFilterRow = i.join(" "), f = !0}return f}function nt(t){return{search:t.sSearch, smart:t.bSmart, regex:t.bRegex, caseInsensitive:t.bCaseInsensitive}}function at(t){return{sSearch:t.search, bSmart:t.smart, bRegex:t.regex, bCaseInsensitive:t.caseInsensitive}}function rt(t){var e = t.sTableId, n = t.aanFeatures.i, r = a("<div/>", {"class":t.oClasses.sInfo, id:n?null:e + "_info"}); return n || (t.aoDrawCallback.push({fn:ot, sName:"information"}), r.attr("role", "status").attr("aria-live", "polite"), a(t.nTable).attr("aria-describedby", e + "_info")), r[0]}function ot(t){var e = t.aanFeatures.i; if (0 !== e.length){var n = t.oLanguage, r = t._iDisplayStart + 1, o = t.fnDisplayEnd(), i = t.fnRecordsTotal(), s = t.fnRecordsDisplay(), l = s?n.sInfo:n.sInfoEmpty; s !== i && (l += " " + n.sInfoFiltered), l += n.sInfoPostFix, l = it(t, l); var u = n.fnInfoCallback; null !== u && (l = u.call(t.oInstance, t, r, o, i, s, l)), a(e).html(l)}}function it(t, e){var n = t.fnFormatNumber, a = t._iDisplayStart + 1, r = t._iDisplayLength, o = t.fnRecordsDisplay(), i = - 1 === r; return e.replace(/_START_/g, n.call(t, a)).replace(/_END_/g, n.call(t, t.fnDisplayEnd())).replace(/_MAX_/g, n.call(t, t.fnRecordsTotal())).replace(/_TOTAL_/g, n.call(t, o)).replace(/_PAGE_/g, n.call(t, i?1:Math.ceil(a / r))).replace(/_PAGES_/g, n.call(t, i?1:Math.ceil(o / r)))}function st(t){var e, n, a, r = t.iInitDisplayStart, o = t.aoColumns, i = t.oFeatures, s = t.bDeferLoading; if (!t.bInitialised)return void setTimeout(function(){st(t)}, 200); for (U(t), k(t), O(t, t.aoHeader), O(t, t.aoFooter), pt(t, !0), i.bAutoWidth && St(t), e = 0, n = o.length; n > e; e++)a = o[e], a.sWidth && (a.nTh.style.width = Tt(a.sWidth)); Wt(t, null, "preInit", [t]), W(t); var l = Bt(t); ("ssp" != l || s) && ("ajax" == l?J(t, [], function(n){var a = G(t, n); for (e = 0; e < a.length; e++)D(t, a[e]); t.iInitDisplayStart = r, W(t), pt(t, !1), lt(t, n)}, t):(pt(t, !1), lt(t)))}function lt(t, e){t._bInitComplete = !0, (e || t.oInit.aaData) && h(t), Wt(t, "aoInitComplete", "init", [t, e])}function ut(t, e){var n = parseInt(e, 10); t._iDisplayLength = n, Ut(t), Wt(t, null, "length", [t, n])}function ct(t){for (var e = t.oClasses, n = t.sTableId, r = t.aLengthMenu, o = a.isArray(r[0]), i = o?r[0]:r, s = o?r[1]:r, l = a("<select/>", {name:n + "_length", "aria-controls":n, "class":e.sLengthSelect}), u = 0, c = i.length; c > u; u++)l[0][u] = new Option(s[u], i[u]); var f = a("<div><label/></div>").addClass(e.sLength); return t.aanFeatures.l || (f[0].id = n + "_length"), f.children().append(t.oLanguage.sLengthMenu.replace("_MENU_", l[0].outerHTML)), a("select", f).val(t._iDisplayLength).bind("change.DT", function(e){ut(t, a(this).val()), M(t)}), a(t.nTable).bind("length.dt.DT", function(e, n, r){t === n && a("select", f).val(r)}), f[0]}function ft(t){var e = t.sPaginationType, n = qt.ext.pager[e], r = "function" == typeof n, o = function(t){M(t)}, i = a("<div/>").addClass(t.oClasses.sPaging + e)[0], s = t.aanFeatures; return r || n.fnInit(t, i, o), s.p || (i.id = t.sTableId + "_paginate", t.aoDrawCallback.push({fn:function(t){if (r){var e, a, i = t._iDisplayStart, l = t._iDisplayLength, u = t.fnRecordsDisplay(), c = - 1 === l, f = c?0:Math.ceil(i / l), d = c?1:Math.ceil(u / l), h = n(f, d); for (e = 0, a = s.p.length; a > e; e++)Et(t, "pageButton")(t, s.p[e], e, h, f, d)} else n.fnUpdate(t, o)}, sName:"pagination"})), i}function dt(t, e, n){var a = t._iDisplayStart, r = t._iDisplayLength, o = t.fnRecordsDisplay(); 0 === o || - 1 === r?a = 0:"number" == typeof e?(a = e * r, a > o && (a = 0)):"first" == e?a = 0:"previous" == e?(a = r >= 0?a - r:0, 0 > a && (a = 0)):"next" == e?o > a + r && (a += r):"last" == e?a = Math.floor((o - 1) / r) * r:Ht(t, 0, "Unknown paging action: " + e, 5); var i = t._iDisplayStart !== a; return t._iDisplayStart = a, i && (Wt(t, null, "page", [t]), n && M(t)), i}function ht(t){return a("<div/>", {id:t.aanFeatures.r?null:t.sTableId + "_processing", "class":t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function pt(t, e){t.oFeatures.bProcessing && a(t.aanFeatures.r).css("display", e?"block":"none"), Wt(t, null, "processing", [t, e])}function gt(t){var e = a(t.nTable); e.attr("role", "grid"); var n = t.oScroll; if ("" === n.sX && "" === n.sY)return t.nTable; var r = n.sX, o = n.sY, i = t.oClasses, s = e.children("caption"), l = s.length?s[0]._captionSide:null, u = a(e[0].cloneNode(!1)), c = a(e[0].cloneNode(!1)), f = e.children("tfoot"), d = "<div/>", h = function(t){return t?Tt(t):null}; n.sX && "100%" === e.attr("width") && e.removeAttr("width"), f.length || (f = null); var p = a(d, {"class":i.sScrollWrapper}).append(a(d, {"class":i.sScrollHead}).css({overflow:"hidden", position:"relative", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollHeadInner}).css({"box-sizing":"content-box", width:n.sXInner || "100%"}).append(u.removeAttr("id").css("margin-left", 0).append("top" === l?s:null).append(e.children("thead"))))).append(a(d, {"class":i.sScrollBody}).css({position:"relative", overflow:"auto", width:h(r)}).append(e)); f && p.append(a(d, {"class":i.sScrollFoot}).css({overflow:"hidden", border:0, width:r?h(r):"100%"}).append(a(d, {"class":i.sScrollFootInner}).append(c.removeAttr("id").css("margin-left", 0).append("bottom" === l?s:null).append(e.children("tfoot"))))); var g = p.children(), b = g[0], v = g[1], S = f?g[2]:null; return r && a(v).on("scroll.DT", function(t){var e = this.scrollLeft; b.scrollLeft = e, f && (S.scrollLeft = e)}), a(v).css(o && n.bCollapse?"max-height":"height", o), t.nScrollHead = b, t.nScrollBody = v, t.nScrollFoot = S, t.aoDrawCallback.push({fn:bt, sName:"scrolling"}), p[0]}function bt(t){var e, n, r, o, i, s, l, u, c, f = t.oScroll, d = f.sX, h = f.sXInner, g = f.sY, b = f.iBarWidth, v = a(t.nScrollHead), S = v[0].style, m = v.children("div"), D = m[0].style, y = m.children("table"), _ = t.nScrollBody, T = a(_), w = _.style, C = a(t.nScrollFoot), x = C.children("div"), I = x.children("table"), A = a(t.nTHead), F = a(t.nTable), L = F[0], P = L.style, R = t.nTFoot?a(t.nTFoot):null, j = t.oBrowser, H = j.bScrollOversize, N = [], k = [], O = [], M = function(t){var e = t.style; e.paddingTop = "0", e.paddingBottom = "0", e.borderTopWidth = "0", e.borderBottomWidth = "0", e.height = 0}; F.children("thead, tfoot").remove(), i = A.clone().prependTo(F), e = A.find("tr"), r = i.find("tr"), i.find("th, td").removeAttr("tabindex"), R && (s = R.clone().prependTo(F), n = R.find("tr"), o = s.find("tr")), d || (w.width = "100%", v[0].style.width = "100%"), a.each(B(t, i), function(e, n){l = p(t, e), n.style.width = t.aoColumns[l].sWidth}), R && vt(function(t){t.style.width = ""}, o), c = F.outerWidth(), "" === d?(P.width = "100%", H && (F.find("tbody").height() > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(F.outerWidth() - b)), c = F.outerWidth()):"" !== h && (P.width = Tt(h), c = F.outerWidth()), vt(M, r), vt(function(t){O.push(t.innerHTML), N.push(Tt(a(t).css("width")))}, r), vt(function(t, e){t.style.width = N[e]}, e), a(r).height(0), R && (vt(M, o), vt(function(t){k.push(Tt(a(t).css("width")))}, o), vt(function(t, e){t.style.width = k[e]}, n), a(o).height(0)), vt(function(t, e){t.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + O[e] + "</div>", t.style.width = N[e]}, r), R && vt(function(t, e){t.innerHTML = "", t.style.width = k[e]}, o), F.outerWidth() < c?(u = _.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")?c + b:c, H && (_.scrollHeight > _.offsetHeight || "scroll" == T.css("overflow-y")) && (P.width = Tt(u - b)), ("" === d || "" !== h) && Ht(t, 1, "Possible column misalignment", 6)):u = "100%", w.width = Tt(u), S.width = Tt(u), R && (t.nScrollFoot.style.width = Tt(u)), g || H && (w.height = Tt(L.offsetHeight + b)); var W = F.outerWidth(); y[0].style.width = Tt(W), D.width = Tt(W); var U = F.height() > _.clientHeight || "scroll" == T.css("overflow-y"), E = "padding" + (j.bScrollbarLeft?"Left":"Right"); D[E] = U?b + "px":"0px", R && (I[0].style.width = Tt(W), x[0].style.width = Tt(W), x[0].style[E] = U?b + "px":"0px"), T.scroll(), !t.bSorted && !t.bFiltered || t._drawHold || (_.scrollTop = 0)}function vt(t, e, n){for (var a, r, o = 0, i = 0, s = e.length; s > i; ){for (a = e[i].firstChild, r = n?n[i].firstChild:null; a; )1 === a.nodeType && (n?t(a, r, o):t(a, o), o++), a = a.nextSibling, r = n?r.nextSibling:null; i++}}function St(e){var n, r, o, i, s, l = e.nTable, u = e.aoColumns, c = e.oScroll, f = c.sY, d = c.sX, g = c.sXInner, S = u.length, m = v(e, "bVisible"), D = a("th", e.nTHead), y = l.getAttribute("width"), _ = l.parentNode, T = !1, w = e.oBrowser, C = w.bScrollOversize, x = l.style.width; for (x && - 1 !== x.indexOf("%") && (y = x), n = 0; n < m.length; n++)r = u[m[n]], null !== r.sWidth && (r.sWidth = Dt(r.sWidthOrig, _), T = !0); if (C || !T && !d && !f && S == b(e) && S == D.length)for (n = 0; S > n; n++){var I = p(e, n); I && (u[I].sWidth = Tt(D.eq(n).width()))} else{var A = a(l).clone().css("visibility", "hidden").removeAttr("id"); A.find("tbody tr").remove(); var F = a("<tr/>").appendTo(A.find("tbody")); for (A.find("thead, tfoot").remove(), A.append(a(e.nTHead).clone()).append(a(e.nTFoot).clone()), A.find("tfoot th, tfoot td").css("width", ""), D = B(e, A.find("thead")[0]), n = 0; n < m.length; n++)r = u[m[n]], D[n].style.width = null !== r.sWidthOrig && "" !== r.sWidthOrig?Tt(r.sWidthOrig):""; if (e.aoData.length)for (n = 0; n < m.length; n++)o = m[n], r = u[o], a(yt(e, o)).clone(!1).append(r.sContentPadding).appendTo(F); var L = a("<div/>").css(d || f?{position:"absolute", top:0, left:0, height:1, right:0, overflow:"hidden"}:{}).append(A).appendTo(_); if (d && g?A.width(g):d?(A.css("width", "auto"), A.width() < _.clientWidth && A.width(_.clientWidth)):f?A.width(_.clientWidth):y && A.width(y), d){var P = 0; for (n = 0; n < m.length; n++)r = u[m[n]], s = w.bBounding?D[n].getBoundingClientRect().width:a(D[n]).outerWidth(), P += null === r.sWidthOrig?s:parseInt(r.sWidth, 10) + s - a(D[n]).width(); A.width(Tt(P)), l.style.width = Tt(P)}for (n = 0; n < m.length; n++)r = u[m[n]], i = a(D[n]).width(), i && (r.sWidth = Tt(i)); l.style.width = Tt(A.css("width")), L.remove()}if (y && (l.style.width = Tt(y)), (y || d) && !e._reszEvt){var R = function(){a(t).bind("resize.DT-" + e.sInstance, mt(function(){h(e)}))}; C?setTimeout(R, 1e3):R(), e._reszEvt = !0}}function mt(t, e){var a, r, o = e !== n?e:200; return function(){var e = this, i = + new Date, s = arguments; a && a + o > i?(clearTimeout(r), r = setTimeout(function(){a = n, t.apply(e, s)}, o)):(a = i, t.apply(e, s))}}function Dt(t, n){if (!t)return 0; var r = a("<div/>").css("width", Tt(t)).appendTo(n || e.body), o = r[0].offsetWidth; return r.remove(), o}function yt(t, e){var n = _t(t, e); if (0 > n)return null; var r = t.aoData[n]; return r.nTr?r.anCells[e]:a("<td/>").html(w(t, n, e, "display"))[0]}function _t(t, e){for (var n, a = - 1, r = - 1, o = 0, i = t.aoData.length; i > o; o++)n = w(t, o, e, "display") + "", n = n.replace(ye, ""), n.length > a && (a = n.length, r = o); return r}function Tt(t){return null === t?"0px":"number" == typeof t?0 > t?"0px":t + "px":t.match(/\d$/)?t + "px":t}function wt(t){var e, r, o, i, s, l, u, c = [], f = t.aoColumns, d = t.aaSortingFixed, h = a.isPlainObject(d), p = [], g = function(t){t.length && !a.isArray(t[0])?p.push(t):a.merge(p, t)}; for (a.isArray(d) && g(d), h && d.pre && g(d.pre), g(t.aaSorting), h && d.post && g(d.post), e = 0; e < p.length; e++)for (u = p[e][0], i = f[u].aDataSort, r = 0, o = i.length; o > r; r++)s = i[r], l = f[s].sType || "string", p[e]._idx === n && (p[e]._idx = a.inArray(p[e][1], f[s].asSorting)), c.push({src:u, col:s, dir:p[e][1], index:p[e]._idx, type:l, formatter:qt.ext.type.order[l + "-pre"]}); return c}function Ct(t){var e, n, a, r, o, i = [], s = qt.ext.type.order, l = t.aoData, u = (t.aoColumns, 0), c = t.aiDisplayMaster; for (S(t), o = wt(t), e = 0, n = o.length; n > e; e++)r = o[e], r.formatter && u++, Lt(t, r.col); if ("ssp" != Bt(t) && 0 !== o.length){for (e = 0, a = c.length; a > e; e++)i[c[e]] = e; u === o.length?c.sort(function(t, e){var n, a, r, s, u, c = o.length, f = l[t]._aSortData, d = l[e]._aSortData; for (r = 0; c > r; r++)if (u = o[r], n = f[u.col], a = d[u.col], s = a > n? - 1:n > a?1:0, 0 !== s)return"asc" === u.dir?s: - s; return n = i[t], a = i[e], a > n? - 1:n > a?1:0}):c.sort(function(t, e){var n, a, r, u, c, f, d = o.length, h = l[t]._aSortData, p = l[e]._aSortData; for (r = 0; d > r; r++)if (c = o[r], n = h[c.col], a = p[c.col], f = s[c.type + "-" + c.dir] || s["string-" + c.dir], u = f(n, a), 0 !== u)return u; return n = i[t], a = i[e], a > n? - 1:n > a?1:0})}t.bSorted = !0}function xt(t){for (var e, n, a = t.aoColumns, r = wt(t), o = t.oLanguage.oAria, i = 0, s = a.length; s > i; i++){var l = a[i], u = l.asSorting, c = l.sTitle.replace(/<.*?>/g, ""), f = l.nTh;
|
2 |
+
f.removeAttribute("aria-sort"), l.bSortable?(r.length > 0 && r[0].col == i?(f.setAttribute("aria-sort", "asc" == r[0].dir?"ascending":"descending"), n = u[r[0].index + 1] || u[0]):n = u[0], e = c + ("asc" === n?o.sSortAscending:o.sSortDescending)):e = c, f.setAttribute("aria-label", e)}}function It(t, e, r, o){var i, s = t.aoColumns[e], l = t.aaSorting, u = s.asSorting, c = function(t, e){var r = t._idx; return r === n && (r = a.inArray(t[1], u)), r + 1 < u.length?r + 1:e?null:0}; if ("number" == typeof l[0] && (l = t.aaSorting = [l]), r && t.oFeatures.bSortMulti){var f = a.inArray(e, ce(l, "0")); - 1 !== f?(i = c(l[f], !0), null === i && 1 === l.length && (i = 0), null === i?l.splice(f, 1):(l[f][1] = u[i], l[f]._idx = i)):(l.push([e, u[0], 0]), l[l.length - 1]._idx = 0)} else l.length && l[0][0] == e?(i = c(l[0]), l.length = 1, l[0][1] = u[i], l[0]._idx = i):(l.length = 0, l.push([e, u[0]]), l[0]._idx = 0); W(t), "function" == typeof o && o(t)}function At(t, e, n, a){var r = t.aoColumns[n]; Ot(e, {}, function(e){r.bSortable !== !1 && (t.oFeatures.bProcessing?(pt(t, !0), setTimeout(function(){It(t, n, e.shiftKey, a), "ssp" !== Bt(t) && pt(t, !1)}, 0)):It(t, n, e.shiftKey, a))})}function Ft(t){var e, n, r, o = t.aLastSort, i = t.oClasses.sSortColumn, s = wt(t), l = t.oFeatures; if (l.bSort && l.bSortClasses){for (e = 0, n = o.length; n > e; e++)r = o[e].src, a(ce(t.aoData, "anCells", r)).removeClass(i + (2 > e?e + 1:3)); for (e = 0, n = s.length; n > e; e++)r = s[e].src, a(ce(t.aoData, "anCells", r)).addClass(i + (2 > e?e + 1:3))}t.aLastSort = s}function Lt(t, e){var n, a = t.aoColumns[e], r = qt.ext.order[a.sSortDataType]; r && (n = r.call(t.oInstance, t, e, g(t, e))); for (var o, i, s = qt.ext.type.order[a.sType + "-pre"], l = 0, u = t.aoData.length; u > l; l++)o = t.aoData[l], o._aSortData || (o._aSortData = []), (!o._aSortData[e] || r) && (i = r?n[l]:w(t, l, e, "sort"), o._aSortData[e] = s?s(i):i)}function Pt(t){if (t.oFeatures.bStateSave && !t.bDestroying){var e = {time: + new Date, start:t._iDisplayStart, length:t._iDisplayLength, order:a.extend(!0, [], t.aaSorting), search:nt(t.oPreviousSearch), columns:a.map(t.aoColumns, function(e, n){return{visible:e.bVisible, search:nt(t.aoPreSearchCols[n])}})}; Wt(t, "aoStateSaveParams", "stateSaveParams", [t, e]), t.oSavedState = e, t.fnStateSaveCallback.call(t.oInstance, t, e)}}function Rt(t, e){var r, o, i = t.aoColumns; if (t.oFeatures.bStateSave){var s = t.fnStateLoadCallback.call(t.oInstance, t); if (s && s.time){var l = Wt(t, "aoStateLoadParams", "stateLoadParams", [t, s]); if ( - 1 === a.inArray(!1, l)){var u = t.iStateDuration; if (!(u > 0 && s.time < + new Date - 1e3 * u) && i.length === s.columns.length){for (t.oLoadedState = a.extend(!0, {}, s), s.start !== n && (t._iDisplayStart = s.start, t.iInitDisplayStart = s.start), s.length !== n && (t._iDisplayLength = s.length), s.order !== n && (t.aaSorting = [], a.each(s.order, function(e, n){t.aaSorting.push(n[0] >= i.length?[0, n[1]]:n)})), s.search !== n && a.extend(t.oPreviousSearch, at(s.search)), r = 0, o = s.columns.length; o > r; r++){var c = s.columns[r]; c.visible !== n && (i[r].bVisible = c.visible), c.search !== n && a.extend(t.aoPreSearchCols[r], at(c.search))}Wt(t, "aoStateLoaded", "stateLoaded", [t, s])}}}}}function jt(t){var e = qt.settings, n = a.inArray(t, ce(e, "nTable")); return - 1 !== n?e[n]:null}function Ht(e, n, a, r){if (a = "DataTables warning: " + (e?"table id=" + e.sTableId + " - ":"") + a, r && (a += ". For more information about this error, please see http://datatables.net/tn/" + r), n)t.console && console.log && console.log(a); else{var o = qt.ext, i = o.sErrMode || o.errMode; if (e && Wt(e, null, "error", [e, r, a]), "alert" == i)alert(a); else{if ("throw" == i)throw new Error(a); "function" == typeof i && i(e, r, a)}}}function Nt(t, e, r, o){return a.isArray(r)?void a.each(r, function(n, r){a.isArray(r)?Nt(t, e, r[0], r[1]):Nt(t, e, r)}):(o === n && (o = r), void(e[r] !== n && (t[o] = e[r])))}function kt(t, e, n){var r; for (var o in e)e.hasOwnProperty(o) && (r = e[o], a.isPlainObject(r)?(a.isPlainObject(t[o]) || (t[o] = {}), a.extend(!0, t[o], r)):n && "data" !== o && "aaData" !== o && a.isArray(r)?t[o] = r.slice():t[o] = r); return t}function Ot(t, e, n){a(t).bind("click.DT", e, function(e){t.blur(), n(e)}).bind("keypress.DT", e, function(t){13 === t.which && (t.preventDefault(), n(t))}).bind("selectstart.DT", function(){return!1})}function Mt(t, e, n, a){n && t[e].push({fn:n, sName:a})}function Wt(t, e, n, r){var o = []; if (e && (o = a.map(t[e].slice().reverse(), function(e, n){return e.fn.apply(t.oInstance, r)})), null !== n){var i = a.Event(n + ".dt"); a(t.nTable).trigger(i, r), o.push(i.result)}return o}function Ut(t){var e = t._iDisplayStart, n = t.fnDisplayEnd(), a = t._iDisplayLength; e >= n && (e = n - a), e -= e % a, ( - 1 === a || 0 > e) && (e = 0), t._iDisplayStart = e}function Et(t, e){var n = t.renderer, r = qt.ext.renderer[e]; return a.isPlainObject(n) && n[e]?r[n[e]] || r._:"string" == typeof n?r[n] || r._:r._}function Bt(t){return t.oFeatures.bServerSide?"ssp":t.ajax || t.sAjaxSource?"ajax":"dom"}function Jt(t, e){var n = [], a = Xe.numbers_length, r = Math.floor(a / 2); return a >= e?n = de(0, e):r >= t?(n = de(0, a - 2), n.push("ellipsis"), n.push(e - 1)):t >= e - 1 - r?(n = de(e - (a - 2), e), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)):(n = de(t - r + 2, t + r - 1), n.push("ellipsis"), n.push(e - 1), n.splice(0, 0, "ellipsis"), n.splice(0, 0, 0)), n.DT_el = "span", n}function Xt(t){a.each({num:function(e){return Ve(e, t)}, "num-fmt":function(e){return Ve(e, t, ae)}, "html-num":function(e){return Ve(e, t, Kt)}, "html-num-fmt":function(e){return Ve(e, t, Kt, ae)}}, function(e, n){Gt.type.order[e + t + "-pre"] = n, e.match(/^html\-/) && (Gt.type.search[e + t] = Gt.type.search.html)})}function Vt(t){return function(){var e = [jt(this[qt.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return qt.ext.internal[t].apply(this, e)}}var qt, Gt, $t, zt, Yt, Qt = {}, Zt = /[\r\n]/g, Kt = /<.*?>/g, te = /^[\w\+\-]/, ee = /[\w\+\-]$/, ne = new RegExp("(\\" + ["/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^", "-"].join("|\\") + ")", "g"), ae = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi, re = function(t){return t && t !== !0 && "-" !== t?!1:!0}, oe = function(t){var e = parseInt(t, 10); return!isNaN(e) && isFinite(t)?e:null}, ie = function(t, e){return Qt[e] || (Qt[e] = new RegExp(tt(e), "g")), "string" == typeof t && "." !== e?t.replace(/\./g, "").replace(Qt[e], "."):t}, se = function(t, e, n){var a = "string" == typeof t; return re(t)?!0:(e && a && (t = ie(t, e)), n && a && (t = t.replace(ae, "")), !isNaN(parseFloat(t)) && isFinite(t))}, le = function(t){return re(t) || "string" == typeof t}, ue = function(t, e, n){if (re(t))return!0; var a = le(t); return a && se(pe(t), e, n)?!0:null}, ce = function(t, e, a){var r = [], o = 0, i = t.length; if (a !== n)for (; i > o; o++)t[o] && t[o][e] && r.push(t[o][e][a]); else for (; i > o; o++)t[o] && r.push(t[o][e]); return r}, fe = function(t, e, a, r){var o = [], i = 0, s = e.length; if (r !== n)for (; s > i; i++)t[e[i]][a] && o.push(t[e[i]][a][r]); else for (; s > i; i++)o.push(t[e[i]][a]); return o}, de = function(t, e){var a, r = []; e === n?(e = 0, a = t):(a = e, e = t); for (var o = e; a > o; o++)r.push(o); return r}, he = function(t){for (var e = [], n = 0, a = t.length; a > n; n++)t[n] && e.push(t[n]); return e}, pe = function(t){return t.replace(Kt, "")}, ge = function(t){var e, n, a, r = [], o = t.length, i = 0; t:for (n = 0; o > n; n++){for (e = t[n], a = 0; i > a; a++)if (r[a] === e)continue t; r.push(e), i++}return r}, be = function(t, e, a){t[e] !== n && (t[a] = t[e])}, ve = /\[.*?\]$/, Se = /\(\)$/, me = a("<div>")[0], De = me.textContent !== n, ye = /<.*?>/g; qt = function(t){this.$ = function(t, e){return this.api(!0).$(t, e)}, this._ = function(t, e){return this.api(!0).rows(t, e).data()}, this.api = function(t){return new $t(t?jt(this[Gt.iApiIndex]):this)}, this.fnAddData = function(t, e){var r = this.api(!0), o = a.isArray(t) && (a.isArray(t[0]) || a.isPlainObject(t[0]))?r.rows.add(t):r.row.add(t); return(e === n || e) && r.draw(), o.flatten().toArray()}, this.fnAdjustColumnSizing = function(t){var e = this.api(!0).columns.adjust(), a = e.settings()[0], r = a.oScroll; t === n || t?e.draw(!1):("" !== r.sX || "" !== r.sY) && bt(a)}, this.fnClearTable = function(t){var e = this.api(!0).clear(); (t === n || t) && e.draw()}, this.fnClose = function(t){this.api(!0).row(t).child.hide()}, this.fnDeleteRow = function(t, e, a){var r = this.api(!0), o = r.rows(t), i = o.settings()[0], s = i.aoData[o[0][0]]; return o.remove(), e && e.call(this, i, s), (a === n || a) && r.draw(), s}, this.fnDestroy = function(t){this.api(!0).destroy(t)}, this.fnDraw = function(t){this.api(!0).draw(t)}, this.fnFilter = function(t, e, a, r, o, i){var s = this.api(!0); null === e || e === n?s.search(t, a, r, i):s.column(e).search(t, a, r, i), s.draw()}, this.fnGetData = function(t, e){var a = this.api(!0); if (t !== n){var r = t.nodeName?t.nodeName.toLowerCase():""; return e !== n || "td" == r || "th" == r?a.cell(t, e).data():a.row(t).data() || null}return a.data().toArray()}, this.fnGetNodes = function(t){var e = this.api(!0); return t !== n?e.row(t).node():e.rows().nodes().flatten().toArray()}, this.fnGetPosition = function(t){var e = this.api(!0), n = t.nodeName.toUpperCase(); if ("TR" == n)return e.row(t).index(); if ("TD" == n || "TH" == n){var a = e.cell(t).index(); return[a.row, a.columnVisible, a.column]}return null}, this.fnIsOpen = function(t){return this.api(!0).row(t).child.isShown()}, this.fnOpen = function(t, e, n){return this.api(!0).row(t).child(e, n).show().child()[0]}, this.fnPageChange = function(t, e){var a = this.api(!0).page(t); (e === n || e) && a.draw(!1)}, this.fnSetColumnVis = function(t, e, a){var r = this.api(!0).column(t).visible(e); (a === n || a) && r.columns.adjust().draw()}, this.fnSettings = function(){return jt(this[Gt.iApiIndex])}, this.fnSort = function(t){this.api(!0).order(t).draw()}, this.fnSortListener = function(t, e, n){this.api(!0).order.listener(t, e, n)}, this.fnUpdate = function(t, e, a, r, o){var i = this.api(!0); return a === n || null === a?i.row(e).data(t):i.cell(e, a).data(t), (o === n || o) && i.columns.adjust(), (r === n || r) && i.draw(), 0}, this.fnVersionCheck = Gt.fnVersionCheck; var e = this, r = t === n, c = this.length; r && (t = {}), this.oApi = this.internal = Gt.internal; for (var h in qt.ext.internal)h && (this[h] = Vt(h)); return this.each(function(){var h, p = {}, g = c > 1?kt(p, t, !0):t, b = 0, v = this.getAttribute("id"), S = !1, _ = qt.defaults, T = a(this); if ("table" != this.nodeName.toLowerCase())return void Ht(null, 0, "Non-table node initialisation (" + this.nodeName + ")", 2); s(_), l(_.column), o(_, _, !0), o(_.column, _.column, !0), o(_, a.extend(g, T.data())); var w = qt.settings; for (b = 0, h = w.length; h > b; b++){var C = w[b]; if (C.nTable == this || C.nTHead.parentNode == this || C.nTFoot && C.nTFoot.parentNode == this){var x = g.bRetrieve !== n?g.bRetrieve:_.bRetrieve, A = g.bDestroy !== n?g.bDestroy:_.bDestroy; if (r || x)return C.oInstance; if (A){C.oInstance.fnDestroy(); break}return void Ht(C, 0, "Cannot reinitialise DataTable", 3)}if (C.sTableId == this.id){w.splice(b, 1); break}}(null === v || "" === v) && (v = "DataTables_Table_" + qt.ext._unique++, this.id = v); var F = a.extend(!0, {}, qt.models.oSettings, {sDestroyWidth:T[0].style.width, sInstance:v, sTableId:v}); F.nTable = this, F.oApi = e.internal, F.oInit = g, w.push(F), F.oInstance = 1 === e.length?e:T.dataTable(), s(g), g.oLanguage && i(g.oLanguage), g.aLengthMenu && !g.iDisplayLength && (g.iDisplayLength = a.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]), g = kt(a.extend(!0, {}, _), g), Nt(F.oFeatures, g, ["bPaginate", "bLengthChange", "bFilter", "bSort", "bSortMulti", "bInfo", "bProcessing", "bAutoWidth", "bSortClasses", "bServerSide", "bDeferRender"]), Nt(F, g, ["asStripeClasses", "ajax", "fnServerData", "fnFormatNumber", "sServerMethod", "aaSorting", "aaSortingFixed", "aLengthMenu", "sPaginationType", "sAjaxSource", "sAjaxDataProp", "iStateDuration", "sDom", "bSortCellsTop", "iTabIndex", "fnStateLoadCallback", "fnStateSaveCallback", "renderer", "searchDelay", "rowId", ["iCookieDuration", "iStateDuration"], ["oSearch", "oPreviousSearch"], ["aoSearchCols", "aoPreSearchCols"], ["iDisplayLength", "_iDisplayLength"], ["bJQueryUI", "bJUI"]]), Nt(F.oScroll, g, [["sScrollX", "sX"], ["sScrollXInner", "sXInner"], ["sScrollY", "sY"], ["bScrollCollapse", "bCollapse"]]), Nt(F.oLanguage, g, "fnInfoCallback"), Mt(F, "aoDrawCallback", g.fnDrawCallback, "user"), Mt(F, "aoServerParams", g.fnServerParams, "user"), Mt(F, "aoStateSaveParams", g.fnStateSaveParams, "user"), Mt(F, "aoStateLoadParams", g.fnStateLoadParams, "user"), Mt(F, "aoStateLoaded", g.fnStateLoaded, "user"), Mt(F, "aoRowCallback", g.fnRowCallback, "user"), Mt(F, "aoRowCreatedCallback", g.fnCreatedRow, "user"), Mt(F, "aoHeaderCallback", g.fnHeaderCallback, "user"), Mt(F, "aoFooterCallback", g.fnFooterCallback, "user"), Mt(F, "aoInitComplete", g.fnInitComplete, "user"), Mt(F, "aoPreDrawCallback", g.fnPreDrawCallback, "user"), F.rowIdFn = I(g.rowId), u(F); var L = F.oClasses; if (g.bJQueryUI?(a.extend(L, qt.ext.oJUIClasses, g.oClasses), g.sDom === _.sDom && "lfrtip" === _.sDom && (F.sDom = '<"H"lfr>t<"F"ip>'), F.renderer?a.isPlainObject(F.renderer) && !F.renderer.header && (F.renderer.header = "jqueryui"):F.renderer = "jqueryui"):a.extend(L, qt.ext.classes, g.oClasses), T.addClass(L.sTable), F.iInitDisplayStart === n && (F.iInitDisplayStart = g.iDisplayStart, F._iDisplayStart = g.iDisplayStart), null !== g.iDeferLoading){F.bDeferLoading = !0; var P = a.isArray(g.iDeferLoading); F._iRecordsDisplay = P?g.iDeferLoading[0]:g.iDeferLoading, F._iRecordsTotal = P?g.iDeferLoading[1]:g.iDeferLoading}var R = F.oLanguage; a.extend(!0, R, g.oLanguage), "" !== R.sUrl && (a.ajax({dataType:"json", url:R.sUrl, success:function(t){i(t), o(_.oLanguage, t), a.extend(!0, R, t), st(F)}, error:function(){st(F)}}), S = !0), null === g.asStripeClasses && (F.asStripeClasses = [L.sStripeOdd, L.sStripeEven]); var j = F.asStripeClasses, H = T.children("tbody").find("tr").eq(0); - 1 !== a.inArray(!0, a.map(j, function(t, e){return H.hasClass(t)})) && (a("tbody tr", this).removeClass(j.join(" ")), F.asDestroyStripes = j.slice()); var N, k = [], O = this.getElementsByTagName("thead"); if (0 !== O.length && (E(F.aoHeader, O[0]), k = B(F)), null === g.aoColumns)for (N = [], b = 0, h = k.length; h > b; b++)N.push(null); else N = g.aoColumns; for (b = 0, h = N.length; h > b; b++)f(F, k?k[b]:null); if (m(F, g.aoColumnDefs, N, function(t, e){d(F, t, e)}), H.length){var M = function(t, e){return null !== t.getAttribute("data-" + e)?e:null}; a(H[0]).children("th, td").each(function(t, e){var a = F.aoColumns[t]; if (a.mData === t){var r = M(e, "sort") || M(e, "order"), o = M(e, "filter") || M(e, "search"); (null !== r || null !== o) && (a.mData = {_:t + ".display", sort:null !== r?t + ".@data-" + r:n, type:null !== r?t + ".@data-" + r:n, filter:null !== o?t + ".@data-" + o:n}, d(F, t))}})}var W = F.oFeatures; if (g.bStateSave && (W.bStateSave = !0, Rt(F, g), Mt(F, "aoDrawCallback", Pt, "state_save")), g.aaSorting === n){var U = F.aaSorting; for (b = 0, h = U.length; h > b; b++)U[b][1] = F.aoColumns[b].asSorting[0]}Ft(F), W.bSort && Mt(F, "aoDrawCallback", function(){if (F.bSorted){var t = wt(F), e = {}; a.each(t, function(t, n){e[n.src] = n.dir}), Wt(F, null, "order", [F, t, e]), xt(F)}}), Mt(F, "aoDrawCallback", function(){(F.bSorted || "ssp" === Bt(F) || W.bDeferRender) && Ft(F)}, "sc"); var J = T.children("caption").each(function(){this._captionSide = T.css("caption-side")}), X = T.children("thead"); 0 === X.length && (X = a("<thead/>").appendTo(this)), F.nTHead = X[0]; var V = T.children("tbody"); 0 === V.length && (V = a("<tbody/>").appendTo(this)), F.nTBody = V[0]; var q = T.children("tfoot"); if (0 === q.length && J.length > 0 && ("" !== F.oScroll.sX || "" !== F.oScroll.sY) && (q = a("<tfoot/>").appendTo(this)), 0 === q.length || 0 === q.children().length?T.addClass(L.sNoFooter):q.length > 0 && (F.nTFoot = q[0], E(F.aoFooter, F.nTFoot)), g.aaData)for (b = 0; b < g.aaData.length; b++)D(F, g.aaData[b]); else(F.bDeferLoading || "dom" == Bt(F)) && y(F, a(F.nTBody).children("tr")); F.aiDisplay = F.aiDisplayMaster.slice(), F.bInitialised = !0, S === !1 && st(F)}), e = null, this}; var _e = [], Te = Array.prototype, we = function(t){var e, n, r = qt.settings, o = a.map(r, function(t, e){return t.nTable}); return t?t.nTable && t.oApi?[t]:t.nodeName && "table" === t.nodeName.toLowerCase()?(e = a.inArray(t, o), - 1 !== e?[r[e]]:null):t && "function" == typeof t.settings?t.settings().toArray():("string" == typeof t?n = a(t):t instanceof a && (n = t), n?n.map(function(t){return e = a.inArray(this, o), - 1 !== e?r[e]:null}).toArray():void 0):[]}; $t = function(t, e){if (!(this instanceof $t))return new $t(t, e); var n = [], r = function(t){var e = we(t); e && (n = n.concat(e))}; if (a.isArray(t))for (var o = 0, i = t.length; i > o; o++)r(t[o]); else r(t); this.context = ge(n), e && a.merge(this, e), this.selector = {rows:null, cols:null, opts:null}, $t.extend(this, this, _e)}, qt.Api = $t, a.extend($t.prototype, {any:function(){return 0 !== this.count()}, concat:Te.concat, context:[], count:function(){return this.flatten().length}, each:function(t){for (var e = 0, n = this.length; n > e; e++)t.call(this, this[e], e, this); return this}, eq:function(t){var e = this.context; return e.length > t?new $t(e[t], this[t]):null}, filter:function(t){var e = []; if (Te.filter)e = Te.filter.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)t.call(this, this[n], n, this) && e.push(this[n]); return new $t(this.context, e)}, flatten:function(){var t = []; return new $t(this.context, t.concat.apply(t, this.toArray()))}, join:Te.join, indexOf:Te.indexOf || function(t, e){for (var n = e || 0, a = this.length; a > n; n++)if (this[n] === t)return n; return - 1}, iterator:function(t, e, a, r){var o, i, s, l, u, c, f, d, h = [], p = this.context, g = this.selector; for ("string" == typeof t && (r = a, a = e, e = t, t = !1), i = 0, s = p.length; s > i; i++){var b = new $t(p[i]); if ("table" === e)o = a.call(b, p[i], i), o !== n && h.push(o); else if ("columns" === e || "rows" === e)o = a.call(b, p[i], this[i], i), o !== n && h.push(o); else if ("column" === e || "column-rows" === e || "row" === e || "cell" === e)for (f = this[i], "column-rows" === e && (c = Le(p[i], g.opts)), l = 0, u = f.length; u > l; l++)d = f[l], o = "cell" === e?a.call(b, p[i], d.row, d.column, i, l):a.call(b, p[i], d, i, l, c), o !== n && h.push(o)}if (h.length || r){var v = new $t(p, t?h.concat.apply([], h):h), S = v.selector; return S.rows = g.rows, S.cols = g.cols, S.opts = g.opts, v}return this}, lastIndexOf:Te.lastIndexOf || function(t, e){return this.indexOf.apply(this.toArray.reverse(), arguments)}, length:0, map:function(t){var e = []; if (Te.map)e = Te.map.call(this, t, this); else for (var n = 0, a = this.length; a > n; n++)e.push(t.call(this, this[n], n)); return new $t(this.context, e)}, pluck:function(t){return this.map(function(e){return e[t]})}, pop:Te.pop, push:Te.push, reduce:Te.reduce || function(t, e){return c(this, t, e, 0, this.length, 1)}, reduceRight:Te.reduceRight || function(t, e){return c(this, t, e, this.length - 1, - 1, - 1)}, reverse:Te.reverse, selector:null, shift:Te.shift, sort:Te.sort, splice:Te.splice, toArray:function(){return Te.slice.call(this)}, to$:function(){return a(this)}, toJQuery:function(){return a(this)}, unique:function(){return new $t(this.context, ge(this))}, unshift:Te.unshift}), $t.extend = function(t, e, n){if (n.length && e && (e instanceof $t || e.__dt_wrapper)){var r, o, i, s = function(t, e, n){return function(){var a = e.apply(t, arguments); return $t.extend(a, a, n.methodExt), a}}; for (r = 0, o = n.length; o > r; r++)i = n[r], e[i.name] = "function" == typeof i.val?s(t, i.val, i):a.isPlainObject(i.val)?{}:i.val, e[i.name].__dt_wrapper = !0, $t.extend(t, e[i.name], i.propExt)}}, $t.register = zt = function(t, e){if (a.isArray(t))for (var n = 0, r = t.length; r > n; n++)$t.register(t[n], e); else{var o, i, s, l, u = t.split("."), c = _e, f = function(t, e){for (var n = 0, a = t.length; a > n; n++)if (t[n].name === e)return t[n]; return null}; for (o = 0, i = u.length; i > o; o++){l = - 1 !== u[o].indexOf("()"), s = l?u[o].replace("()", ""):u[o]; var d = f(c, s); d || (d = {name:s, val:{}, methodExt:[], propExt:[]}, c.push(d)), o === i - 1?d.val = e:c = l?d.methodExt:d.propExt}}}, $t.registerPlural = Yt = function(t, e, r){$t.register(t, r), $t.register(e, function(){var t = r.apply(this, arguments); return t === this?this:t instanceof $t?t.length?a.isArray(t[0])?new $t(t.context, t[0]):t[0]:n:t})}; var Ce = function(t, e){if ("number" == typeof t)return[e[t]]; var n = a.map(e, function(t, e){return t.nTable}); return a(n).filter(t).map(function(t){var r = a.inArray(this, n); return e[r]}).toArray()}; zt("tables()", function(t){return t?new $t(Ce(t, this.context)):this}), zt("table()", function(t){var e = this.tables(t), n = e.context; return n.length?new $t(n[0]):e}), Yt("tables().nodes()", "table().node()", function(){return this.iterator("table", function(t){return t.nTable}, 1)}), Yt("tables().body()", "table().body()", function(){return this.iterator("table", function(t){return t.nTBody}, 1)}), Yt("tables().header()", "table().header()", function(){return this.iterator("table", function(t){return t.nTHead}, 1)}), Yt("tables().footer()", "table().footer()", function(){return this.iterator("table", function(t){return t.nTFoot}, 1)}), Yt("tables().containers()", "table().container()", function(){return this.iterator("table", function(t){return t.nTableWrapper}, 1)}), zt("draw()", function(t){return this.iterator("table", function(e){"page" === t?M(e):("string" == typeof t && (t = "full-hold" === t?!1:!0), W(e, t === !1))})}), zt("page()", function(t){return t === n?this.page.info().page:this.iterator("table", function(e){dt(e, t)})}), zt("page.info()", function(t){if (0 === this.context.length)return n; var e = this.context[0], a = e._iDisplayStart, r = e._iDisplayLength, o = e.fnRecordsDisplay(), i = - 1 === r; return{page:i?0:Math.floor(a / r), pages:i?1:Math.ceil(o / r), start:a, end:e.fnDisplayEnd(), length:r, recordsTotal:e.fnRecordsTotal(), recordsDisplay:o, serverSide:"ssp" === Bt(e)}}), zt("page.len()", function(t){return t === n?0 !== this.context.length?this.context[0]._iDisplayLength:n:this.iterator("table", function(e){ut(e, t)})}); var xe = function(t, e, n){if (n){var a = new $t(t); a.one("draw", function(){n(a.ajax.json())})}if ("ssp" == Bt(t))W(t, e); else{pt(t, !0); var r = t.jqXHR; r && 4 !== r.readyState && r.abort(), J(t, [], function(n){L(t); for (var a = G(t, n), r = 0, o = a.length; o > r; r++)D(t, a[r]); W(t, e), pt(t, !1)})}}; zt("ajax.json()", function(){var t = this.context; return t.length > 0?t[0].json:void 0}), zt("ajax.params()", function(){var t = this.context; return t.length > 0?t[0].oAjaxData:void 0}), zt("ajax.reload()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}), zt("ajax.url()", function(t){var e = this.context; return t === n?0 === e.length?n:(e = e[0], e.ajax?a.isPlainObject(e.ajax)?e.ajax.url:e.ajax:e.sAjaxSource):this.iterator("table", function(e){a.isPlainObject(e.ajax)?e.ajax.url = t:e.ajax = t})}), zt("ajax.url().load()", function(t, e){return this.iterator("table", function(n){xe(n, e === !1, t)})}); var Ie = function(t, e, r, o, i){var s, l, u, c, f, d, h = [], p = typeof e; for (e && "string" !== p && "function" !== p && e.length !== n || (e = [e]), u = 0, c = e.length; c > u; u++)for (l = e[u] && e[u].split?e[u].split(","):[e[u]], f = 0, d = l.length; d > f; f++)s = r("string" == typeof l[f]?a.trim(l[f]):l[f]), s && s.length && (h = h.concat(s)); var g = Gt.selector[t]; if (g.length)for (u = 0, c = g.length; c > u; u++)h = g[u](o, i, h); return ge(h)}, Ae = function(t){return t || (t = {}), t.filter && t.search === n && (t.search = t.filter), a.extend({search:"none", order:"current", page:"all"}, t)}, Fe = function(t){for (var e = 0, n = t.length; n > e; e++)if (t[e].length > 0)return t[0] = t[e], t[0].length = 1, t.length = 1, t.context = [t.context[e]], t; return t.length = 0, t}, Le = function(t, e){var n, r, o, i = [], s = t.aiDisplay, l = t.aiDisplayMaster, u = e.search, c = e.order, f = e.page; if ("ssp" == Bt(t))return"removed" === u?[]:de(0, l.length); if ("current" == f)for (n = t._iDisplayStart, r = t.fnDisplayEnd(); r > n; n++)i.push(s[n]); else if ("current" == c || "applied" == c)i = "none" == u?l.slice():"applied" == u?s.slice():a.map(l, function(t, e){return - 1 === a.inArray(t, s)?t:null}); else if ("index" == c || "original" == c)for (n = 0, r = t.aoData.length; r > n; n++)"none" == u?i.push(n):(o = a.inArray(n, s), ( - 1 === o && "removed" == u || o >= 0 && "applied" == u) && i.push(n)); return i}, Pe = function(t, e, r){var o = function(e){var o = oe(e); if (null !== o && !r)return[o]; var i = Le(t, r); if (null !== o && - 1 !== a.inArray(o, i))return[o]; if (!e)return i; if ("function" == typeof e)return a.map(i, function(n){var a = t.aoData[n]; return e(n, a._aData, a.nTr)?n:null}); var s = he(fe(t.aoData, i, "nTr")); if (e.nodeName && - 1 !== a.inArray(e, s))return[e._DT_RowIndex]; if ("string" == typeof e && "#" === e.charAt(0)){var l = t.aIds[e.replace(/^#/, "")]; if (l !== n)return[l.idx]}return a(s).filter(e).map(function(){return this._DT_RowIndex}).toArray()}; return Ie("row", e, o, t, r)}; zt("rows()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Pe(n, t, e)}, 1); return r.selector.rows = t, r.selector.opts = e, r}), zt("rows().nodes()", function(){return this.iterator("row", function(t, e){return t.aoData[e].nTr || n}, 1)}), zt("rows().data()", function(){return this.iterator(!0, "rows", function(t, e){return fe(t.aoData, e, "_aData")}, 1)}), Yt("rows().cache()", "row().cache()", function(t){return this.iterator("row", function(e, n){var a = e.aoData[n]; return"search" === t?a._aFilterData:a._aSortData}, 1)}), Yt("rows().invalidate()", "row().invalidate()", function(t){return this.iterator("row", function(e, n){R(e, n, t)})}), Yt("rows().indexes()", "row().index()", function(){return this.iterator("row", function(t, e){return e}, 1)}), Yt("rows().ids()", "row().id()", function(t){for (var e = [], n = this.context, a = 0, r = n.length; r > a; a++)for (var o = 0, i = this[a].length; i > o; o++){var s = n[a].rowIdFn(n[a].aoData[this[a][o]]._aData); e.push((t === !0?"#":"") + s)}return new $t(n, e)}), Yt("rows().remove()", "row().remove()", function(){var t = this; return this.iterator("row", function(e, a, r){var o = e.aoData, i = o[a]; o.splice(a, 1); for (var s = 0, l = o.length; l > s; s++)null !== o[s].nTr && (o[s].nTr._DT_RowIndex = s); P(e.aiDisplayMaster, a), P(e.aiDisplay, a), P(t[r], a, !1), Ut(e); var u = e.rowIdFn(i._aData); u !== n && delete e.aIds[u]}), this.iterator("table", function(t){for (var e = 0, n = t.aoData.length; n > e; e++)t.aoData[e].idx = e}), this}), zt("rows.add()", function(t){var e = this.iterator("table", function(e){var n, a, r, o = []; for (a = 0, r = t.length; r > a; a++)n = t[a], n.nodeName && "TR" === n.nodeName.toUpperCase()?o.push(y(e, n)[0]):o.push(D(e, n)); return o}, 1), n = this.rows( - 1); return n.pop(), a.merge(n, e), n}), zt("row()", function(t, e){return Fe(this.rows(t, e))}), zt("row().data()", function(t){var e = this.context; return t === n?e.length && this.length?e[0].aoData[this[0]]._aData:n:(e[0].aoData[this[0]]._aData = t, R(e[0], this[0], "data"), this)}), zt("row().node()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]].nTr || null:null}), zt("row.add()", function(t){t instanceof a && t.length && (t = t[0]); var e = this.iterator("table", function(e){return t.nodeName && "TR" === t.nodeName.toUpperCase()?y(e, t)[0]:D(e, t)}); return this.row(e[0])}); var Re = function(t, e, n, r){var o = [], i = function(e, n){if (a.isArray(e) || e instanceof a)for (var r = 0, s = e.length; s > r; r++)i(e[r], n); else if (e.nodeName && "tr" === e.nodeName.toLowerCase())o.push(e); else{var l = a("<tr><td/></tr>").addClass(n); a("td", l).addClass(n).html(e)[0].colSpan = b(t), o.push(l[0])}}; i(n, r), e._details && e._details.remove(), e._details = a(o), e._detailsShow && e._details.insertAfter(e.nTr)}, je = function(t, e){var a = t.context; if (a.length){var r = a[0].aoData[e !== n?e:t[0]]; r && r._details && (r._details.remove(), r._detailsShow = n, r._details = n)}}, He = function(t, e){var n = t.context; if (n.length && t.length){var a = n[0].aoData[t[0]]; a._details && (a._detailsShow = e, e?a._details.insertAfter(a.nTr):a._details.detach(), Ne(n[0]))}}, Ne = function(t){var e = new $t(t), n = ".dt.DT_details", a = "draw" + n, r = "column-visibility" + n, o = "destroy" + n, i = t.aoData; e.off(a + " " + r + " " + o), ce(i, "_details").length > 0 && (e.on(a, function(n, a){t === a && e.rows({page:"current"}).eq(0).each(function(t){var e = i[t]; e._detailsShow && e._details.insertAfter(e.nTr)})}), e.on(r, function(e, n, a, r){if (t === n)for (var o, s = b(n), l = 0, u = i.length; u > l; l++)o = i[l], o._details && o._details.children("td[colspan]").attr("colspan", s)}), e.on(o, function(n, a){if (t === a)for (var r = 0, o = i.length; o > r; r++)i[r]._details && je(e, r)}))}, ke = "", Oe = ke + "row().child", Me = Oe + "()"; zt(Me, function(t, e){var a = this.context; return t === n?a.length && this.length?a[0].aoData[this[0]]._details:n:(t === !0?this.child.show():t === !1?je(this):a.length && this.length && Re(a[0], a[0].aoData[this[0]], t, e), this)}), zt([Oe + ".show()", Me + ".show()"], function(t){return He(this, !0), this}), zt([Oe + ".hide()", Me + ".hide()"], function(){return He(this, !1), this}), zt([Oe + ".remove()", Me + ".remove()"], function(){return je(this), this}), zt(Oe + ".isShown()", function(){var t = this.context; return t.length && this.length?t[0].aoData[this[0]]._detailsShow || !1:!1}); var We = /^(.+):(name|visIdx|visible)$/, Ue = function(t, e, n, a, r){for (var o = [], i = 0, s = r.length; s > i; i++)o.push(w(t, r[i], e)); return o}, Ee = function(t, e, n){var r = t.aoColumns, o = ce(r, "sName"), i = ce(r, "nTh"), s = function(e){var s = oe(e); if ("" === e)return de(r.length); if (null !== s)return[s >= 0?s:r.length + s]; if ("function" == typeof e){var l = Le(t, n); return a.map(r, function(n, a){return e(a, Ue(t, a, 0, 0, l), i[a])?a:null})}var u = "string" == typeof e?e.match(We):""; if (!u)return a(i).filter(e).map(function(){return a.inArray(this, i)}).toArray(); switch (u[2]){case"visIdx":case"visible":var c = parseInt(u[1], 10); if (0 > c){var f = a.map(r, function(t, e){return t.bVisible?e:null}); return[f[f.length + c]]}return[p(t, c)]; case"name":return a.map(o, function(t, e){return t === u[1]?e:null})}}; return Ie("column", e, s, t, n)}, Be = function(t, e, r, o){var i, s, l, u, c = t.aoColumns, f = c[e], d = t.aoData; if (r === n)return f.bVisible; if (f.bVisible !== r){if (r){var p = a.inArray(!0, ce(c, "bVisible"), e + 1); for (s = 0, l = d.length; l > s; s++)u = d[s].nTr, i = d[s].anCells, u && u.insertBefore(i[e], i[p] || null)} else a(ce(t.aoData, "anCells", e)).detach(); f.bVisible = r, O(t, t.aoHeader), O(t, t.aoFooter), (o === n || o) && (h(t), (t.oScroll.sX || t.oScroll.sY) && bt(t)), Wt(t, null, "column-visibility", [t, e, r]), Pt(t)}}; zt("columns()", function(t, e){t === n?t = "":a.isPlainObject(t) && (e = t, t = ""), e = Ae(e); var r = this.iterator("table", function(n){return Ee(n, t, e)}, 1); return r.selector.cols = t, r.selector.opts = e, r}), Yt("columns().header()", "column().header()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTh}, 1)}), Yt("columns().footer()", "column().footer()", function(t, e){return this.iterator("column", function(t, e){return t.aoColumns[e].nTf}, 1)}), Yt("columns().data()", "column().data()", function(){return this.iterator("column-rows", Ue, 1)}), Yt("columns().dataSrc()", "column().dataSrc()", function(){return this.iterator("column", function(t, e){return t.aoColumns[e].mData}, 1)}), Yt("columns().cache()", "column().cache()", function(t){return this.iterator("column-rows", function(e, n, a, r, o){return fe(e.aoData, o, "search" === t?"_aFilterData":"_aSortData", n)}, 1)}), Yt("columns().nodes()", "column().nodes()", function(){return this.iterator("column-rows", function(t, e, n, a, r){return fe(t.aoData, r, "anCells", e)}, 1)}), Yt("columns().visible()", "column().visible()", function(t, e){return this.iterator("column", function(a, r){return t === n?a.aoColumns[r].bVisible:void Be(a, r, t, e)})}), Yt("columns().indexes()", "column().index()", function(t){return this.iterator("column", function(e, n){return"visible" === t?g(e, n):n}, 1)}), zt("columns.adjust()", function(){return this.iterator("table", function(t){h(t)}, 1)}), zt("column.index()", function(t, e){if (0 !== this.context.length){var n = this.context[0]; if ("fromVisible" === t || "toData" === t)return p(n, e); if ("fromData" === t || "toVisible" === t)return g(n, e)}}), zt("column()", function(t, e){return Fe(this.columns(t, e))}); var Je = function(t, e, r){var o, i, s, l, u, c, f, d = t.aoData, h = Le(t, r), p = he(fe(d, h, "anCells")), g = a([].concat.apply([], p)), b = t.aoColumns.length, v = function(e){var r = "function" == typeof e; if (null === e || e === n || r){for (i = [], s = 0, l = h.length; l > s; s++)for (o = h[s], u = 0; b > u; u++)c = {row:o, column:u}, r?(f = d[o], e(c, w(t, o, u), f.anCells?f.anCells[u]:null) && i.push(c)):i.push(c); return i}return a.isPlainObject(e)?[e]:g.filter(e).map(function(t, e){if (e.parentNode)o = e.parentNode._DT_RowIndex; else for (t = 0, l = d.length; l > t; t++)if ( - 1 !== a.inArray(e, d[t].anCells)){o = t; break}return{row:o, column:a.inArray(e, d[o].anCells)}}).toArray()}; return Ie("cell", e, v, t, r)}; zt("cells()", function(t, e, r){if (a.isPlainObject(t) && (t.row === n?(r = t, t = null):(r = e, e = null)), a.isPlainObject(e) && (r = e, e = null), null === e || e === n)return this.iterator("table", function(e){return Je(e, t, Ae(r))}); var o, i, s, l, u, c = this.columns(e, r), f = this.rows(t, r), d = this.iterator("table", function(t, e){for (o = [], i = 0, s = f[e].length; s > i; i++)for (l = 0, u = c[e].length; u > l; l++)o.push({row:f[e][i], column:c[e][l]}); return o}, 1); return a.extend(d.selector, {cols:e, rows:t, opts:r}), d}), Yt("cells().nodes()", "cell().node()", function(){return this.iterator("cell", function(t, e, a){var r = t.aoData[e].anCells; return r?r[a]:n}, 1)}), zt("cells().data()", function(){return this.iterator("cell", function(t, e, n){return w(t, e, n)}, 1)}), Yt("cells().cache()", "cell().cache()", function(t){return t = "search" === t?"_aFilterData":"_aSortData", this.iterator("cell", function(e, n, a){return e.aoData[n][t][a]}, 1)}), Yt("cells().render()", "cell().render()", function(t){return this.iterator("cell", function(e, n, a){return w(e, n, a, t)}, 1)}), Yt("cells().indexes()", "cell().index()", function(){return this.iterator("cell", function(t, e, n){return{row:e, column:n, columnVisible:g(t, n)}}, 1)}), Yt("cells().invalidate()", "cell().invalidate()", function(t){return this.iterator("cell", function(e, n, a){R(e, n, t, a)})}), zt("cell()", function(t, e, n){return Fe(this.cells(t, e, n))}), zt("cell().data()", function(t){var e = this.context, a = this[0]; return t === n?e.length && a.length?w(e[0], a[0].row, a[0].column):n:(C(e[0], a[0].row, a[0].column, t), R(e[0], a[0].row, "data", a[0].column), this)}), zt("order()", function(t, e){var r = this.context; return t === n?0 !== r.length?r[0].aaSorting:n:("number" == typeof t?t = [[t, e]]:a.isArray(t[0]) || (t = Array.prototype.slice.call(arguments)), this.iterator("table", function(e){e.aaSorting = t.slice()}))}), zt("order.listener()", function(t, e, n){return this.iterator("table", function(a){
|
3 |
At(a, t, e, n)})}), zt(["columns().order()", "column().order()"], function(t){var e = this; return this.iterator("table", function(n, r){var o = []; a.each(e[r], function(e, n){o.push([n, t])}), n.aaSorting = o})}), zt("search()", function(t, e, r, o){var i = this.context; return t === n?0 !== i.length?i[0].oPreviousSearch.sSearch:n:this.iterator("table", function(n){n.oFeatures.bFilter && z(n, a.extend({}, n.oPreviousSearch, {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), 1)})}), Yt("columns().search()", "column().search()", function(t, e, r, o){return this.iterator("column", function(i, s){var l = i.aoPreSearchCols; return t === n?l[s].sSearch:void(i.oFeatures.bFilter && (a.extend(l[s], {sSearch:t + "", bRegex:null === e?!1:e, bSmart:null === r?!0:r, bCaseInsensitive:null === o?!0:o}), z(i, i.oPreviousSearch, 1)))})}), zt("state()", function(){return this.context.length?this.context[0].oSavedState:null}), zt("state.clear()", function(){return this.iterator("table", function(t){t.fnStateSaveCallback.call(t.oInstance, t, {})})}), zt("state.loaded()", function(){return this.context.length?this.context[0].oLoadedState:null}), zt("state.save()", function(){return this.iterator("table", function(t){Pt(t)})}), qt.versionCheck = qt.fnVersionCheck = function(t){for (var e, n, a = qt.version.split("."), r = t.split("."), o = 0, i = r.length; i > o; o++)if (e = parseInt(a[o], 10) || 0, n = parseInt(r[o], 10) || 0, e !== n)return e > n; return!0}, qt.isDataTable = qt.fnIsDataTable = function(t){var e = a(t).get(0), n = !1; return a.each(qt.settings, function(t, r){var o = r.nScrollHead?a("table", r.nScrollHead)[0]:null, i = r.nScrollFoot?a("table", r.nScrollFoot)[0]:null; (r.nTable === e || o === e || i === e) && (n = !0)}), n}, qt.tables = qt.fnTables = function(t){var e = !1; a.isPlainObject(t) && (e = t.api, t = t.visible); var n = a.map(qt.settings, function(e){return!t || t && a(e.nTable).is(":visible")?e.nTable:void 0}); return e?new $t(n):n}, qt.util = {throttle:mt, escapeRegex:tt}, qt.camelToHungarian = o, zt("$()", function(t, e){var n = this.rows(e).nodes(), r = a(n); return a([].concat(r.filter(t).toArray(), r.find(t).toArray()))}), a.each(["on", "one", "off"], function(t, e){zt(e + "()", function(){var t = Array.prototype.slice.call(arguments); t[0].match(/\.dt\b/) || (t[0] += ".dt"); var n = a(this.tables().nodes()); return n[e].apply(n, t), this})}), zt("clear()", function(){return this.iterator("table", function(t){L(t)})}), zt("settings()", function(){return new $t(this.context, this.context)}), zt("init()", function(){var t = this.context; return t.length?t[0].oInit:null}), zt("data()", function(){return this.iterator("table", function(t){return ce(t.aoData, "_aData")}).flatten()}), zt("destroy()", function(e){return e = e || !1, this.iterator("table", function(n){var r, o = n.nTableWrapper.parentNode, i = n.oClasses, s = n.nTable, l = n.nTBody, u = n.nTHead, c = n.nTFoot, f = a(s), d = a(l), h = a(n.nTableWrapper), p = a.map(n.aoData, function(t){return t.nTr}); n.bDestroying = !0, Wt(n, "aoDestroyCallback", "destroy", [n]), e || new $t(n).columns().visible(!0), h.unbind(".DT").find(":not(tbody *)").unbind(".DT"), a(t).unbind(".DT-" + n.sInstance), s != u.parentNode && (f.children("thead").detach(), f.append(u)), c && s != c.parentNode && (f.children("tfoot").detach(), f.append(c)), n.aaSorting = [], n.aaSortingFixed = [], Ft(n), a(p).removeClass(n.asStripeClasses.join(" ")), a("th, td", u).removeClass(i.sSortable + " " + i.sSortableAsc + " " + i.sSortableDesc + " " + i.sSortableNone), n.bJUI && (a("th span." + i.sSortIcon + ", td span." + i.sSortIcon, u).detach(), a("th, td", u).each(function(){var t = a("div." + i.sSortJUIWrapper, this); a(this).append(t.contents()), t.detach()})), d.children().detach(), d.append(p); var g = e?"remove":"detach"; f[g](), h[g](), !e && o && (o.insertBefore(s, n.nTableReinsertBefore), f.css("width", n.sDestroyWidth).removeClass(i.sTable), r = n.asDestroyStripes.length, r && d.children().each(function(t){a(this).addClass(n.asDestroyStripes[t % r])})); var b = a.inArray(n, qt.settings); - 1 !== b && qt.settings.splice(b, 1)})}), a.each(["column", "row", "cell"], function(t, e){zt(e + "s().every()", function(t){return this.iterator(e, function(a, r, o, i, s){t.call(new $t(a)[e](r, "cell" === e?o:n), r, o, i, s)})})}), zt("i18n()", function(t, e, r){var o = this.context[0], i = I(t)(o.oLanguage); return i === n && (i = e), r !== n && a.isPlainObject(i) && (i = i[r] !== n?i[r]:i._), i.replace("%d", r)}), qt.version = "1.10.9", qt.settings = [], qt.models = {}, qt.models.oSearch = {bCaseInsensitive:!0, sSearch:"", bRegex:!1, bSmart:!0}, qt.models.oRow = {nTr:null, anCells:null, _aData:[], _aSortData:null, _aFilterData:null, _sFilterRow:null, _sRowStripe:"", src:null, idx: - 1}, qt.models.oColumn = {idx:null, aDataSort:null, asSorting:null, bSearchable:null, bSortable:null, bVisible:null, _sManualType:null, _bAttrSrc:!1, fnCreatedCell:null, fnGetData:null, fnSetData:null, mData:null, mRender:null, nTh:null, nTf:null, sClass:null, sContentPadding:null, sDefaultContent:null, sName:null, sSortDataType:"std", sSortingClass:null, sSortingClassJUI:null, sTitle:null, sType:null, sWidth:null, sWidthOrig:null}, qt.defaults = {aaData:null, aaSorting:[[0, "asc"]], aaSortingFixed:[], ajax:null, aLengthMenu:[10, 25, 50, 100], aoColumns:null, aoColumnDefs:null, aoSearchCols:[], asStripeClasses:null, bAutoWidth:!0, bDeferRender:!1, bDestroy:!1, bFilter:!0, bInfo:!0, bJQueryUI:!1, bLengthChange:!0, bPaginate:!0, bProcessing:!1, bRetrieve:!1, bScrollCollapse:!1, bServerSide:!1, bSort:!0, bSortMulti:!0, bSortCellsTop:!1, bSortClasses:!0, bStateSave:!1, fnCreatedRow:null, fnDrawCallback:null, fnFooterCallback:null, fnFormatNumber:function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.oLanguage.sThousands)}, fnHeaderCallback:null, fnInfoCallback:null, fnInitComplete:null, fnPreDrawCallback:null, fnRowCallback:null, fnServerData:null, fnServerParams:null, fnStateLoadCallback:function(t){try{return JSON.parse(( - 1 === t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_" + t.sInstance + "_" + location.pathname))} catch (e){}}, fnStateLoadParams:null, fnStateLoaded:null, fnStateSaveCallback:function(t, e){try{( - 1 === t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_" + t.sInstance + "_" + location.pathname, JSON.stringify(e))} catch (n){}}, fnStateSaveParams:null, iStateDuration:7200, iDeferLoading:null, iDisplayLength:10, iDisplayStart:0, iTabIndex:0, oClasses:{}, oLanguage:{oAria:{sSortAscending:": activate to sort column ascending", sSortDescending:": activate to sort column descending"}, oPaginate:{sFirst:"First", sLast:"Last", sNext:"Next", sPrevious:"Previous"}, sEmptyTable:"No data available in table", sInfo:"Showing _START_ to _END_ of _TOTAL_ entries", sInfoEmpty:"Showing 0 to 0 of 0 entries", sInfoFiltered:"(filtered from _MAX_ total entries)", sInfoPostFix:"", sDecimal:"", sThousands:",", sLengthMenu:"Show _MENU_ entries", sLoadingRecords:"Loading...", sProcessing:"Processing...", sSearch:"Search:", sSearchPlaceholder:"", sUrl:"", sZeroRecords:"No matching records found"}, oSearch:a.extend({}, qt.models.oSearch), sAjaxDataProp:"data", sAjaxSource:null, sDom:"lfrtip", searchDelay:null, sPaginationType:"simple_numbers", sScrollX:"", sScrollXInner:"", sScrollY:"", sServerMethod:"GET", renderer:null, rowId:"DT_RowId"}, r(qt.defaults), qt.defaults.column = {aDataSort:null, iDataSort: - 1, asSorting:["asc", "desc"], bSearchable:!0, bSortable:!0, bVisible:!0, fnCreatedCell:null, mData:null, mRender:null, sCellType:"td", sClass:"", sContentPadding:"", sDefaultContent:null, sName:"", sSortDataType:"std", sTitle:null, sType:null, sWidth:null}, r(qt.defaults.column), qt.models.oSettings = {oFeatures:{bAutoWidth:null, bDeferRender:null, bFilter:null, bInfo:null, bLengthChange:null, bPaginate:null, bProcessing:null, bServerSide:null, bSort:null, bSortMulti:null, bSortClasses:null, bStateSave:null}, oScroll:{bCollapse:null, iBarWidth:0, sX:null, sXInner:null, sY:null}, oLanguage:{fnInfoCallback:null}, oBrowser:{bScrollOversize:!1, bScrollbarLeft:!1, bBounding:!1, barWidth:0}, ajax:null, aanFeatures:[], aoData:[], aiDisplay:[], aiDisplayMaster:[], aIds:{}, aoColumns:[], aoHeader:[], aoFooter:[], oPreviousSearch:{}, aoPreSearchCols:[], aaSorting:null, aaSortingFixed:[], asStripeClasses:null, asDestroyStripes:[], sDestroyWidth:0, aoRowCallback:[], aoHeaderCallback:[], aoFooterCallback:[], aoDrawCallback:[], aoRowCreatedCallback:[], aoPreDrawCallback:[], aoInitComplete:[], aoStateSaveParams:[], aoStateLoadParams:[], aoStateLoaded:[], sTableId:"", nTable:null, nTHead:null, nTFoot:null, nTBody:null, nTableWrapper:null, bDeferLoading:!1, bInitialised:!1, aoOpenRows:[], sDom:null, searchDelay:null, sPaginationType:"two_button", iStateDuration:0, aoStateSave:[], aoStateLoad:[], oSavedState:null, oLoadedState:null, sAjaxSource:null, sAjaxDataProp:null, bAjaxDataGet:!0, jqXHR:null, json:n, oAjaxData:n, fnServerData:null, aoServerParams:[], sServerMethod:null, fnFormatNumber:null, aLengthMenu:null, iDraw:0, bDrawing:!1, iDrawError: - 1, _iDisplayLength:10, _iDisplayStart:0, _iRecordsTotal:0, _iRecordsDisplay:0, bJUI:null, oClasses:{}, bFiltered:!1, bSorted:!1, bSortCellsTop:null, oInit:null, aoDestroyCallback:[], fnRecordsTotal:function(){return"ssp" == Bt(this)?1 * this._iRecordsTotal:this.aiDisplayMaster.length}, fnRecordsDisplay:function(){return"ssp" == Bt(this)?1 * this._iRecordsDisplay:this.aiDisplay.length}, fnDisplayEnd:function(){var t = this._iDisplayLength, e = this._iDisplayStart, n = e + t, a = this.aiDisplay.length, r = this.oFeatures, o = r.bPaginate; return r.bServerSide?o === !1 || - 1 === t?e + a:Math.min(e + t, this._iRecordsDisplay):!o || n > a || - 1 === t?a:n}, oInstance:null, sInstance:null, iTabIndex:0, nScrollHead:null, nScrollFoot:null, aLastSort:[], oPlugins:{}, rowIdFn:null, rowId:null}, qt.ext = Gt = {buttons:{}, classes:{}, errMode:"alert", feature:[], search:[], selector:{cell:[], column:[], row:[]}, internal:{}, legacy:{ajax:null}, pager:{}, renderer:{pageButton:{}, header:{}}, order:{}, type:{detect:[], search:{}, order:{}}, _unique:0, fnVersionCheck:qt.fnVersionCheck, iApiIndex:0, oJUIClasses:{}, sVersion:qt.version}, a.extend(Gt, {afnFiltering:Gt.search, aTypes:Gt.type.detect, ofnSearch:Gt.type.search, oSort:Gt.type.order, afnSortData:Gt.order, aoFeatures:Gt.feature, oApi:Gt.internal, oStdClasses:Gt.classes, oPagination:Gt.pager}), a.extend(qt.ext.classes, {sTable:"dataTable", sNoFooter:"no-footer", sPageButton:"paginate_button", sPageButtonActive:"current", sPageButtonDisabled:"disabled", sStripeOdd:"odd", sStripeEven:"even", sRowEmpty:"dataTables_empty", sWrapper:"dataTables_wrapper", sFilter:"dataTables_filter", sInfo:"dataTables_info", sPaging:"dataTables_paginate paging_", sLength:"dataTables_length", sProcessing:"dataTables_processing", sSortAsc:"sorting_asc", sSortDesc:"sorting_desc", sSortable:"sorting", sSortableAsc:"sorting_asc_disabled", sSortableDesc:"sorting_desc_disabled", sSortableNone:"sorting_disabled", sSortColumn:"sorting_", sFilterInput:"", sLengthSelect:"", sScrollWrapper:"dataTables_scroll", sScrollHead:"dataTables_scrollHead", sScrollHeadInner:"dataTables_scrollHeadInner", sScrollBody:"dataTables_scrollBody", sScrollFoot:"dataTables_scrollFoot", sScrollFootInner:"dataTables_scrollFootInner", sHeaderTH:"", sFooterTH:"", sSortJUIAsc:"", sSortJUIDesc:"", sSortJUI:"", sSortJUIAscAllowed:"", sSortJUIDescAllowed:"", sSortJUIWrapper:"", sSortIcon:"", sJUIHeader:"", sJUIFooter:""}), function(){var t = ""; t = ""; var e = t + "ui-state-default", n = t + "css_right ui-icon ui-icon-", r = t + "fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix"; a.extend(qt.ext.oJUIClasses, qt.ext.classes, {sPageButton:"fg-button ui-button " + e, sPageButtonActive:"ui-state-disabled", sPageButtonDisabled:"ui-state-disabled", sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", sSortAsc:e + " sorting_asc", sSortDesc:e + " sorting_desc", sSortable:e + " sorting", sSortableAsc:e + " sorting_asc_disabled", sSortableDesc:e + " sorting_desc_disabled", sSortableNone:e + " sorting_disabled", sSortJUIAsc:n + "triangle-1-n", sSortJUIDesc:n + "triangle-1-s", sSortJUI:n + "carat-2-n-s", sSortJUIAscAllowed:n + "carat-1-n", sSortJUIDescAllowed:n + "carat-1-s", sSortJUIWrapper:"DataTables_sort_wrapper", sSortIcon:"DataTables_sort_icon", sScrollHead:"dataTables_scrollHead " + e, sScrollFoot:"dataTables_scrollFoot " + e, sHeaderTH:e, sFooterTH:e, sJUIHeader:r + " ui-corner-tl ui-corner-tr", sJUIFooter:r + " ui-corner-bl ui-corner-br"})}(); var Xe = qt.ext.pager; a.extend(Xe, {simple:function(t, e){return["previous", "next"]}, full:function(t, e){return["first", "previous", "next", "last"]}, numbers:function(t, e){return[Jt(t, e)]}, simple_numbers:function(t, e){return["previous", Jt(t, e), "next"]}, full_numbers:function(t, e){return["first", "previous", Jt(t, e), "next", "last"]}, _numbers:Jt, numbers_length:7}), a.extend(!0, qt.ext.renderer, {pageButton:{_:function(t, n, r, o, i, s){var l, u, c, f = t.oClasses, d = t.oLanguage.oPaginate, h = 0, p = function(e, n){var o, c, g, b, v = function(e){dt(t, e.data.action, !0)}; for (o = 0, c = n.length; c > o; o++)if (b = n[o], a.isArray(b)){var S = a("<" + (b.DT_el || "div") + "/>").appendTo(e); p(S, b)} else{switch (l = null, u = "", b){case"ellipsis":e.append('<span class="ellipsis">…</span>'); break; case"first":l = d.sFirst, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"previous":l = d.sPrevious, u = b + (i > 0?"":" " + f.sPageButtonDisabled); break; case"next":l = d.sNext, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; case"last":l = d.sLast, u = b + (s - 1 > i?"":" " + f.sPageButtonDisabled); break; default:l = b + 1, u = i === b?f.sPageButtonActive:""}null !== l && (g = a("<a>", {"class":f.sPageButton + " " + u, "aria-controls":t.sTableId, "data-dt-idx":h, tabindex:t.iTabIndex, id:0 === r && "string" == typeof b?t.sTableId + "_" + b:null}).html(l).appendTo(e), Ot(g, {action:b}, v), h++)}}; try{c = a(n).find(e.activeElement).data("dt-idx")} catch (g){}p(a(n).empty(), o), c && a(n).find("[data-dt-idx=" + c + "]").focus()}}}), a.extend(qt.ext.type.detect, [function(t, e){var n = e.oLanguage.sDecimal; return se(t, n)?"num" + n:null}, function(t, e){if (t && !(t instanceof Date) && (!te.test(t) || !ee.test(t)))return null; var n = Date.parse(t); return null !== n && !isNaN(n) || re(t)?"date":null}, function(t, e){var n = e.oLanguage.sDecimal; return se(t, n, !0)?"num-fmt" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n)?"html-num" + n:null}, function(t, e){var n = e.oLanguage.sDecimal; return ue(t, n, !0)?"html-num-fmt" + n:null}, function(t, e){return re(t) || "string" == typeof t && - 1 !== t.indexOf("<")?"html":null}]), a.extend(qt.ext.type.search, {html:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " ").replace(Kt, ""):""}, string:function(t){return re(t)?t:"string" == typeof t?t.replace(Zt, " "):t}}); var Ve = function(t, e, n, a){return 0 === t || t && "-" !== t?(e && (t = ie(t, e)), t.replace && (n && (t = t.replace(n, "")), a && (t = t.replace(a, ""))), 1 * t): - (1 / 0)}; return a.extend(Gt.type.order, {"date-pre":function(t){return Date.parse(t) || 0}, "html-pre":function(t){return re(t)?"":t.replace?t.replace(/<.*?>/g, "").toLowerCase():t + ""}, "string-pre":function(t){return re(t)?"":"string" == typeof t?t.toLowerCase():t.toString?t.toString():""}, "string-asc":function(t, e){return e > t? - 1:t > e?1:0}, "string-desc":function(t, e){return e > t?1:t > e? - 1:0}}), Xt(""), a.extend(!0, qt.ext.renderer, {header:{_:function(t, e, n, r){a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(n.sSortingClass + " " + r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass)}})}, jqueryui:function(t, e, n, r){a("<div/>").addClass(r.sSortJUIWrapper).append(e.contents()).append(a("<span/>").addClass(r.sSortIcon + " " + n.sSortingClassJUI)).appendTo(e), a(t.nTable).on("order.dt.DT", function(a, o, i, s){if (t === o){var l = n.idx; e.removeClass(r.sSortAsc + " " + r.sSortDesc).addClass("asc" == s[l]?r.sSortAsc:"desc" == s[l]?r.sSortDesc:n.sSortingClass), e.find("span." + r.sSortIcon).removeClass(r.sSortJUIAsc + " " + r.sSortJUIDesc + " " + r.sSortJUI + " " + r.sSortJUIAscAllowed + " " + r.sSortJUIDescAllowed).addClass("asc" == s[l]?r.sSortJUIAsc:"desc" == s[l]?r.sSortJUIDesc:n.sSortingClassJUI)}})}}}), qt.render = {number:function(t, e, n, a, r){return{display:function(o){if ("number" != typeof o && "string" != typeof o)return o; var i = 0 > o?"-":""; o = Math.abs(parseFloat(o)); var s = parseInt(o, 10), l = n?e + (o - s).toFixed(n).substring(2):""; return i + (a || "") + s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, t) + l + (r || "")}}}}, a.extend(qt.ext.internal, {_fnExternApiFunc:Vt, _fnBuildAjax:J, _fnAjaxUpdate:X, _fnAjaxParameters:V, _fnAjaxUpdateDraw:q, _fnAjaxDataSrc:G, _fnAddColumn:f, _fnColumnOptions:d, _fnAdjustColumnSizing:h, _fnVisibleToColumnIndex:p, _fnColumnIndexToVisible:g, _fnVisbleColumns:b, _fnGetColumns:v, _fnColumnTypes:S, _fnApplyColumnDefs:m, _fnHungarianMap:r, _fnCamelToHungarian:o, _fnLanguageCompat:i, _fnBrowserDetect:u, _fnAddData:D, _fnAddTr:y, _fnNodeToDataIndex:_, _fnNodeToColumnIndex:T, _fnGetCellData:w, _fnSetCellData:C, _fnSplitObjNotation:x, _fnGetObjectDataFn:I, _fnSetObjectDataFn:A, _fnGetDataMaster:F, _fnClearTable:L, _fnDeleteIndex:P, _fnInvalidate:R, _fnGetRowElements:j, _fnCreateTr:H, _fnBuildHead:k, _fnDrawHead:O, _fnDraw:M, _fnReDraw:W, _fnAddOptionsHtml:U, _fnDetectHeader:E, _fnGetUniqueThs:B, _fnFeatureHtmlFilter:$, _fnFilterComplete:z, _fnFilterCustom:Y, _fnFilterColumn:Q, _fnFilter:Z, _fnFilterCreateSearch:K, _fnEscapeRegex:tt, _fnFilterData:et, _fnFeatureHtmlInfo:rt, _fnUpdateInfo:ot, _fnInfoMacros:it, _fnInitialise:st, _fnInitComplete:lt, _fnLengthChange:ut, _fnFeatureHtmlLength:ct, _fnFeatureHtmlPaginate:ft, _fnPageChange:dt, _fnFeatureHtmlProcessing:ht, _fnProcessingDisplay:pt, _fnFeatureHtmlTable:gt, _fnScrollDraw:bt, _fnApplyToChildren:vt, _fnCalculateColumnWidths:St, _fnThrottle:mt, _fnConvertToWidth:Dt, _fnGetWidestNode:yt, _fnGetMaxLenString:_t, _fnStringToCss:Tt, _fnSortFlatten:wt, _fnSort:Ct, _fnSortAria:xt, _fnSortListener:It, _fnSortAttachListener:At, _fnSortingClasses:Ft, _fnSortData:Lt, _fnSaveState:Pt, _fnLoadState:Rt, _fnSettingsFromNode:jt, _fnLog:Ht, _fnMap:Nt, _fnBindAction:Ot, _fnCallbackReg:Mt, _fnCallbackFire:Wt, _fnLengthOverflow:Ut, _fnRenderer:Et, _fnDataSource:Bt, _fnRowAttributes:N, _fnCalculateEnd:function(){}}), a.fn.dataTable = qt, a.fn.dataTableSettings = qt.settings, a.fn.dataTableExt = qt.ext, a.fn.DataTable = function(t){return a(this).dataTable(t).api()}, a.each(qt, function(t, e){a.fn.DataTable[t] = e}), a.fn.dataTable})}(window, document), function(t, e, n){var a = function(t, n){"use strict"; t.extend(!0, n.defaults, {dom:"<'row'<'col-sm-5'><'col-sm-4'f><'col-sm-3'l>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>", renderer:"bootstrap"}), t.extend(n.ext.classes, {sWrapper:"dataTables_wrapper form-inline dt-bootstrap", sFilterInput:"form-control input-sm", sLengthSelect:"form-control input-sm"}), n.ext.renderer.pageButton.bootstrap = function(a, r, o, i, s, l){var u, c, f, d = new n.Api(a), h = a.oClasses, p = a.oLanguage.oPaginate, g = 0, b = function(e, n){var r, i, f, v, S = function(e){e.preventDefault(), t(e.currentTarget).hasClass("disabled") || d.page(e.data.action).draw("page")}; for (r = 0, i = n.length; i > r; r++)if (v = n[r], t.isArray(v))b(e, v); else{switch (u = "", c = "", v){case"ellipsis":u = "…", c = "disabled"; break; case"first":u = p.sFirst, c = v + (s > 0?"":" disabled"); break; case"previous":u = p.sPrevious, c = v + (s > 0?"":" disabled"); break; case"next":u = p.sNext, c = v + (l - 1 > s?"":" disabled"); break; case"last":u = p.sLast, c = v + (l - 1 > s?"":" disabled"); break; default:u = v + 1, c = s === v?"active":""}u && (f = t("<li>", {"class":h.sPageButton + " " + c, id:0 === o && "string" == typeof v?a.sTableId + "_" + v:null}).append(t("<a>", {href:"#", "aria-controls":a.sTableId, "data-dt-idx":g, tabindex:a.iTabIndex}).html(u)).appendTo(e), a.oApi._fnBindAction(f, {action:v}, S), g++)}}; try{f = t(r).find(e.activeElement).data("dt-idx")} catch (v){}b(t(r).empty().html('<ul class="pagination"/>').children("ul"), i), f && t(r).find("[data-dt-idx=" + f + "]").focus()}, n.TableTools && (t.extend(!0, n.TableTools.classes, {container:"DTTT btn-group", buttons:{normal:"btn btn-default", disabled:"disabled"}, collection:{container:"DTTT_dropdown dropdown-menu", buttons:{normal:"", disabled:"disabled"}}, print:{info:"DTTT_print_info"}, select:{row:"active"}}), t.extend(!0, n.TableTools.DEFAULTS.oTags, {collection:{container:"ul", button:"li", liner:"a"}}))}; "function" == typeof define && define.amd?define(["jquery", "datatables"], a):"object" == typeof exports?a(require("jquery"), require("datatables")):jQuery && a(jQuery, jQuery.fn.dataTable)}(window, document);
|
assets/global/plugins/icons/fonts/icons.svg
CHANGED
@@ -9,10 +9,10 @@
|
|
9 |
</metadata>
|
10 |
<defs>
|
11 |
<font id="Simple-Line-Icons" horiz-adv-x="512" >
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
c-2.72,22.184-7.376,51.296-12,92.296C 382.72,433.296, 326.784,480, 256.128,480C 256.088,480, 256.040,480, 256,480c-0.048,0-0.096,0-0.128,0
|
17 |
C 185.216,480, 129.28,433.296, 121.784,366.8c-4.624-41-9.28-70.112-12-92.296c-7-57.168-35.672-101.168-35.672-101.168
|
18 |
c 6-16.376, 78.544-19.328, 97.128-28.64L 31.984,78.656c0,0-31.984-11.232-31.984-37.736l0-42.264 C0-19.032, 14.312-32, 31.984-32l 448.032,0
|
@@ -24,7 +24,7 @@
|
|
24 |
c 1.408-10.088, 2.672-19.2, 3.656-27.296c 3.984-32.512, 14.112-61.256, 23.264-81.816c-7.064-1.408-14.344-2.72-19.672-3.656
|
25 |
c-22.456-3.888-36.784-6.576-47.624-12.016c-10.936-5.488-17.784-16.736-17.656-28.968c 0.144-12.232, 7.232-23.344, 18.296-28.576l 139.248-66.032
|
26 |
c 1-0.488, 1.656-0.784, 2.72-1.16c 4.92-1.872, 10.248-5.968, 10.968-7.672L 480.016,0L 32,0 z" />
|
27 |
-
|
28 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.344-48.728,116.592L 143.832,368
|
29 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.68
|
30 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 47.96-22.752l 7.904,31.936l-42.504,19.888
|
@@ -32,7 +32,7 @@
|
|
32 |
c0-34.936, 15.944-105.624, 60.696-141.544L 32.008,80.184c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 351.96,0 l0,32
|
33 |
L 32.032,0.184L 32.032,32.656 z M 495.968,64.064l-48,0 l0,48 c0,8.84-7.168,16-16,16s-16-7.16-16-16l0-48 l-48,0 c-8.832,0-16-7.16-16-16c0-8.832, 7.168-16, 16-16l 48,0 l0-48
|
34 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48 l 48,0 c 8.832,0, 16,7.168, 16,16C 511.968,56.904, 504.808,64.064, 495.968,64.064z" />
|
35 |
-
|
36 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96
|
37 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.968-45.768, 111.968-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688
|
38 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 81.12-38.624l 19.072,27.032l-86.832,40.672
|
@@ -41,7 +41,7 @@
|
|
41 |
l-26,31.992L 31.752,0.12z M 506.104,118.248c-6.952,5.456-17.016,4.216-22.456-2.736l-68.424-104.352l-42.528,42.536
|
42 |
c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.376,0-22.624l 56.568-56.568c 6.248-6.248, 16.376-6.248, 22.624,0
|
43 |
c 1.52,1.512, 2.656,3.272, 3.44,5.144l 76.152,116.152C 514.288,102.752, 513.064,112.808, 506.104,118.248z" />
|
44 |
-
|
45 |
c0-34.936, 15.944-105.616, 60.696-141.536L 31.72,80.216c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 303.968,0 l0,32
|
46 |
L 31.744,0.216l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312c 10.072,4.624, 17.024,14.168, 18.376,25.168
|
47 |
c 1.36,11-3.080,21.912-11.728,28.848c-33.24,26.688-48.728,85.344-48.728,116.6l0,79.96 c0,33.432, 58.2,79.928, 112.064,79.928
|
@@ -51,7 +51,7 @@
|
|
51 |
c-6.248,6.24-16.384,6.24-22.624,0c-6.248-6.248-6.248-16.392,0-22.624l 45.248-45.256l-45.248-45.248c-6.248-6.24-6.248-16.384,0-22.632
|
52 |
c 6.24-6.232, 16.376-6.232, 22.624,0l 45.248,45.256l 45.256-45.256c 6.24-6.232, 16.376-6.232, 22.616,0c 6.248,6.248, 6.248,16.392,0,22.632
|
53 |
L 462.312,40.6z" />
|
54 |
-
|
55 |
M 508.656,419.184c-1.512,7.44-8.080,12.784-15.672,12.784l-78.312,0 L 414.672,447.936 c0,8.84-7.16,16-16,16L 110.904,463.936 c-8.84,0-16-7.16-16-16l0-15.968 L 19.016,431.968
|
56 |
c-7.592,0-14.16-5.344-15.672-12.784c-0.472-2.312-11.2-58.376, 19.952-96.576c 17.92-21.96, 45.304-33.464, 81.248-34.488
|
57 |
C 125.040,227.544, 176.576,182.688, 238.64,176l0-111.456 l-47.888,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 129.344,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16
|
@@ -60,15 +60,15 @@
|
|
60 |
c0-8.648, 0.8-17.080, 1.968-25.384C 75.032,322.608, 58.648,329.984, 48.2,342.72z M 382.672,345.952c0-76.544-57.36-138.832-127.856-138.832
|
61 |
c-70.528,0-127.904,62.28-127.904,138.832L 126.912,431.936 l 255.768,0 L 382.68,345.952 z M 463.8,342.72c-10.84-13.216-28.016-20.744-51.136-22.432
|
62 |
c 1.192,8.392, 2.008,16.92, 2.008,25.664l0,54.016 l 64,0 C 479.392,385.408, 477.968,359.968, 463.8,342.72z" />
|
63 |
-
|
64 |
c 26.512,0, 48,21.488, 48,48L 400.072,432 C 400.072,458.512, 378.584,480, 352.072,480z M 368.072,16c0-8.832-7.168-16-16-16L 159.928,0 c-8.832,0-16,7.168-16,16L 143.928,432
|
65 |
c0,8.832, 7.168,16, 16,16l 192.144,0 c 8.832,0, 16-7.168, 16-16L 368.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.288-31.92, 31.92-31.92
|
66 |
c 17.64,0, 31.92,14.304, 31.92,31.92S 273.664,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
67 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
68 |
-
|
69 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 272,47.904 l0,48.104 l 208,0 c 17.592,0, 32,14.4, 32,31.992L 512,400.096
|
70 |
C 512,417.696, 497.592,432.096, 480,432.096z M 480,128L 32,128 L 32,400.096 l 448,0 L 480,128 z" />
|
71 |
-
|
72 |
l 0.832-14.328c 1.752-29.984, 5-83.72, 7.8-129.784c 2.472-41, 4.816-79.72, 4.968-83.016c 0.080-2.264, 0.112-2.8-2-5.344
|
73 |
c-4.72-5.736-13.528-15.456-20.952-23.512c-11.512,31.016-35.704,96.528-49.064,133.2l-17.168,47.184l-35.512-35.512L 168.8,105.28l-9.096-9.080
|
74 |
l-0.28-12.84c-0.216-10.248-0.168-28.64-0.144-44.856c 0.032-11.296, 0.064-21.56-0.016-27.216c-0.144-0.264, 2.184-0.576, 1.968-0.952
|
@@ -88,7 +88,7 @@
|
|
88 |
c 0.688-0.080, 1.392-0.112, 2.080-0.112c 6.312,0, 12.856,2.968, 18.216,8.328c0,0, 23.128,24.544, 32.952,36.488
|
89 |
c 9.84,11.936, 9.456,22.128, 9.264,26.936c-0.080,3.328-9.344,154.408-12.784,213.408l 105.328,105.328c 37.328,37.344, 31.392,82.344, 17.528,96.184
|
90 |
C 494.688,474.392, 482.296,479.048, 467.16,479.048L 467.16,479.048z" />
|
91 |
-
|
92 |
l0-64.376 L 56.592,287.624 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,256.28 l0-64.72 L 56.248,191.56 c-8.656,0-15.672-7.016-15.672-15.672
|
93 |
s 7.016-15.672, 15.672-15.672L 72.56,160.216 l0-64.232 L 56.248,95.984 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,64.64 L 72.56,0
|
94 |
c0-26.512, 20.768-32, 32.264-32l 319.752,0 c 26.512,0, 48,21.488, 48,48L 472.576,432 C 472.576,458.512, 451.096,480, 424.576,480z M 104.56,0l0,64.64 l 16.672,0
|
@@ -96,7 +96,7 @@
|
|
96 |
s-7.016,15.672-15.672,15.672L 104.56,191.56 l0,64.72 l 17.016,0 c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,287.624 L 104.56,352 l 15.512,0
|
97 |
c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,383.344 L 104.56,447 c0,0.376, 0.032,0.688, 0.080,0.968
|
98 |
C 104.888,447.984, 105.2,448, 105.576,448l 255,0 l0-448 L 104.56,0 z M 440.576,16c0-8.832-7.168-16-16-16l-32,0 L 392.576,448 l 32,0 c 8.832,0, 16-7.168, 16-16L 440.576,16 z" />
|
99 |
-
|
100 |
c-8.456,7.424-19,16.672-22.672,17.952c-0.112,0-1.856,0.080-1.968,0.096c-0.584-0.048-2.072-0.344-2.224-0.36
|
101 |
c-2.536-1.032-11.544-8.784-18.784-15c-6.568-5.64-14.056-12.080-22.52-18.688l-1.544-1.184c-21.736-16.968-48.792-38.080-96.576-38.080
|
102 |
c-35.496,0-70.464,16.064-91.288,41.936c-13.96,17.344-28.648,47.512-19.336,92.736c 1.128,5.472, 5.008,9.952, 10.216,11.816
|
@@ -114,24 +114,24 @@
|
|
114 |
c-13.696-6.096-27.552-9.184-41.152-9.184c-10.2,0-19.032,1.704-26.312,4.016c-0.016-17.36, 5.056-32.456, 15.168-45.016
|
115 |
c 14.968-18.576, 40.52-30.128, 66.72-30.128c 37,0, 57.448,15.968, 77.232,31.408L 192,176.392c 8.024,6.264, 15.12,12.376, 21.344,17.72
|
116 |
c 14.256,12.248, 23.664,20.344, 33.824,22.144l0,0C 247.176,216.248, 252.016,217.064, 255.368,217.064z" />
|
117 |
-
|
118 |
C 112.040,32.112, 177.728-32, 256.792-32s 143.176,64.112, 143.176,143.168L 399.968,336.832 C 399.968,415.888, 335.856,480, 256.792,480z M 367.968,111.168
|
119 |
C 367.968,49.872, 318.096,0, 256.792,0s-112.752,49.872-112.752,111.168L 144.040,336.832 C 144.040,398.128, 195.496,448, 256.792,448
|
120 |
s 111.176-49.872, 111.176-111.168L 367.968,111.168 z M 256.168,384c-8.832,0-16-7.168-16-16l0-80 c0-8.832, 7.168-16, 16-16c 8.832,0, 16,7.168, 16,16L 272.168,368
|
121 |
C 272.168,376.832, 265,384, 256.168,384z" />
|
122 |
-
|
123 |
c0-0.024, 0.016-0.048, 0.016-0.072l0-198.76 c0-48.16-27.168-87.328-75.328-87.328s-84.328,39.168-84.328,87.328L 176.192,449.912 l-0.048,0 L 176.144,464.416
|
124 |
c0,8.84-7.16,16-16,16L 47.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328 c0-0.328, 0.168-0.6, 0.184-0.92l0-205.248
|
125 |
c0-124.456, 99.392-225.328, 223.832-225.328s 224.328,100.872, 224.328,225.328L 480.176,449.912 L 480.144,449.912 z M 448.144,448.416l0-64.168 L 368.016,384.248 L 368.016,448.416 L 448.144,448.416 z
|
126 |
M 144.144,448.416l0-64.168 L 64.016,384.248 L 64.016,448.416 L 144.144,448.416 z M 255.84-0.416c-106.608,0-191.832,86.736-191.832,193.328L 64.008,352.248 l 80.168,0 l0-151.992
|
127 |
c0-65.904, 50.424-119.328, 116.328-119.328S 367.84,134.352, 367.84,200.256L 367.84,352.248 l 80.328,0 l0-159.336 C 448.168,86.32, 362.456-0.416, 255.84-0.416z" />
|
128 |
-
|
129 |
M 297.696,479.64c-0.864,0-1.728-0.032-2.576-0.096c-5.648-0.456-9.392-2.344-13.832-5.328c-2.464-1.64-4.72-3.64-6.696-5.968
|
130 |
c-0.584-0.688-1.136-1.408-1.648-2.144L 93.64,228.8c-7.080-9.704-8.12-22.512-2.68-33.216c 5.432-10.704, 16.416-17.488, 28.456-17.576
|
131 |
l 92.368-0.672l-29.040-171.096c-2.76-14.704, 5.080-29.36, 18.88-35.264c 4.112-1.768, 8.432-2.608, 12.696-2.608c 10.056,0, 18.32,4.704, 24.52,13.2
|
132 |
L 418.368,238.72c 7.080,9.704, 8.112,22.528, 2.68,33.216c-5.432,10.704-16.416,17.488-28.456,17.576l-92.368,0.16l 28.728,150.44
|
133 |
c 0.6,2.424, 0.912,4.936, 0.912,7.528c0,17.312-13.784,31.424-31.032,31.984C 298.448,479.64, 298.072,479.64, 297.696,479.64L 297.696,479.64z" />
|
134 |
-
|
135 |
c-0.504,0-1-0.016-1.504-0.016c-76.832,0-109.968,70.184-111.344,73.2c-3.656,8-13.096,11.56-21.16,7.936
|
136 |
c-8.048-3.64-11.624-13.104-7.984-21.168c 1.704-3.784, 42.688-91.968, 140.424-91.968c 0.64,0, 1.296,0.016, 1.936,0.016
|
137 |
c 101.936,1.2, 141.92,88.328, 143.56,92.032C 402.336,163.376, 398.696,172.832, 390.632,176.424z M 256,480C 114.608,480,0,365.392,0,224
|
@@ -139,7 +139,7 @@
|
|
139 |
M 175.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912c-17.64,0-31.92-14.296-31.92-31.912
|
140 |
S 158.112,240.088, 175.752,240.088z M 335.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912
|
141 |
c-17.64,0-31.92-14.296-31.92-31.912S 318.112,240.088, 335.752,240.088z" />
|
142 |
-
|
143 |
l-141.608,75.776c 1.512,5.488, 2.392,11.232, 2.392,17.192c0,35.624-28.872,64.504-64.504,64.504c-7.312,0-14.312-1.272-20.856-3.512
|
144 |
L 150.336,421.448C 181.832,438.368, 217.808,448, 256,448C 379.512,448, 480,347.512, 480,224z M 256,256.496c 17.92,0, 32.504-14.576, 32.504-32.504
|
145 |
S 273.92,191.496, 256,191.496S 223.504,206.080, 223.504,224S 238.080,256.496, 256,256.496z M 123.288,404.312l 85.088-136.92
|
@@ -147,7 +147,7 @@
|
|
147 |
c0,31.84, 6.72,62.128, 18.752,89.584l 142.184-76.080c-0.928-4.36-1.44-8.864-1.44-13.504c0-35.624, 28.872-64.504, 64.504-64.504
|
148 |
c 6.2,0, 12.176,0.92, 17.848,2.552l 85.096-136.896C 328.104,9.128, 293.112,0, 256,0C 132.488,0, 32,100.488, 32,224z M 386.224,41.92
|
149 |
L 301.472,178.264c 0.248,0.248, 0.48,0.512, 0.728,0.768l 142.144-76.072C 428.968,79.144, 409.224,58.416, 386.224,41.92z" />
|
150 |
-
|
151 |
c-4.672,4.472-12.224,4.472-16.912,0l-2.744-4.032c-4.672-4.472-3.152-11.704, 1.52-16.168l 38.232-34.672L 273.248,240.248 L 273.248,426.92 l 34.672-38.232
|
152 |
c 4.472-4.672, 11.704-6.192, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.24,0,16.92l-56.584,61.984
|
153 |
c-1.376,2.776-3.504,5.072-6.16,6.648l-0.712,0.744c-2.216,2.336-5.168,3.504-8.112,3.488c-2.952,0.016-5.888-1.152-8.144-3.488
|
@@ -162,15 +162,15 @@
|
|
162 |
c-4.472,4.672-11.704,3.152-16.168-1.52l-34.672-38.232L 273.256,208.248 L 460.24,208.248 l-38.552-34.576c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032
|
163 |
c 4.688-4.464, 12.248-4.464, 16.912,0l 63.872,57.752c 0.088,0.088, 0.184,0.096, 0.264,0.168l 4.24,4.048
|
164 |
c 2.336,2.248, 3.504,5.184, 3.488,8.144C 511.704,226.496, 510.536,229.456, 508.2,231.68z" />
|
165 |
-
|
166 |
c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-64 L 16,400 c-8.84,0-16-7.16-16-16c0-8.832, 7.16-16, 16-16l 64,0 l0-304 c0-1.472, 0.472-2.8, 0.84-4.144
|
167 |
c 0.16-0.608, 0.128-1.232, 0.36-1.816c 1.608-4.032, 4.8-7.216, 8.832-8.84c 0.688-0.28, 1.44-0.248, 2.144-0.424
|
168 |
C 93.44,48.456, 94.64,48, 96,48l 304,0 l0-64 c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16l0,64 l 64,0 c 8.84,0, 16,7.16, 16,16S 504.84,80, 496,80z M 377.744,368
|
169 |
L 112,102.608L 112,368 L 377.744,368 z M 134.64,80L 400,344.992L 400,80 L 134.64,80 z" />
|
170 |
-
|
171 |
c 26.512,0, 48,21.488, 48,48L 512.072,344 C 512.072,370.512, 490.584,392, 464.072,392z M 47.928,360l 416.144,0 c 8.832,0, 16-7.168, 16-16l0-32 L 31.928,312 l0,32
|
172 |
C 31.928,352.832, 39.104,360, 47.928,360z M 464.072,88L 47.928,88 c-8.832,0-16,7.168-16,16L 31.928,248 l 448.144,0 l0-144 C 480.072,95.168, 472.896,88, 464.072,88z" />
|
173 |
-
|
174 |
c0-3.968, 1.472-7.784, 4.128-10.72l 65.184-78.672l-202.64,0 l 65.184,78.672c 2.656,2.936, 4.128,6.752, 4.128,10.72L 223.992,288.224 c0,8.84-7.16,16-16,16
|
175 |
l-26.656,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 10.656,0 l0-176.752 L 106.792-5.36c-4.232-4.688-5.312-11.44-2.752-17.216
|
176 |
c 2.576-5.784, 8.296-9.504, 14.624-9.504l 274.672,0 c 6.328,0, 12.048,3.72, 14.624,9.504C 410.52-16.8, 409.448-10.048, 405.208-5.36z M 240,320.16
|
@@ -178,14 +178,14 @@
|
|
178 |
C 208.080,334.456, 222.36,320.16, 240,320.16z M 344.24,367.656c 31.184,0, 56.464,25.168, 56.464,56.208s-25.272,56.208-56.464,56.208
|
179 |
c-31.176,0-56.464-25.168-56.464-56.208S 313.064,367.656, 344.24,367.656z M 343.992,448.168c 13.328,0, 24.168-10.792, 24.168-24.064
|
180 |
c0-13.264-10.84-24.064-24.168-24.064s-24.168,10.8-24.168,24.064C 319.832,437.376, 330.664,448.168, 343.992,448.168z" />
|
181 |
-
|
182 |
c 1.312-11.080, 8.296-20.656, 18.424-25.312l 139.248-66.032c 1.088-0.496, 13.344-2.552, 13.344-19.672l 0.016-31.232L 32,0.248L 32,32.72
|
183 |
c0,12.72, 9.544,16.712, 13.36,18.472l 140.512,66.312c 10.080,4.624, 17.032,14.16, 18.384,25.16c 1.36,11-3.080,21.92-11.728,28.856
|
184 |
c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96 C 143.808,401.496, 202.008,448, 255.864,448 M 255.864,480c-70.656,0-144.064-58.968-144.064-111.928
|
185 |
l0-79.96 c0-34.936, 15.944-105.624, 60.696-141.544L 31.976,80.248c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 447.776,0
|
186 |
c 17.672,0, 31.984,14.312, 31.984,31.984l0,48.016 c0,18.8-31.984,31.984-31.984,31.984l-139.248,66.032c 44.328,34.888, 59.328,103.424, 59.328,141.832
|
187 |
l0,79.96 C 399.832,421.032, 326.512,480, 255.864,480L 255.864,480z" />
|
188 |
-
|
189 |
c0-88.576, 44.84-169.592, 119.952-216.704c 7.472-4.736, 17.344-2.44, 22.048,5.048s 2.44,17.36-5.048,22.048
|
190 |
c-27.048,16.976-49.52,39.024-66.712,64.44l 16.776,9.688c 7.656,4.424, 10.28,14.2, 5.856,21.856c-4.44,7.672-14.232,10.28-21.856,5.856
|
191 |
l-16.8-9.696c-12.2,25.256-19.648,52.896-21.64,81.712l 17.808,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16L 32.976,222.496
|
@@ -202,7 +202,7 @@
|
|
202 |
M 374.056,256.136c 7.648,4.424, 10.272,14.2, 5.856,21.856c-4.416,7.648-14.208,10.272-21.856,5.848l-86.912-50.176
|
203 |
c-4.64,2.624-9.928,4.248-15.64,4.248c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92c 17.64,0, 31.92,14.296, 31.92,31.92
|
204 |
c0,0.032-0.008,0.072-0.008,0.104L 374.056,256.136z" />
|
205 |
-
|
206 |
c-43.984-26.424-48.16-143.408-48.544-167.128c 0.528-31.328, 5.592-135.56, 48.512-161.344c 8.248-4.968, 33.856-20.112, 207.624-20.112
|
207 |
c 162.080,0, 200.688,13.2, 214.504,23.144c 37.488,26.968, 41.8,119.84, 41.904,158.72C 512.176,252.728, 508.896,357.4, 470.368,385.152z
|
208 |
M 451.68,88.712c-5.576-4.016-37.592-17.112-195.816-17.112c-152.968,0-185.064,11.872-191.128,15.528c-15.44,9.264-31.736,58.44-33.016,134.016
|
@@ -211,7 +211,7 @@
|
|
211 |
c-4.952,2.984-11.112,3.064-16.128,0.232c-5.032-2.84-8.144-8.168-8.144-13.936l0-176.72 c0-5.768, 3.112-11.096, 8.144-13.936
|
212 |
c 2.44-1.376, 5.16-2.064, 7.856-2.064c 2.856,0, 5.736,0.768, 8.264,2.296l 143.968,88.376c 4.8,2.904, 7.736,8.096, 7.736,13.704
|
213 |
S 365.008,233.696, 360.208,236.584z M 223.976,162.848L 223.976,282.896 l 97-60.016L 223.976,162.848z" />
|
214 |
-
|
215 |
c 18.56,2.184, 36.328,6.952, 52.816,14.080c-12.36-17.872-27.92-33.608-45.888-46.184c 0.168-3.816, 0.264-7.672, 0.264-11.512
|
216 |
c0-117.864-92.504-253.808-261.656-253.808c-51.92,0-100.28,14.816-140.952,40.112c 7.184-0.84, 14.504-1.264, 21.92-1.264
|
217 |
c 43.080,0, 82.752,14.248, 114.232,38.2c-40.264,0.688-74.248,26.504-85.904,61.92c 5.608-1.048, 11.376-1.608, 17.312-1.608
|
@@ -227,7 +227,7 @@
|
|
227 |
c 182.016,0, 291.504,142.488, 293.632,281.672c 14.896,12.328, 28.064,26.592, 39.224,42.576c 4.064,5.344, 6.48,12.016, 6.48,19.248
|
228 |
c0,10.888-5.448,20.512-13.744,26.296c 3.592,12.312-0.504,25.64-10.504,33.784c-5.84,4.752-13,7.168-20.2,7.168
|
229 |
c-5.504,0-11.016-1.408-15.984-4.28c-10.576-6.096-21.888-10.92-33.8-14.392C 396.36,423.624, 369.64,432.656, 342.2,432.656L 342.2,432.656z" />
|
230 |
-
|
231 |
c 22.344,0, 52.488,6.72, 75.080,23.624l0-74.656 c-18.84-8.984-36.36-12.608-51.624-16.232c-15.28-3.608-31.832-5.424-49.576-5.424
|
232 |
c-19.768,0-76.832,0.544-100.248,60.2c-4.216,10.736-6.328,26.328-6.328,46.736L 184.32,288.128 l-64.424,0 l 0.312,49.064
|
233 |
c 21.328,0, 85.312,12.952, 85.312,110.936L 264.008,448.128 M 264.008,480.128L 205.52,480.128 c-17.672,0-32-14.328-32-32c0-73.248-40.816-78.936-53.312-78.936
|
@@ -237,7 +237,7 @@
|
|
237 |
c-4.528,2.28-9.44,3.392-14.328,3.392c-6.784,0-13.528-2.16-19.168-6.376c-19.048-14.264-43.424-17.248-55.904-17.248
|
238 |
c-12.8,0-17.56,4.64-18.608,5.872c-0.544,2.512-2.064,11.888-2.064,38.504l 0.112,107.264l 79.704,0 c 17.672,0, 32,14.328, 32,32l0,47.984
|
239 |
c0,17.672-14.328,32-32,32l-80.16,0 L 296.008,448.128 C 296.008,465.8, 281.68,480.128, 264.008,480.128L 264.008,480.128z" />
|
240 |
-
|
241 |
l-11.28-47.936l-69.8,0 l0-239.888 l-47.952,0 l-0.032,239.888L 159.68,248.136 l-0.128,47.936l 63.856,0 c0,0,0,58.688,0,74.592
|
242 |
C 223.416,435.704, 277.432,439.752, 290.88,439.752 M 335.664,439.672l 0.080,0 M 290.88,471.752L 290.88,471.752c-11.504,0-33.984-1.904-55.28-14.736
|
243 |
c-20.16-12.128-44.184-36.968-44.184-86.344l0-42.592 l-31.856,0 c-8.504,0-16.656-3.392-22.672-9.408c-6-6.032-9.36-14.184-9.328-22.704
|
@@ -245,7 +245,7 @@
|
|
245 |
c 14.2,0, 26.704,9.36, 30.704,22.984l 11.28,47.936c 2.84,9.672, 0.952,20.128-5.096,28.184c-6.032,8.080-15.528,12.832-25.608,12.832l-48.816,0
|
246 |
l0,31.576 l 31.816,0.016c 17.608,0, 31.92,14.232, 32,31.856l 0.216,46.376c 0.032,0.592, 0.048,1.168, 0.048,1.768c0,17.672-14.296,32-31.968,32l-0.080,0
|
247 |
l-40.888,0 C 293.864,471.72, 292.536,471.752, 290.88,471.752L 290.88,471.752z" />
|
248 |
-
|
249 |
L 168.896,467.92c-5.296,4.28-12.768,4.768-18.528,1.144L 7.776,380.080c-4.344-2.72-7.128-7.344-7.488-12.456
|
250 |
c-0.376-5.112, 1.736-10.080, 5.656-13.376l 82.608-69.408l-70.768-55.592c-4.048-3.16-6.312-8.088-6.112-13.208
|
251 |
c 0.2-5.12, 2.84-9.832, 7.112-12.68l 65.488-43.656c-3.216-2.92-5.272-7.104-5.272-11.8l0-64.168 c0-5.56, 2.888-10.72, 7.624-13.64
|
@@ -257,7 +257,7 @@
|
|
257 |
L 111.008,141.888 z M 399.104,92.672l-128.128-72.84L 270.976,163.72 l 66.328-50.984c 2.856-2.2, 6.312-3.312, 9.752-3.312c 3.096,0, 6.184,0.888, 8.872,2.688
|
258 |
l 43.168,28.784L 399.096,92.672 z M 456.728,217.76l-109.016-72.664l-63.72,48.968l 113,70.816L 456.728,217.76z M 396.832,304.296l-113.672,73.984
|
259 |
l 71.2,57.592l 114.232-71.296L 396.832,304.296z" />
|
260 |
-
|
261 |
C 63.696,419.336, 0.136,328.968, 0.136,223.992c0-141.080, 114.784-255.856, 255.856-255.856c 141.096,0, 255.872,114.784, 255.872,255.856
|
262 |
C 511.864,365.088, 397.088,479.864, 255.992,479.864z M 479.864,223.992c0-1.792-0.096-3.56-0.136-5.336
|
263 |
c-24.512,6.504-86.696,18.72-163.4,1.872c-6.76,15.448-14.256,31.288-22.64,47.408c-0.704,1.352-1.392,2.64-2.088,3.976
|
@@ -271,7 +271,7 @@
|
|
271 |
c 13.984,6.336, 27.76,11.392, 41.192,15.456c 30.368-77.16, 40.904-140.784, 44.088-165.296c-26.376-10.952-55.264-17.032-85.56-17.032
|
272 |
C 203.984,0.136, 156.096,18.016, 118.048,47.88z M 371.808,32.48c-4.616,30.8-16.072,88.696-42.984,157.832
|
273 |
c 74.224,14.776, 132.976,0.28, 147.808-4.040C 465.52,121.168, 426.264,65.528, 371.808,32.48z" />
|
274 |
-
|
275 |
c-0.736,0-1.472-0.032-2.2-0.080c-0.456-0.032-5.592-0.344-13.64-0.344c-13.328,0-39.344,0.904-63.984,6.968
|
276 |
c-31.832,7.816-68.56,44.080-79.248,51.232c-5.376,3.592-11.576,5.392-17.784,5.392c-6.184,0-12.392-1.8-17.768-5.376
|
277 |
c-1.296-0.872-39.752-42.016-77.376-51.248c-24.624-6.064-51.144-6.968-64.456-6.968c-8.048,0-13.184,0.312-13.688,0.344
|
@@ -284,12 +284,12 @@
|
|
284 |
c-6.248,6.248-16.384,6.248-22.624,0l-45.256-45.256l-45.256,45.256c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.384,0-22.624l 45.256-45.256
|
285 |
l-45.256-45.256c-6.248-6.24-6.248-16.376,0-22.624s 16.384-6.248, 22.632,0l 45.256,45.256l 45.256-45.256c 6.24-6.248, 16.376-6.248, 22.624,0
|
286 |
s 6.248,16.384,0,22.624l-45.256,45.256l 45.256,45.256C 330.048,290.496, 330.048,300.632, 323.8,306.88z" />
|
287 |
-
|
288 |
c 26.512,0, 48,21.488, 48,48L 464.072,432 C 464.072,458.512, 442.584,480, 416.072,480z M 432.072,16c0-8.832-7.168-16-16-16L 95.928,0 c-8.832,0-16,7.168-16,16L 79.928,432
|
289 |
c0,8.832, 7.168,16, 16,16l 320.144,0 c 8.832,0, 16-7.168, 16-16L 432.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.28-31.92, 31.92-31.92
|
290 |
c 17.632,0, 31.92,14.304, 31.92,31.92S 273.656,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
291 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
292 |
-
|
293 |
L 375.304,425.264l-77.144,51.952c-4.856,3.264-11.080,3.656-16.232,0.968c-5.184-2.656-8.512-7.936-8.704-13.752l-2.768-92.968
|
294 |
l-73.248-57.296c-4.592-3.592-6.856-9.408-5.936-15.16s 4.904-10.544, 10.408-12.512l 68.728-24.64c-0.464-0.368-0.952-0.696-1.384-1.128
|
295 |
L 3.648-4.648c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 265.376,265.376
|
@@ -299,14 +299,14 @@
|
|
299 |
c-1.624,4.472-5.16,7.968-9.64,9.576l-67.296,24.128l 56.312,44.032c 3.752,2.936, 5.984,7.376, 6.144,12.128l 2.128,71.472l 59.296-39.936
|
300 |
c 3.952-2.656, 8.888-3.408, 13.424-2.096l 68.624,20.048l-19.672-68.736c-1.296-4.576-0.504-9.488, 2.168-13.424l 40.28-59.064L 397.024,268.728z
|
301 |
" />
|
302 |
-
|
303 |
C 358.28,185.488, 384.8,146.312, 384.8,87.856c0-38.064-0.168-70-0.296-87.56l 32.032,0 c 8.84,0, 16-7.144, 16-15.984s-7.16-16-16-16L 95.472-31.688
|
304 |
c-8.84,0-16,7.16-16,16s 7.16,15.984, 16,15.984l 32.968,0 c-0.12,17.56-0.296,49.504-0.296,87.56c0,58.456, 26.144,97.624, 89.072,129.528
|
305 |
c-60.616,30.92-88.568,70.408-88.568,122.6L 128.648,447.696 l-33.176,0 c-8.84,0-16,7.152-16,16c0,8.832, 7.16,15.992, 16,15.992l 321.064,0
|
306 |
c 8.84,0, 16-7.16, 16-15.992C 432.528,454.848, 425.376,447.696, 416.528,447.696z M 160.136,87.856c0-38.144, 0.176-70.112, 0.296-87.56l 192.088,0
|
307 |
c 0.112,17.456, 0.296,49.424, 0.296,87.56c0,44.504-16.56,79.016-96.592,112.2C 176.216,166.872, 160.136,132.36, 160.136,87.856z M 352.312,447.696
|
308 |
l-191.68,0 l0-107.704 c0-30.688, 10.32-70.208, 95.584-105.264c 85.28,35.056, 96.096,74.576, 96.096,105.264L 352.312,447.696 z" />
|
309 |
-
|
310 |
c 0.064,5.888-3.128,11.344-8.296,14.184l-240.72,128.8c-4.816,2.64-10.64,2.624-15.488-0.048L 8.16,293.16
|
311 |
c-5.096-2.84-8.248-8.232-8.216-14.080s 3.248-11.2, 8.408-13.984l 105.192-55.992c-1.32-2.328-2.136-4.984-2.136-7.848l0-135.392
|
312 |
c0-4.56, 1.952-8.92, 5.36-11.952c 3.472-3.080, 36.72-30.048, 138.376-30.048c 101.296,0, 135.44,25.488, 139,28.392
|
@@ -314,7 +314,7 @@
|
|
314 |
c-9.488-5.552-15.92-15.736-15.92-27.512c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32C 511.504,116.096, 504.984,126.32, 495.424,131.848z M 368.016,73.816
|
315 |
c-12.576-6.048-45.856-17.952-112.872-17.952c-67.44,0-99.968,12.672-111.736,18.768L 143.408,193.2 l 103.904-55.312c 2.36-1.28, 4.984-1.92, 7.592-1.92
|
316 |
c 2.544,0, 5.096,0.608, 7.408,1.832l 105.704,55.832L 368.016,73.816 z M 255.032,170.096L 49.232,279.376l 206.16,110.488l 206.8-110.168L 255.032,170.096z" />
|
317 |
-
|
318 |
c 1.856-0.736, 3.816-1.080, 5.752-1.080c 4.424,0, 8.768,1.84, 11.856,5.264l 60.296,66.56l 47.216-65.216
|
319 |
c 2.984-4.128, 7.752-6.576, 12.84-6.608l 0.112,0 c 5.048,0, 9.816,2.392, 12.832,6.456l 47.408,63.672l 46.592-63.576
|
320 |
c 3.016-4.112, 7.8-6.544, 12.904-6.544c 5.096,0, 9.888,2.424, 12.904,6.528l 47.784,65.144l 59-66.312
|
@@ -325,7 +325,7 @@
|
|
325 |
L 80.144,257.272 c0,105.2, 78.888,190.8, 175.84,190.8c 96.968,0, 175.856-85.592, 175.856-190.8L 431.84,25.984 z M 336,303.92c-17.64,0-31.92-14.296-31.92-31.904
|
326 |
c0-17.624, 14.28-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 367.92,289.624, 353.64,303.92, 336,303.92z M 176,303.92
|
327 |
c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 207.92,289.624, 193.64,303.92, 176,303.92z" />
|
328 |
-
|
329 |
c-28.232,14.144-53.832,21.016-78.232,21.016c-49.144,0-83.152-28.352-104.48-49.68l-17.792-17.808l-11.872-11.888l-17.232-17.256l-26.864-26.896
|
330 |
l-29.664-29.688c-55.344-55.4-64.184-111.8-28.632-182.904c 5.512-11.040, 11.184-23.168, 17.184-36.016
|
331 |
c 32.352-69.192, 65.792-140.744, 120.528-140.744c 1.536,0, 3.056,0.048, 4.608,0.168c 56.488,4.424, 72.512,77.144, 86.656,141.296
|
@@ -341,7 +341,7 @@
|
|
341 |
c 6,6, 6,15.736,0,21.728c-6,6-15.72,6-21.72,0l-12.176-12.176l-12.176,12.176c-6,6-15.72,6-21.72,0
|
342 |
c-6-6-6-15.728,0-21.728l 12.176-12.176l-12.176-12.176c-6-5.992-6-15.72,0-21.72c 6-6, 15.728-6, 21.72,0
|
343 |
l 12.176,12.168l 12.528-12.528c 6-6, 15.72-6, 21.72,0s 6,15.736,0,21.736L 164.944,208.28z" />
|
344 |
-
|
345 |
c 3.184,5.672, 9.44,8.752, 15.968,8.032c 6.456-0.832, 11.768-5.488, 13.44-11.784c 0.096-0.376, 9.984-37.376, 23.032-57.92
|
346 |
c 8.768-13.824, 17.656-23.592, 27.656-30.376c-6.768,29.328-11.952,73.456-3.512,118.736C 186.024,448.080, 283.848,477.816, 288.040,479.016
|
347 |
c 5.392,1.544, 11.112,0.16, 15.216-3.576c 4.096-3.752, 5.968-9.376, 4.904-14.832c-0.16-0.872-16.312-87.888, 17.968-162.032
|
@@ -354,7 +354,7 @@
|
|
354 |
c-1.2,1.704-29.656,41.984-42.2,69.12c-26.048,56.296-25.608,117.168-22.952,152.232c-26.36-15.36-66.832-49.672-79.832-119.456
|
355 |
c-12.656-67.904, 11.936-135.8, 12.2-136.472c 2.128-5.544, 1-11.832-2.904-16.296c-3.92-4.44-9.952-6.408-15.768-5.016
|
356 |
c-1.984,0.488-47.016,12.2-76.168,58.144C 106.464,226.512, 101.792,236.472, 97.848,246.16z" />
|
357 |
-
|
358 |
c-3.144,24.576-9.016,70.312-82.736,70.312c-8.84,0-16-7.16-16-16s 7.16-16, 16-16c 45.56,0, 47.968-18.704, 51-42.392
|
359 |
c 0.392-3.032, 0.768-5.936, 1.216-8.64c 1.872-11.264, 10.352-56.080, 17.672-100.512c-18.776,14.312-42.144,22.904-67.56,22.904
|
360 |
c-40.824,0-77.16-21.976-97.136-54.68c-9.608,3.632-25.912,8.168-47.696,8.168c-21.472,0-37.256-4.568-47.016-8.544
|
@@ -369,7 +369,7 @@
|
|
369 |
c-44.096,0-81.344,36.488-81.344,79.672s 37.248,79.672, 81.344,79.672c 38,0, 69.816-26.744, 77.728-62.392
|
370 |
c 0.328-3.264, 0.6-6.336, 0.808-9.144c 0.096-1.344, 0.456-2.608, 0.92-3.832c 0.080-1.44, 0.216-2.856, 0.216-4.312
|
371 |
C 480.328,99.744, 444.592,64.008, 400.656,64.008z" />
|
372 |
-
|
373 |
c-18.112,18.112-49.752,18.144-67.888,0L 14.408,266.352c-4.512-4.2-14.44-15.544-14.44-26.672l0-239.76 c0-17.592, 14.408-32, 32-32l 448,0
|
374 |
c 17.592,0, 32,14.408, 32,32L 511.968,239.048 C 512.080,240.488, 511.936,241.928, 511.656,243.352z M 134.896,116.832L 31.968,22.048L 31.968,207.64 L 134.896,116.832z
|
375 |
M 167.784,103.64c 1.144,0.76, 2.232,1.624, 3.184,2.704c 0.184,0.208, 0.312,0.456, 0.48,0.672l 70.584,65
|
@@ -377,7 +377,7 @@
|
|
377 |
l 101.24,89.848l0-180.92 L 378.728,114.72z M 51.888,258.584L 245.64,443.856c 3.032,3.016, 7.048,4.688, 11.312,4.688
|
378 |
c 4.28,0, 8.296-1.672, 11.328-4.688L 448.968,271.68l-0.488,0 l 27.448-27.896l-121.152-107.52l-67.624,60.832
|
379 |
c-18.84,14.768-45.888,15.408-65.84-0.688l-62.752-57.792L 37.664,245.288l 13.496,13.296L 51.888,258.584 z" />
|
380 |
-
|
381 |
L 415.968,348.976L 415.968,400.608 c0,8.84-7.16,16-16,16l-50.664,0 l-58.4,49.856c-18.112,18.112-49.752,18.144-67.888,0l-58.2-49.856l-52.848,0
|
382 |
c-8.84,0-16-7.16-16-16l0-52.688 L 14.408,266.36c-8.672-5.736-14.44-15.544-14.44-26.672l0-239.752 c0-17.592, 14.408-32, 32-32l 448,0
|
383 |
c 17.592,0, 32,14.408, 32,32l0,239.12 C 512.080,240.496, 511.936,241.936, 511.656,243.36z M 134.432,117.248L 31.968,22.208L 31.968,207.656 L 134.432,117.248z
|
@@ -387,7 +387,7 @@
|
|
387 |
c 3.032,3.016, 7.048,4.688, 11.312,4.688c 4.28,0, 8.296-1.672, 11.328-4.688l 32.312-27.232L 213.376,416.608 L 245.64,443.84z M 383.968,384.608l0-222.424
|
388 |
l-28.656-25.44l-68.16,61.784c-18.84,14.768-45.888,15.408-65.84-0.688L 158,139.12l-30.032,26.504L 127.968,384.608 L 383.968,384.608 z M 51.888,258.592l 44.080,44.064
|
389 |
l0-108.808 l-58.312,51.448l 13.496,13.296L 51.888,258.592 z" />
|
390 |
-
|
391 |
c0,90.008-67.32,163.24-153.344,163.24c-86.040,0-152.832-73.232-152.832-163.24l0-104.48 c0-32.256-27.744-62.744-45.336-86.4
|
392 |
c-15.824-21.256-28.312-38.048-19.88-54.832c 7.416-14.768, 25.984-16.664, 41.328-16.664l 91.68,0 c 0.024-47.104, 38.224-85.288, 85.336-85.288
|
393 |
c 47.12,0, 85.32,38.184, 85.344,85.288l 93.832,0 c 9.76,0, 32.576,0, 40.432,16.6C 483.056,87.248, 470.368,102.696, 452.808,124.056z
|
@@ -395,7 +395,7 @@
|
|
395 |
c-2.448,0-4.496,0.080-6.184,0.184c 3.296,5.104, 8.136,11.624, 12.072,16.928c 19.496,26.2, 52.072,63.184, 52.072,106.712l0,104.48
|
396 |
c0,71.232, 51.52,129.176, 118.76,129.176c 67.24,0, 119.28-57.944, 119.28-129.176l0-104.48 c0-45.008, 30.040-82.624, 51.984-109.304
|
397 |
c 3.696-4.496, 8.12-9.88, 11.56-14.48C 437.032,87.92, 435.912,87.904, 434.696,87.904z" />
|
398 |
-
|
399 |
c-97.168,0-175.92-78.76-175.92-175.904c0-25.816, 5.608-50.312, 15.592-72.392L 1.512,60.096c-3.032-5.512-2.528-12.312, 1.264-17.344
|
400 |
c 3.8-5.016, 10.216-7.376, 16.344-5.936l 80.312,18.424l 27.488-76.56c 2.144-5.952, 7.576-10.080, 13.872-10.544
|
401 |
c 0.408-0.032, 0.8-0.048, 1.184-0.048c 5.856,0, 11.296,3.216, 14.096,8.44l 81.848,152.488c 5.904-0.6, 11.896-0.904, 17.96-0.904
|
@@ -406,7 +406,7 @@
|
|
406 |
c 79.272,0, 143.768-64.496, 143.768-143.768s-64.496-143.784-143.768-143.784C 176.608,160.232, 112.112,224.744, 112.112,304.016z M 405.872,89.592
|
407 |
c-7.936,1.872-15.888-2.56-18.64-10.184l-20.264-56.488L 305.392,135.2c 37.72,11.048, 70.168,34.368, 92.752,65.368l 67.424-124.664L 405.872,89.592z
|
408 |
" />
|
409 |
-
|
410 |
c-1.64,2.808-4.216,4.616-7.096,5.296c-2.848,0.704-5.992,0.272-8.704-1.488l-4.92-3.168c-0.096-0.056-0.152-0.144-0.248-0.208
|
411 |
l-72.8-49.16c-5.44-3.504-7.208-10.84-3.968-16.456l 3.272-3.6c 3.24-5.592, 10.632-5.824, 16.080-2.32l 43.52,29.592
|
412 |
c-10.304-83-77.368-146.696-159.48-154.088L 271.976,320.512 L 336,320.512 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-64.72,0
|
@@ -419,26 +419,26 @@
|
|
419 |
c 14.688-102.36, 102.552-178.912, 206.64-178.912c 104.032,0, 191.96,76.544, 206.68,178.856l 23.92-44.432c 3.248-5.592, 9.944-8.768, 15.384-5.272
|
420 |
l 4.56,1.712C 511.984,101.36, 513.76,108.712, 510.512,114.296z M 223.752,416.512c0,17.92, 14.576,32.504, 32.496,32.504
|
421 |
c 17.92,0, 32.504-14.576, 32.504-32.504s-14.576-32.504-32.504-32.504C 238.336,384.016, 223.752,398.592, 223.752,416.512z" />
|
422 |
-
|
423 |
c-26.472,0-48-21.528-48-48l0-64.352 l-16,0.040c-26.376-0.112-47.816-21.576-47.816-47.984l0-255.904 c0-26.472, 21.528-48, 48-48l 416.232,0
|
424 |
c 26.472,0, 48,21.528, 48,48L 511.824,334.76z M 95.696,408.104c0,8.36, 6.44,15.232, 14.608,15.936l 353-71.44
|
425 |
c 0.128-0.064-2.624-8.968-15.44-8.8L 95.696,343.8 L 95.696,408.104 z M 480.12,39.896c0-8.832-7.168-16-16-16L 47.88,23.896 c-8.832,0-16,7.168-16,16L 31.88,295.808
|
426 |
c0,8.832, 7.168,16, 16,16l 400.032,0 c 15.704,0, 32.2,5.352, 32.2,15.944L 480.112,39.896 z M 95.912,199.752c-17.672,0-32-14.328-32-32s 14.328-32, 32-32
|
427 |
s 32,14.328, 32,32S 113.584,199.752, 95.912,199.752z" />
|
428 |
-
|
429 |
c 5.544-9.52, 15.752-16, 27.56-16c 17.672,0, 32,14.328, 32,32s-14.328,32-32,32c-11.816,0-22.016-6.48-27.56-16L 304,368 l0,16 c0,8.832-7.168,16-16,16l-64,0
|
430 |
c-8.832,0-16-7.168-16-16l0-16 L 59.56,368 C 54.016,377.52, 43.816,384, 32,384c-17.672,0-32-14.328-32-32s 14.328-32, 32-32c 11.816,0, 22.016,6.48, 27.56,16l 80.4,0
|
431 |
C 75.392,296.704, 32.136,225.768, 32.136,144.808L 32.136,144 L 16,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
432 |
c0,8.832-7.168,16-16,16L 64.136,144 l0,0.808 c0,89.224, 61.232,164.336, 143.864,185.696L 208,320 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,10.504
|
433 |
c 82.632-21.368, 143.864-96.48, 143.864-185.696L 447.864,144 L 432,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
434 |
C 512,136.832, 504.832,144, 496,144z M 64,80L 32,80 l0,32 l 32,0 L 64,80 z M 272,336l-32,0 l0,32 l 32,0 L 272,336 z M 480,80l-32,0 l0,32 l 32,0 L 480,80 z" />
|
435 |
-
|
436 |
c0-6.456, 3.872-12.264, 9.816-14.752c 2-0.84, 4.112-1.248, 6.184-1.248c 4.128,0, 8.168,1.592, 11.216,4.592l 92.512,91.064L 480,95.448
|
437 |
c 17.672,0, 32,14.328, 32,32L 512,416.2 C 512,433.872, 497.672,448.2, 480,448.2z M 480,127.456L 202.392,127.456 l-74.624-73.456l0,73.456 L 32,127.456 L 32,416.2 l 448,0 L 480,127.456 z
|
438 |
M 112,255.496l 288,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,287.496 c-8.832,0-16-7.168-16-16S 103.168,255.496, 112,255.496z M 112,319.496l 288,0
|
439 |
c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,351.496 c-8.832,0-16-7.168-16-16S 103.168,319.496, 112,319.496z M 112,191.496l 192,0 c 8.832,0, 16,7.168, 16,16
|
440 |
s-7.168,16-16,16L 112,223.496 c-8.832,0-16-7.168-16-16S 103.168,191.496, 112,191.496z" />
|
441 |
-
|
442 |
c 4.936,4.936, 12.512,6.112, 18.72,2.872c 6.184-3.232, 9.56-10.112, 8.344-16.984c-0.816-4.576-1.184-8.248-1.184-11.56
|
443 |
c0-35, 28.488-64.072, 63.504-64.072c 35.048,0, 60.64,29.072, 60.64,64.072c0,35.048-25.592,63.544-60.64,63.544c-3.28,0-6.936-0.376-11.512-1.184
|
444 |
c-6.936-1.28-13.752,2.16-16.984,8.344c-3.232,6.2-2.064,13.784, 2.872,18.72l 74.544,74.56c 14.44,14.376, 39.408,14.344, 53.784,0.032
|
@@ -450,20 +450,20 @@
|
|
450 |
c-30.856,0-55.968-25.128-55.968-56.016c0-1.28, 0.2-2.528, 0.376-3.784l 0.344-2.856c 0.72-6.752-2.888-13.216-9.016-16.144
|
451 |
c-6.080-2.904-13.408-1.656-18.2,3.128l-78.472,78.512c-3.064,3.032-5.472,3.064-8.592-0.032l-48.56-48.56
|
452 |
c 41.64-10.312, 69.688-47.984, 69.688-92.768c0-52.656-39.96-96.064-92.648-96.064C 135.4,209.248, 97.744,240.784, 87.448,282.392z" />
|
453 |
-
|
454 |
L-0.024,99.92 c0-19.672, 16-35.672, 35.656-35.672l 60.36,0 L 95.992-31.76 l 320.016,0 L 416.008,64.248 l 60.36,0 c 19.656,0, 35.656,16, 35.656,35.672L 512.024,316.864
|
455 |
C 512.024,336.536, 496.024,352.536, 476.368,352.536z M 127.992,448.256l 256.016,0 l0-95.72 L 127.992,352.536 L 127.992,448.256 z M 384.008,0.24L 127.992,0.24 L 127.992,176.44 l 256.016,0
|
456 |
L 384.008,0.24 z M 480.024,99.92c0-2.040-1.64-3.672-3.656-3.672l-60.36,0 L 416.008,208.44 L 95.992,208.44 l0-112.184 L 35.632,96.256 c-2.016,0-3.656,1.632-3.656,3.672
|
457 |
L 31.976,316.864 c0,2.032, 1.64,3.672, 3.656,3.672l 440.736,0 c 2.016,0, 3.656-1.64, 3.656-3.672L 480.024,99.92 z M 416,288.28l-16,0 c-8.832,0-16-7.168-16-16
|
458 |
s 7.168-16, 16-16l 16,0 c 8.832,0, 16,7.168, 16,16S 424.832,288.28, 416,288.28z" />
|
459 |
-
|
460 |
c-58.8,0-107.92-62.608-131-97.704C 233.856,401.704, 183.232,464.312, 124.44,464.312c-44.688,0-60.608-30.112-60.608-57.832
|
461 |
c0-22.504, 9.296-40.792, 23.72-54.736L 32,351.744 c-17.672,0-32-14.328-32-32l0-95.784 l 32.28,0 l0-208.28 c0-17.672, 14.328-32, 32-32l 383.84,0 c 17.672,0, 32,14.328, 32,32
|
462 |
L 480.12,223.968 L 512,223.968 L 512,319.752 z M 387.952,432.312c 19.784,0, 28.608-8.312, 28.608-25.832c0-35.544-39.672-54.72-76.984-54.72l-54.168,0
|
463 |
C 308.144,385.528, 348.16,432.312, 387.952,432.312z M 124.44,432.312c 39.8,0, 81.328-46.784, 104.064-80.544l-54.184,0
|
464 |
c-37.312,0-78.488,19.672-78.488,55.216C 95.832,424.496, 104.656,432.312, 124.44,432.312z M 480,255.968L 272,255.968 l0,63.784 l 208,0 L 480,255.968 z M 32,319.752l 208,0 l0-63.784
|
465 |
L 32,255.968 L 32,319.752 z M 64.28,223.968L 240,223.968 l0-208.28 L 64.28,15.688 L 64.28,223.968 z M 448.128,15.688L 272,15.688 L 272,223.968 l 176.128,0 L 448.128,15.688 z" />
|
466 |
-
|
467 |
S 8.040,448.12, 16.88,448.12z M 16.88,352.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16S 8.040,352.12, 16.88,352.12z
|
468 |
M 256.88,272.12c0,8.832-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 224,0 C 249.712,256.12, 256.88,263.288, 256.88,272.12z
|
469 |
M 506.44,317.728L 349.984,474.176c-4.952,4.96-12.328,5.92-18.296,3.008c-6.272-2.168-10.808-8.056-10.808-15.064L 320.88,107.92
|
@@ -471,7 +471,7 @@
|
|
471 |
c 53.064,0, 96.048,35.904, 96.048,80.168c0,2.008-0.184,3.968-0.36,5.936L 352.88,426.024 l 130.92-130.928c 6.248-6.248, 16.384-6.248, 22.632,0
|
472 |
C 512.68,301.344, 512.68,311.48, 506.44,317.728z M 320.88,46.488c-1.152-22.248-27.096-46.408-64.064-46.408
|
473 |
c-37.824,0-64.176,25.28-64.176,47.936c0,22.672, 26.352,47.92, 64.176,47.92c 36.968,0, 62.912-24.128, 64.064-46.392L 320.88,46.488 z" />
|
474 |
-
|
475 |
c-11.080-35.656-12.36-67.92-3.896-97.344c-0.776-0.536-1.52-1.12-2.208-1.808L 205.056,283.952c-27.6,12.8-57.272,19.728-86.848,19.728
|
476 |
c-18.8,0-37.232-2.784-54.784-8.232c-5.344-1.672-9.44-6-10.784-11.424c-1.344-5.44, 0.232-11.168, 4.184-15.144l 109.488-110.192
|
477 |
L 13.232,3.168l-13.312-35.064l 32.184,12.44l 156.68,155.52l 110.912-111.632c 3.032-3.064, 7.144-4.72, 11.344-4.72
|
@@ -482,18 +482,18 @@
|
|
482 |
c-8.416,12.864-18.232,25.088-29.512,36.376c-11.232,11.232-23.504,21.128-36.48,29.664l 72.064,72.048c 7.352-12.784, 16.832-25, 28.504-36.664
|
483 |
c 11.928-11.92, 24.544-21.568, 37.8-29.032L 300.112,201.728z M 357.312,325.776c-30.768,30.768-42.624,65.064-36.344,106.44l 143.456-144.2
|
484 |
C 423.096,282.088, 388.624,294.464, 357.312,325.776z" />
|
485 |
-
|
486 |
C 512,425.64, 497.592,440.048, 480,440.048z M 480,39.952L 32,39.952 L 32,134.232 l 128.424,124.456l 132.392-132.248c 5.456-6.624, 15.168-5.784, 22.064-0.56
|
487 |
l 58.44,52.904L 478.72,70.592c 0.4-0.4, 0.848-0.696, 1.28-1.040L 480,39.952 z M 480,115.104L 385.984,211.312
|
488 |
c-5.704,5.624-14.64,6.2-20.968,1.376l-60.28-52.512L 172.264,291.216c-2.832,3.424-6.92,5.512-11.344,5.8
|
489 |
c-4.408,0.16-8.752-1.28-11.984-4.312L 32,178.904L 32,408.048 l 448,0 L 480,115.104 z M 368,279.936c 17.64,0, 31.92,14.304, 31.92,31.92
|
490 |
c0,17.608-14.28,31.912-31.92,31.912s-31.92-14.304-31.92-31.912C 336.080,294.24, 350.36,279.936, 368,279.936z" />
|
491 |
-
|
492 |
c-1.376,0.408-2.72,0.56-3.984,0.56C 4.856,479.592,0,474.688,0,467.312l0-415 c0-8.784, 6.936-17.936, 15.408-20.28l 161.168-63.592
|
493 |
l 159.504,64.752l 160.512-63.064c 1.376-0.376, 2.72-0.56, 3.984-0.56c 6.56,0, 11.424,4.872, 11.424,12.248L 512,392.184
|
494 |
C 512,400.968, 505.064,410.128, 496.592,412.496z M 192,389.432l 128,50.152l0-380.752 l-128-50.592L 192,389.432 z M 32,436.656l 128-47.288l0-380.88 L 32,60.624L 32,436.656 z
|
495 |
M 480,11l-128,48.192L 352,439.104 l 128-55.192L 480,11 z" />
|
496 |
-
|
497 |
c 5.232,2.816, 8.488,8.312, 8.408,14.264c-0.080,5.968-3.456,11.376-8.752,14.080L 265.856,478.048c-4.528,2.296-9.872,2.312-14.44,0.032
|
498 |
L 11.392,357.44c-5.312-2.672-8.72-8.080-8.816-14.032S 5.704,331.936, 10.92,329.096z M 258.576,445.856L 461.656,342.72L 256.168,231.984
|
499 |
L 53.080,342.576L 258.576,445.856z M 500.672,239.84l-47.488,24.112l-34.28-18.488l 40-20.312L 253.424,114.424L 50.328,225.016l 42.656,21.44L 58.8,265.080
|
@@ -502,7 +502,7 @@
|
|
502 |
M 500.672,127.84l-44.984,22.112l-34.28-18.488l 37.504-18.312L 253.424,2.424L 50.328,113.016l 39.656,17.936l-34.184,18.624L 8.64,127.872
|
503 |
c-5.312-2.672-8.72-8.080-8.816-14.032s 3.128-11.472, 8.344-14.312l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952
|
504 |
c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36c 5.232,2.816, 8.488,8.312, 8.408,14.264C 509.344,119.736, 505.968,125.144, 500.672,127.84z" />
|
505 |
-
|
506 |
c-65.048,0-112.472-52.936-112.472-118.016l0-42.64 L 105.68,319.784 c-32.872,0-62.64-26.56-66.264-58.528l-38.64-252.080
|
507 |
c-1.488-13.28, 1.112-23.752, 7.704-31.144c 6.216-6.952, 15.264-10.488, 26.872-10.488l 436.784,0 c 16.456,0, 25.888,6.608, 30.92,12.16
|
508 |
C 507.664-15.192, 512.88-6.224, 511.368,8.68z M 176.024,362.432c0,47.424, 33.064,86.016, 80.472,86.016s 79.488-38.592, 79.488-86.016l0-42.64
|
@@ -510,7 +510,7 @@
|
|
510 |
l 38.344,0 l0-36.464 C 134.488,245.784, 128,235.576, 128,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.808-6.464,22-15.976,27.544l0,36.496 l 159.952,0
|
511 |
l0-36.496 C 326.472,245.752, 320,235.552, 320,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.824-6.488,22.032-16.024,27.576l0,36.464 l 35.328,0
|
512 |
c 16.832,0, 32.656-14.128, 34.704-31.72l 41.672-251.64C 479.88,2.384, 478.272-0.224, 473.584-0.224z" />
|
513 |
-
|
514 |
c-4.472-7.608-1.936-17.424, 5.688-21.904c 64.624-38.016, 103.2-104.264, 103.2-177.184c0-121.184-87.968-209.144-209.16-209.144
|
515 |
c-27.096,0-53.392,5.080-78.16,15.080c-8.184,3.328-17.528-0.64-20.832-8.832c-3.312-8.2, 0.64-17.528, 8.832-20.832
|
516 |
c 28.608-11.56, 58.936-17.424, 90.16-17.424c 0.096,0, 0.192,0.008, 0.288,0.008l0-31.504 l-46.464,0 c-9.232,0-16.72-7.152-16.72-15.976
|
@@ -519,7 +519,7 @@
|
|
519 |
c-97.344,0-176.232-79.376-176.232-176.704s 78.888-175.72, 176.232-175.72C 320.816,95.632, 399.688,174.024, 399.688,271.352z M 79.248,271.352
|
520 |
c0,79.512, 64.704,144.704, 144.232,144.704c 79.512,0, 144.2-65.184, 144.2-144.704s-64.688-143.72-144.2-143.72
|
521 |
C 143.952,127.632, 79.248,191.832, 79.248,271.352z" />
|
522 |
-
|
523 |
C 259,479.928, 257.512,480.016, 256,480.016C 114.56,480.016-0.512,365.168-0.512,224c0-141.168, 115.072-256.016, 256.512-256.016
|
524 |
c 1.512,0, 3,0.088, 4.504,0.12c 0.832-0.032, 1.664-0.12, 2.496-0.12c 2.816,0, 5.592,0.2, 8.36,0.504
|
525 |
C 405.68-23.552, 512.512,87.976, 512.512,224z M 464.784,141.584c-8.816,2.56-30.96,8.12-70.032,12.696c 3.232,22.096, 5,45.448, 5,69.72
|
@@ -539,14 +539,14 @@
|
|
539 |
c 11.632,2.472, 32.456,6.232, 63.296,9.464c 12.144-44.856, 31.896-82.808, 55.568-109.984C 128.848,31.664, 86.76,67.68, 60.544,113.824z
|
540 |
M 345.328,18.408c 19.112,26.632, 34.24,62.512, 43.648,104.4c 31.704-3.64, 51.608-7.896, 61.648-10.432
|
541 |
C 426.616,70.84, 389.696,37.68, 345.328,18.408z" />
|
542 |
-
|
543 |
c 8.832,0, 16,7.168, 16,16S 120.832,424, 112,424z M 496,152c-8.832,0-16-7.168-16-16l0-80 L 400,56 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
544 |
L 512,136 C 512,144.832, 504.832,152, 496,152z M 112,56L 32,56 L 32,136 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 c0-8.832, 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
545 |
S 120.832,56, 112,56z M 496,424L 400,424 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 80,0 l0-80 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 512,408 C 512,416.832, 504.832,424, 496,424z" />
|
546 |
-
|
547 |
c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512.080,344 C 512.080,361.672, 497.752,376, 480.080,376z M 32.072,392l 145.376,0 l 39.312-38.624L 226.816,344L 480.080,344
|
548 |
l0-32 l-448,0 L 32.080,392 z M 32.072,56L 32.072,280 l 448,0 l0-224 L 32.072,56 z" />
|
549 |
-
|
550 |
M 400,247.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,255.024, 391.168,247.856, 400,247.856z
|
551 |
M 400,151.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,159.024, 391.168,151.856, 400,151.856z
|
552 |
M 400,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,63.024, 391.168,55.856, 400,55.856z
|
@@ -556,14 +556,14 @@
|
|
556 |
M 80,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 64,63.024, 71.168,55.856, 80,55.856z M 480,472.048
|
557 |
L 32,472.048 c-17.592,0-32-14.408-32-32l0-432.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,440.048 C 512,457.64, 497.592,472.048, 480,472.048z M 480,7.952L 32,7.952
|
558 |
L 32,440.048 l 448,0 L 480,7.952 z" />
|
559 |
-
|
560 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 346.376,188.608, 221.112,314.872, 50.936,314.872z M 51.080,478.688
|
561 |
c-9.056,0-16.384-7.328-16.384-16.384c0-9.056, 7.328-16.384, 16.384-16.384c 235.088,0, 426.336-191.248, 426.336-426.328
|
562 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 510.176,272.736, 304.224,478.688, 51.080,478.688z M 92.008,150.2
|
563 |
c-49.736,0-90.184-40.56-90.184-90.44c0-49.856, 40.456-90.456, 90.184-90.456s 90.2,40.592, 90.2,90.456
|
564 |
C 182.208,109.64, 141.744,150.2, 92.008,150.2z M 92.008,0.984c-32.304,0-58.584,26.376-58.584,58.784s 26.28,58.768, 58.584,58.768
|
565 |
c 32.312,0, 58.608-26.36, 58.608-58.768S 124.32,0.984, 92.008,0.984z" />
|
566 |
-
|
567 |
C 494.488,385.712, 388.672,480.336, 257.456,480.336c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16
|
568 |
c-0.656-2.96-1.056-6.016-1.056-9.168l0-107.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,181.504
|
569 |
c0,23.44-19.080,42.504-42.512,42.504L 42.576,224.008 c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.288, 0.512,10.528
|
@@ -575,7 +575,7 @@
|
|
575 |
c0-5.8-4.72-10.504-10.512-10.504L 42.576,63.672 c-5.8,0-10.504,4.704-10.504,10.504L 32.072,181.504 C 32.080,187.304, 36.784,192.008, 42.576,192.008z
|
576 |
M 416.264,181.504c0,5.8, 4.704,10.504, 10.504,10.504l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504l0-106.832 c0-5.8-4.72-10.504-10.512-10.504
|
577 |
l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,181.504 z" />
|
578 |
-
|
579 |
c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16c-0.656-2.96-1.056-6.016-1.056-9.168
|
580 |
l0-139.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,165.496 c0,23.44-19.080,42.504-42.512,42.504L 42.568,208
|
581 |
c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.296, 0.512,10.528C 41.080,340.048, 138.056,432.328, 257.456,432.328
|
@@ -585,36 +585,36 @@
|
|
585 |
l0-139.328 c0-5.808-4.72-10.504-10.512-10.504L 42.568,15.664 c-5.8,0-10.504,4.704-10.504,10.504L 32.064,165.496 C 32.080,171.296, 36.784,176, 42.568,176z
|
586 |
M 479.92,26.672c0-5.8-4.72-10.504-10.512-10.504l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,165.496 c0,5.8, 4.704,10.504, 10.504,10.504
|
587 |
l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504L 479.92,26.672 z" />
|
588 |
-
|
589 |
c 3,4.032, 7.704,6.424, 12.736,6.456c 5.592,0.048, 9.784-2.296, 12.832-6.28c 6.704-8.768, 164.168-216.112, 164.168-331.528
|
590 |
C 432.096,46.208, 352.736-31.352, 255.2-31.352z M 255.376,436.152c-37.2-52.832-143.472-211.032-143.472-294.608
|
591 |
c0-77.688, 64.28-140.888, 143.296-140.888c 79.888,0, 144.888,63.2, 144.888,140.888C 400.096,228.224, 293.016,384.056, 255.376,436.152z" />
|
592 |
-
|
593 |
c-0.992-3.752-0.504-7.504, 1-10.768C 0.608,221.56,0,218.544,0,215.368l0-175.656 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512,215.368
|
594 |
c0,0.856-0.184,1.664-0.248,2.504C 512.168,220.168, 512.16,222.592, 511.488,225.008z M 81.952,408.288l 343.184,0 l 46.56-160.92L 322.528,247.368
|
595 |
c-0.72-38.408-27.952-64.84-66.528-64.84s-65.312,26.44-66.032,64.84L 37.080,247.368 L 81.952,408.288z M 480,39.712L 32,39.712 L 32,215.368 l 131.56,0
|
596 |
c 13.968-40.216, 47.888-64.84, 92.44-64.84s 78.968,24.624, 92.936,64.84L 480,215.368 L 480,39.712 z" />
|
597 |
-
|
598 |
c-17.672,0-32-14.328-32-32l0-384 c0-17.672, 14.328-32, 32-32l 272,0 c 17.672,0, 32,14.328, 32,32L 336,287.992 L 208,416L 32,416 z M 304,0L 32,0 L 32,384 l 144,0 l0-128 l 128,0 L 304,0 z M 208,288L 208,370.752
|
599 |
L 290.736,288L 208,288 z" />
|
600 |
-
|
601 |
c-8.832,0-16-6.72-16-15l0-16.984 L 111.68,448.016 c-8.84,0-16-7.16-16-16l0-111.832 c0-8.84, 7.16-16, 16-16l 127.904,0 l0-32.048 L 65.288,272.136
|
602 |
c-4.576,0-8.936-1.952-11.968-5.376l-49.84-56.656c-5.376-6.064-5.376-15.184,0-21.248l 49.84-56.144c 3.056-3.424, 7.392-4.872, 11.968-4.872
|
603 |
l 174.296,0 l0-144.84 c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 271.584,127.84 l 128.232,0 c 8.84,0, 16,7.16, 16,16L 415.816,256.144 c0,8.84-7.16,16-16,16
|
604 |
L 271.584,272.144 l0,32.048 l 175.128,0 c 4.576,0, 8.936,1.952, 11.968,5.376l 49.848,56.16C 513.896,371.784, 513.896,380.904, 508.528,386.968z M 383.824,159.84
|
605 |
L 72.48,159.84 l-35.64,39.64l 35.64,40.656l 311.344,0 L 383.824,159.84 z M 439.52,336.184L 127.68,336.184 L 127.68,416.016 l 311.84,0 l 35.64-39.672L 439.52,336.184z" />
|
606 |
-
|
607 |
c-8.832,0-15-6.72-15-15L 216.632,432L 40.248,432 c-8.84,0-16-7.16-16-16l0-192 c0-8.84, 7.16-16, 16-16l 176.168,0 l0-225
|
608 |
c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 248.416,208 l 133.768,0 c 4.44,0, 8.672,1.84, 11.704,5.080l 89.56,96
|
609 |
C 489.184,315.232, 489.184,324.768, 483.456,330.92z M 375.232,240L 56.248,240 L 56.248,400 l 318.984,0 l 74.64-80L 375.232,240z" />
|
610 |
-
|
611 |
c-0.144,0-0.28-0.056-0.424-0.064L 96,480.16 c-8.8,0-19.376-6.36-23.512-14.128L 2.736,334.888c-4.144-7.768-3.312-19.968, 1.816-27.128
|
612 |
L 244.56-26.816c 2.576-3.592, 6-5.408, 9.416-5.408c 3.392,0, 6.792,1.768, 9.384,5.296L 507.312,305.2
|
613 |
C 512.504,312.296, 513.44,324.472, 509.36,332.264z M 471.184,336.184L 385.456,336.184 l 34.328,98.304L 471.184,336.184z M 287.672,448.16l 102.984,0 l-31.944-91.464
|
614 |
L 287.672,448.16z M 334.12,336.184L 185.296,336.184 l 70.336,101.048L 334.12,336.184z M 156.944,351.456L 124.856,448.16l 99.408,0 L 156.944,351.456z
|
615 |
M 340.376,304.184L 254.36,57.912L 172.632,304.184L 340.376,304.184 z M 218.464,64.456L 46.496,304.184l 92.416,0 L 218.464,64.456z M 374.272,304.184l 92.584,0
|
616 |
L 290.368,63.904L 374.272,304.184z M 94.24,438.792l 34.048-102.608L 39.664,336.184 L 94.24,438.792z" />
|
617 |
-
|
618 |
l-320.248,0.080c-17.672,0-32-14.328-32-32l0-240.472 c0-53.016, 42.984-96, 96-96l 192.328,0 c 53.016,0, 95.504,42.984, 95.504,96l 0.032,16.424
|
619 |
c 14.512-0.112, 29.304-0.2, 32.488-0.2c 52.888,0, 95.784,42.52, 95.784,95.536C 512.064,228.664, 469.168,272.104, 416.28,272.104z
|
620 |
M 351.768,63.88c0-35.296-28.2-64-63.504-64L 95.936-0.12 c-35.296,0-64,28.704-64,64L 31.888,304.352l 0.048,0 l 320.248-0.096L 351.768,63.88z
|
@@ -623,13 +623,13 @@
|
|
623 |
s-16-7.168-16-16l0-80 C 271.936,375.28, 279.104,368.12, 287.936,368.12z M 95.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
624 |
s-16-7.168-16-16l0-80 C 79.936,375.28, 87.104,368.12, 95.936,368.12z M 191.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
625 |
s-16-7.168-16-16l0-80 C 175.936,375.28, 183.104,368.12, 191.936,368.12z" />
|
626 |
-
|
627 |
c-2.936-5.768-1.872-12.768, 2.656-17.392c 2.904-2.952, 6.816-4.512, 10.768-4.512c 2.216,0, 4.472,0.488, 6.56,1.504l 152.864,63.488
|
628 |
c 2.8,1.344, 5.112,3.528, 6.608,6.248l 75.44,148.448c 3.216,5.8, 2.264,13.016-2.328,17.784C 379.672,341.696, 372.488,342.864, 366.592,339.864
|
629 |
z M 178.928,147.592l 43.504,88.84l 43.936-54.992L 178.928,147.592z M 292.352,200.192l-44.4,55.576l 88.392,34.88L 292.352,200.192z M 256,480
|
630 |
C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
631 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
632 |
-
|
633 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
634 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
635 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
@@ -646,7 +646,7 @@
|
|
646 |
l-5.848-0.136c-0.112,0-0.2-0.048-0.328-0.064L 379.384,480.112c-6.464-0.144-11.808-5.488-11.96-11.96l-0.016-8.208
|
647 |
c 0.984-7.616, 6.968-12.080, 13.44-11.936l 75.624-0.2L 319.328,311.496c-6.248-6.248-6.248-16.384,0-22.632
|
648 |
C 325.576,282.624, 335.704,282.624, 341.952,288.864z" />
|
649 |
-
|
650 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
651 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
652 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
@@ -663,7 +663,7 @@
|
|
663 |
c 6.248,6.248, 6.248,16.384,0,22.632c-6.248,6.24-16.376,6.24-22.624,0L 350.84,342.744L 351.28,420.16c 0.144,6.464-4.984,12.096-11.448,11.944
|
664 |
l-8.208-0.008c-6.48-0.16-11.832-4.008-11.968-10.472l-0.328-115.504c0-0.112, 0.44-0.192, 0.44-0.304l-0.64-5.856
|
665 |
C 319.064,296.712, 319.824,293.824, 321.92,291.744z" />
|
666 |
-
|
667 |
c-5.56,2.92-21.768,12.016-44.44,24.952l-17.64,10.064l-16.624-11.672c-12.36-8.704-39.232-29.408-80.144-70.312
|
668 |
c-41.088-41.080-61.728-67.856-70.384-80.168l-11.672-16.624l 10.080-17.64c 9.768-17.096, 21.472-37.752, 25-44.472
|
669 |
c 2.84-5.392, 3.064-9.080, 3.064-10.080c0-0.16,0-0.296-0.016-0.408c-7.68-12.248-57.296-86.968-66.336-100.16
|
@@ -675,7 +675,7 @@
|
|
675 |
c-4.344,8.248-18.56,33.232-25.544,45.456c 7.56,10.768, 26.936,36.064, 66.832,75.92c 39.592,39.608, 65.096,59.16, 75.92,66.768
|
676 |
c 12.216-6.968, 37.2-21.168, 45.424-25.488c 15.504-8.184, 30.984-9.112, 41.424-2.472c 9.84,6.232, 94.904,62.984, 103,68.84
|
677 |
C 507.728,359.6, 511.848,369.496, 511.848,380.224L 511.848,380.224z" />
|
678 |
-
|
679 |
c 17.592,0, 32,14.408, 32,32L 512,448.048 C 512,465.64, 497.592,480.048, 480,480.048z M 480-0.048L 32-0.048 L 32,448.048 l 448,0 L 480-0.048 z M 112,303.848l 32,0 l0-32 c0-8.832, 7.168-16, 16-16
|
680 |
s 16,7.168, 16,16l0,32 l 32,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-32,0 l0,32 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-32 l-32,0 c-8.832,0-16-7.168-16-16
|
681 |
S 103.168,303.848, 112,303.848z M 216.568,184.424c-6.248,6.248-16.376,6.248-22.624,0L 160,150.488l-33.944,33.936
|
@@ -684,7 +684,7 @@
|
|
684 |
l-33.936,33.936l 33.936,33.936C 222.816,168.040, 222.816,178.168, 216.568,184.424z M 304,303.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,335.848
|
685 |
c-8.832,0-16-7.168-16-16S 295.168,303.848, 304,303.848z M 304,143.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,175.848 c-8.832,0-16-7.168-16-16
|
686 |
S 295.168,143.848, 304,143.848z M 304,79.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,111.848 c-8.832,0-16-7.168-16-16S 295.168,79.848, 304,79.848z" />
|
687 |
-
|
688 |
c-115.488,0-209.080-69.224-209.080-155.816c0-53.936, 26.456-111.44, 81.704-139.688c0-0.328-0.096-0.576-0.096-0.936
|
689 |
c0-23.44-19.512-55.576-27.2-68.832l 0.032,0 c-0.608-1.44-0.976-3-0.976-4.672c0-6.56, 5.288-11.832, 11.848-11.832
|
690 |
c 0.968,0, 2.544,0.2, 3.112,0.2c 0.16,0, 0.216,0, 0.2-0.048c 40.832,6.672, 101.128,52.624, 110.064,63.512
|
@@ -699,12 +699,12 @@
|
|
699 |
c 7.744-9.392, 51.112-50.752, 86.408-56.504c-0.016,0.032, 0.032,0.032, 0.184,0.032c 0.472,0, 1.84-0.168, 2.672-0.168
|
700 |
c 5.672,0, 10.248,4.56, 10.248,10.232c0,1.44-0.328,2.8-0.84,4.032l 0.032,0 c-6.64,11.44-17.064,44.872-17.064,65.128
|
701 |
c0,0.312-0.096,0.528-0.096,0.816C 490.048,92.672, 512.168,128.296, 512.168,174.904z" />
|
702 |
-
|
703 |
l-0.016,0 l0-32 l 0.016,0 l0-191.408 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512.008,352.264 C 512.008,369.856, 497.6,384.264, 480.008,384.264z
|
704 |
M 191.992,415.264c0,8.832, 7.168,16, 16,16l 96.216,0 c 8.832,0, 16-7.168, 16-16l0-31 L 191.992,384.264 L 191.992,415.264 z M 32.008,352.264l 448,0 l0-112.128 L 303.824,240.136 l0,16.376
|
705 |
c0,17.64-14.36,32-32,32l-31.872,0 c-17.64,0-32-14.36-32-32l0-16.376 L 32.008,240.136 L 32.008,352.264 z M 271.848,175.936l-31.904,0 L 239.944,256.512 l 31.872,0 L 271.848,175.936z
|
706 |
M 32.008,16.736L 32.008,208.144 l 175.936,0 l0-32.2 c0-17.64, 14.36-32, 32-32l 31.872,0 c 17.64,0, 32,14.36, 32,32l0,32.2 l 176.184,0 l0-191.408 L 32.008,16.736 z" />
|
707 |
-
|
708 |
C 17.648,484.176-0.168,470.912-0.168,451.976l0-389.056 c0-16.048, 12.168-31.392, 27.656-35.704l 206.080-57.112c 5.512-1.528, 12.608-2.376, 19.968-2.376
|
709 |
c 5.048,0, 12.504,0.392, 19.36,2.264l 211.512,57.296c 15.528,4.2, 27.752,19.512, 27.752,35.624L 512.16,451.976 C 512.168,470.896, 494.352,484.208, 476.040,479.224
|
710 |
z M 240,1.528L 35.536,58.056c-1.544,0.424-3.704,3.248-3.704,4.856L 31.832,446.928 l 201.736-55.768c 1.952-0.544, 4.144-0.968, 6.432-1.328L 240,1.528 z
|
@@ -721,31 +721,31 @@
|
|
721 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,221.016, 205.832,229.848, 197.312,232.256z M 197.312,136.256l-111.968,31.512
|
722 |
c-8.456,2.36-17.344-2.576-19.736-11.080s 2.56-17.328, 11.080-19.736l 111.968-31.512c 1.44-0.408, 2.904-0.592, 4.344-0.592
|
723 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,125.024, 205.832,133.848, 197.312,136.256z" />
|
724 |
-
|
725 |
l-41.048,0 l-25.704,88.64c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
726 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
727 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 319.768,409.536l 76.016-64.792L 243.728,344.744 L 319.768,409.536z M 407.512,119.904L 214.768,119.904
|
728 |
l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z
|
729 |
M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
730 |
-
|
731 |
c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
732 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
733 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 407.512,119.904L 214.768,119.904 l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936
|
734 |
c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40
|
735 |
s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
736 |
-
|
737 |
c0-17.672, 14.328-32, 32-32l 352,0 c 17.672,0, 32,14.328, 32,32L 464,368.648 C 464,386.32, 449.672,400.648, 432,400.648z M 208.592,431.336c0,8.832, 7.168,16, 16,16l 63.816,0
|
738 |
c 8.832,0, 16-7.168, 16-16l0-30.688 L 208.592,400.648 L 208.592,431.336 z M 432,0.664L 80,0.664 L 80,368.648 l 96.592,0 l0-32.92 c0,0-0.424-15.984, 15.904-15.984
|
739 |
c 18,0, 16.096,15.984, 16.096,15.984l0,32.92 l 95.816,0 l0-32.92 c0,0-1.064-16.064, 15.936-16.064c 16,0, 16.064,16.064, 16.064,16.064l0,32.92 L 432,368.648 L 432,0.664 z
|
740 |
" />
|
741 |
-
|
742 |
l0-91.832 c0-6.184-3.56-11.832-9.168-14.472c-5.544-2.656-12.216-1.84-16.984,2.112L 5.832,240.544c-3.72,3.048-5.856,7.592-5.84,12.392
|
743 |
s 2.168,9.344, 5.888,12.376L 213.36,435.592c 4.784,3.904, 11.392,4.656, 16.968,2.048c 5.576-2.656, 9.144-8.28, 9.144-14.456l0-89.816
|
744 |
c 92.984-2.952, 165.496-32.856, 212.168-87.488c 75.968-88.888, 59.016-218.080, 58.216-223.456C 508.672,14.592, 502.92,8.832, 495.032,8.832z
|
745 |
M 223.472,205.096c 0.016,0, 0.032,0, 0.032,0c 160.112-0.096, 221.296-54.16, 256.232-101.904c-5.112,38.248-20.032,84.36-52.504,122.016
|
746 |
c-43.168,50.048-112.72,76.424-203.768,76.424c-8.84,0-16,7.16-16,16l0,71.888 L 41.248,252.84l 166.216-137.952l0,74.2
|
747 |
c0,4.248, 1.688,8.328, 4.704,11.328C 215.168,203.408, 219.232,205.096, 223.472,205.096z" />
|
748 |
-
|
749 |
l 0.504-91.832c0-6.184, 3.56-11.832, 9.168-14.472c 5.544-2.656, 12.216-1.84, 16.984,2.112l 207.488,171.888
|
750 |
c 3.72,3.048, 5.856,7.592, 5.84,12.392s-2.168,9.344-5.888,12.376L 298.64,435.592c-4.784,3.904-11.392,4.656-16.968,2.048
|
751 |
c-5.576-2.656-9.144-8.28-9.144-14.456l-0.504-89.816C 179.048,330.424, 107.040,300.512, 60.36,245.888
|
@@ -753,7 +753,7 @@
|
|
753 |
C 128.392,205, 67.2,150.936, 32.264,103.184c 5.112,38.248, 20.032,84.36, 52.504,122.016c 43.168,50.048, 112.72,76.424, 203.768,76.424
|
754 |
c 8.84,0, 16,7.16, 16,16l0,71.888 l 166.216-136.672L 304.528,114.888l0,74.2 c0,4.248-1.688,8.328-4.704,11.328
|
755 |
C 296.832,203.408, 292.768,205.096, 288.528,205.096z" />
|
756 |
-
|
757 |
c 3.92,4.528, 4.872,10.768, 2.432,16.256s-7.832,8.848-13.76,8.848l-4.344,0 c-44.56,0-121.488-3.832-155.832-38.672l-6.928-6.88
|
758 |
c-36.64-37.384-43.144-98.688-23.84-145.288L 18.616,100.944c-24.896-25.24-24.896-66.16,0-91.408l 22.536-22.848
|
759 |
C 53.6-25.928, 69.92-32.24, 86.24-32.24c 16.312,0, 32.632,6.312, 45.072,18.928l 187.36,188.864c 17.72-9.576, 42-15.832, 62.392-15.832
|
@@ -764,24 +764,24 @@
|
|
764 |
c-7.712,31.192-3.216,74.304, 21.008,99.024l 6.896,6.96c 20.776,21.080, 74.728,27.312, 104.6,29.152l-58.68-67.768
|
765 |
c-5.248-6.064-4.984-15.2, 0.608-20.936L 394.72,265.28c 5.624-5.792, 14.72-6.128, 20.776-0.76l 65.304,58.816
|
766 |
C 478.856,291.656, 472.704,245.648, 452.832,225.496z" />
|
767 |
-
|
768 |
c0-43.576-35.456-79.040-79.048-79.040c-43.592,0-79.056,35.464-79.056,79.040c0,8.832, 7.16,15.992, 15.992,15.992s 15.992-7.16, 15.992-15.992
|
769 |
c0-25.952, 21.112-47.064, 47.080-47.064c 25.96,0, 47.080,21.112, 47.080,47.064L 239.776,209.216 L 15.832,209.216 c-8.832,0-15.992,7.168-15.992,15.992
|
770 |
c0,123.648, 90.456,202.056, 239.928,207.24L 239.768,463.936 c0,8.832, 7.16,15.984, 15.992,15.984c 8.84,0, 15.984-7.16, 15.984-15.984l0-31.488
|
771 |
C 421.248,427.272, 512.16,348.856, 512.16,225.208z M 479.576,241.192C 471.688,341.456, 390.128,400.752, 255.752,400.752
|
772 |
c-134.376,0-215.448-59.296-223.328-159.552L 479.576,241.2 z" />
|
773 |
-
|
774 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 22.008,0 l 37.12-369.96c 1.552-17.312, 16.304-30.888, 33.568-30.888l 199.4,0 c 17.264,0, 32,13.576, 33.544,30.736
|
775 |
l 37.152,370.12l 22.008,0 c 8.84,0, 16,7.168, 16,16S 457.24,400.488, 448.4,400.488z M 208.24,444.12c0,2.616, 2.136,4.752, 4.76,4.752l 85.992,0
|
776 |
c 2.624,0, 4.768-2.136, 4.768-4.752l0-43.632 L 208.24,400.488 L 208.24,444.12 z M 357.384,1.4c-0.080-0.888-1.128-1.768-1.688-1.768L 156.296-0.368
|
777 |
c-0.56,0-1.616,0.872-1.712,1.92l-36.816,366.928l 276.456,0 L 357.384,1.4z" />
|
778 |
-
|
779 |
c-10.84,0-27.248,0-37.96-10.72L 9.44,216.304C 3.36,210.224,0,202.152,0,193.56c0-8.608, 3.344-16.688, 9.424-22.768l 193.4-193.36
|
780 |
C 208.88-28.656, 216.96-32, 225.552-32s 16.68,3.344, 22.744,9.424l 252.976,252.984C 512.12,241.232, 512.056,256.816, 511.992,271.864z
|
781 |
M 478.648,253.032L 225.44,0.064L 32.064,193.672L 284.76,446.424C 287.304,448, 296.464,448, 300.256,448l 7.2-0.024L 473.056,448
|
782 |
c 3.832,0, 6.936-3.12, 6.936-6.952l0-169.312 C 480.024,265.648, 480.056,255.464, 478.648,253.032z M 384.008,416c-35.344,0-64-28.656-64-64s 28.656-64, 64-64
|
783 |
s 64,28.656, 64,64S 419.352,416, 384.008,416z M 384.008,320c-17.672,0-32,14.328-32,32s 14.328,32, 32,32s 32-14.328, 32-32S 401.68,320, 384.008,320z" />
|
784 |
-
|
785 |
M 320,438.512c 72.112-21.496, 128.824-78.4, 150.352-150.512L 366.568,288 c-11.208,19.264-27.296,35.336-46.568,46.528L 320,438.512 z M 351.816,223.896
|
786 |
c0-52.968-42.896-95.904-95.816-95.904s-95.816,42.936-95.816,95.904S 203.088,319.808, 256,319.808S 351.816,276.864, 351.816,223.896z
|
787 |
M 224,445.536c 10.456,1.496, 21.128,2.312, 32,2.312c 10.864,0, 21.544-0.816, 32-2.312l0-97.904 c-10.24,2.648-20.928,4.2-32,4.2
|
@@ -792,7 +792,7 @@
|
|
792 |
C 234.248,97.552, 244.928,96, 256,96s 21.76,1.552, 32,4.2L 288,2.312 z M 320,9.336L 320,113.304 c 19.328,11.224, 35.448,27.368, 46.656,46.696l 103.736,0
|
793 |
C 448.896,87.832, 392.16,30.84, 320,9.336z M 379.752,192c 2.624,10.2, 4.080,20.88, 4.080,31.912c0,11.096-1.464,21.832-4.128,32.088l 97.704,0
|
794 |
c 1.504-10.496, 2.44-21.168, 2.44-32.080c0-10.848-0.92-21.488-2.416-31.92L 379.752,192 z" />
|
795 |
-
|
796 |
l 8.208,0.008c 6.472,0.152, 11.824,4, 11.96,10.464l 0.336,115.504c0,0.112-0.44,0.2-0.44,0.312l 0.632,5.856
|
797 |
c 0.064,3.248-0.696,6.144-2.792,8.216c-2.072,2.088-4.976,3.36-8.2,3.272l-5.848-0.136c-0.112,0-0.2-0.040-0.32-0.056
|
798 |
L 380.384,479.656c-6.464-0.144-11.816-5.488-11.96-11.96l-0.016-8.208c 0.984-7.624, 6.976-12.080, 13.44-11.936l 75.624-0.2L 320.328,311.040
|
@@ -810,7 +810,7 @@
|
|
810 |
C 7.472,479.432, 4.552,478.16, 2.496,476.072C 0.392,474-0.368,471.104-0.296,467.856L 0.336,462c0-0.112-0.44-0.192-0.44-0.312
|
811 |
l 0.336-115.504c 0.144-6.464, 5.488-10.312, 11.96-10.464l 8.712-0.008c 6.464-0.144, 11.592,5.48, 11.448,11.944L 31.912,424.768l 137.632-136.36
|
812 |
c 6.24-6.248, 16.376-6.248, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 55.024,447.336z" />
|
813 |
-
|
814 |
c-6.472,0.144-11.592-5.488-11.456-11.944l 0.448-77.624L 26.952,474.872c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624
|
815 |
l 132.56-131.304l-75.544-0.2c-6.464,0.144-12.456-4.32-13.44-11.936l 0.016-8.208c 0.16-6.472, 5.504-11.824, 11.96-11.968l 114.752,0.504
|
816 |
c 0.128-0.008, 0.208-0.056, 0.32-0.056l 5.848-0.136c 3.224-0.088, 6.136,1.176, 8.2,3.272c 2.104,2.072, 2.856,4.976, 2.792,8.216
|
@@ -828,7 +828,7 @@
|
|
828 |
c-3.224,0.088-6.144-2.176-8.2-4.272c-2.104-2.072-2.856-4.968-2.792-8.216l 0.632-5.848c0-0.12-0.44-0.192-0.44-0.304
|
829 |
l 0.336-115.504c 0.144-6.464, 5.488-10.304, 11.96-10.464l 8.712-0.016c 6.472-0.144, 11.592,5.488, 11.448,11.952l-0.44,77.264l 133.632-131.512
|
830 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 375.032,127.552z" />
|
831 |
-
|
832 |
M 459.392,314.336l-38.768-34.768c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
833 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
834 |
l-4.232,4.048c-0.080,0.080-0.168,0.112-0.272,0.184l-64.864,59.216c-4.68,4.472-12.232,4.472-16.92,0l-2.736-4.032
|
@@ -838,19 +838,19 @@
|
|
838 |
l-38.608-34.624c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
839 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
840 |
L 502.904,53.616z" />
|
841 |
-
|
842 |
c-17.672,0-32-14.328-32-32l0-320 c0-17.672, 14.328-32, 32-32l 416,0 c 17.672,0, 32,14.328, 32,32L 482.92,255.648 l-32-30.544L 450.92,5.312 z M 135.064,133.312l 32.24,0
|
843 |
c 22.432,127.248, 133.272,224, 266.944,224c 5.608,0, 10.928-0.048, 16.312-0.088l-58.624-58.616c-6.232-6.248-6.232-16.376,0-22.624
|
844 |
c 3.128-3.128, 7.232-4.688, 11.328-4.688s 8.168,1.56, 11.296,4.688l 94.512,97L 414.56,470c-6.232,6.248-16.36,6.248-22.624,0
|
845 |
c-6.232-6.248-6.232-16.376,0-22.624l 58.088-58.080c-5.016,0.008-9.984,0.024-15.104,0.024C 283.392,389.32, 158.136,278.344, 135.064,133.312z" />
|
846 |
-
|
847 |
C 158.936,209.648, 160,216.688, 160,224c0,9.152-1.608,17.904-4.44,26.088L 367.44,352.896C 381.984,332.992, 405.448,320, 432,320
|
848 |
c 44.184,0, 80,35.824, 80,80c0,44.184-35.816,80-80,80S 352,444.184, 352,400c0-6.216, 0.784-12.232, 2.12-18.040L 139.2,277.672
|
849 |
C 124.56,293.808, 103.504,304, 80,304C 35.816,304,0,268.184,0,224c0-44.176, 35.816-80, 80-80c 25.448,0, 48.064,11.912, 62.712,30.432l 211.552-107.816
|
850 |
C 352.832,60.632, 352,54.424, 352,48c0-44.184, 35.816-80, 80-80s 80,35.816, 80,80S 476.184,128, 432,128z M 432,448c 26.504,0, 48-21.496, 48-48s-21.496-48-48-48
|
851 |
s-48,21.496-48,48S 405.496,448, 432,448z M 80,176c-26.512,0-48,21.496-48,48s 21.488,48, 48,48c 26.504,0, 48-21.496, 48-48S 106.504,176, 80,176z M 432,0
|
852 |
c-26.504,0-48,21.496-48,48s 21.496,48, 48,48s 48-21.496, 48-48S 458.504,0, 432,0z" />
|
853 |
-
|
854 |
c 8.648,4.312, 19.416,9.672, 31.056,18.624L 76.568,115.040c-9.2-7.064-17.664-10.784-25.848-14.856c-34.32-17.112-50.496-33.968-50.496-114.328
|
855 |
l 0.272-16.352l 15.728,0.352c 84.816,0, 100.664,19.16, 116.552,52.16c 3.48,7.232, 5.416,12.12, 11.28,21.864l-23.728,21.552
|
856 |
C 113.216,55.728, 108.776,46.496, 104.84,38.368z M 352.48,385.672c-35.384,0-64.176-28.792-64.176-64.168c0-35.392, 28.8-64.176, 64.176-64.176
|
@@ -867,7 +867,7 @@
|
|
867 |
c-0.616,2.608-1.888,5.032-3.696,7.032c-29.424,32.608-73.872,81.904-77.28,85.816c-2.224,2.704-5.304,4.624-8.784,5.424l-73.296,16.768
|
868 |
l 35.952,38l 91.016,0 c 5.56,0, 10.728,2.888, 13.632,7.624c 7.040,11.464, 15.208,27.768, 24.672,46.648c 16.024,31.976, 35.96,74.272, 53.56,94.816
|
869 |
c 20.792,24.264, 41.912,39.504, 68.448,49.424c 59.048,22.064, 119.984,24.384, 147.84,24.176C 480.952,419.384, 479.84,350.976, 461,300.264z" />
|
870 |
-
|
871 |
M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224.008-100.488, 224.008-224S 379.512-0.504, 256-0.504z M 232.472,79.76l 40.256,0
|
872 |
l0,40.624 l-40.256,0 L 232.472,79.76 z M 255.528,368.232c-23.44,0-42.752-6.32-57.92-18.944c-15.168-12.632-22.544-37.928-22.168-58.888l 0.592-1.168l 36.72,0
|
873 |
c0,12.504, 4.168,30.472, 12.504,36.92c 8.328,6.44, 18.424,9.664, 30.28,9.664c 13.664,0, 24.168-3.712, 31.536-11.136
|
@@ -875,11 +875,11 @@
|
|
875 |
c-13.288-11.984-21.496-21.616-24.616-28.904c-3.128-7.296-4.752-20.384-4.872-39.256l 38.48,0 c0,11.84, 0.752,20.568, 2.248,26.168
|
876 |
c 1.488,5.592, 5.752,11.912, 12.784,18.944c 15.112,14.576, 27.248,28.832, 36.44,42.776c 9.168,13.928, 13.76,29.296, 13.76,46.096
|
877 |
c0,23.44-7.088,41.704-21.288,54.784C 301.104,361.696, 281.176,368.232, 255.528,368.232z" />
|
878 |
-
|
879 |
C 161.448,0, 78.704,81.8, 78.704,195.032c0,8.832-7.168,16-16,16s-16-7.168-16-16C 46.704,64.16, 143.8-32, 274.664-32S 512,74.472, 512,205.344
|
880 |
C 512,336.2, 418.664,433.296, 287.8,433.296z M 240.128,255.872L 240.128,464 c0,8.832-7.168,16-16,16C 99.504,480,0,380.496,0,255.872c0-8.832, 7.168-16, 16-16
|
881 |
l 208.128,0 C 232.96,239.872, 240.128,247.040, 240.128,255.872z M 208.128,271.872L 32.656,271.872 C 40.384,366.12, 113.88,439.616, 208.128,447.344L 208.128,271.872 z" />
|
882 |
-
|
883 |
C 354,444.32, 46.44,136.648, 46.44,136.648c-2.008-2.016-3.472-4.536-4.224-7.296c-6.936-25.632-41.68-139.36-42.024-140.504
|
884 |
c-1.784-5.824-0.192-12.168, 4.104-16.464c 3.088-3.072, 7.2-4.72, 11.416-4.72c 1.656,0, 3.328,0.248, 4.96,0.784
|
885 |
c 1.176,0.384, 118.568,38.328, 137.888,44.096c 2.544,0.768, 4.872,2.144, 6.768,4.016c 12.208,12.064, 299.064,295.728, 318.104,315.392
|
@@ -891,7 +891,7 @@
|
|
891 |
c-5.056,13.024-13.928,29.76-29.288,45.248c-15.696,15.824-31.616,25.16-44.376,30.68c 1.088,1.080, 1.928,1.928, 2.256,2.248
|
892 |
c 1.832,1.808, 18.448,17.688, 39.16,17.688c 11.92,0, 23.624-5.44, 34.808-16.16c 13.256-12.712, 20.088-25.256, 20.312-37.296
|
893 |
C 480.264,381.856, 473.592,368.624, 460.208,354.816z" />
|
894 |
-
|
895 |
c 17.672,0, 32,14.328, 32,32L 431.672,234.184 l-32-30.544L 399.672-0.144 z M 487.112,459.28c-14.44,13.84-30.376,20.856-47.376,20.856
|
896 |
c-26.608,0-46.016-17.184-51.296-22.448c-7.488-7.392-219.584-219.176-219.584-219.176c-1.664-1.696-2.88-3.768-3.504-6.072
|
897 |
c-5.744-21.224-34.536-115.496-34.824-116.432c-1.488-4.832-0.16-10.096, 3.4-13.608c 2.552-2.56, 5.96-3.92, 9.456-3.92
|
@@ -900,7 +900,7 @@
|
|
900 |
M 465.216,379.44c-8.904-9.184-78.624-78.080-207.224-204.768l-9.84-9.704c-14.744-4.56-50.048-15.904-76.736-24.512
|
901 |
c 8.592,28.376, 18.904,62.656, 23.504,78.872C 222.4,246.768, 404.112,428.2, 411.016,435.016c 1.344,1.344, 13.608,13.128, 28.72,13.128
|
902 |
c 8.576,0, 16.84-3.912, 25.232-11.96c 10.032-9.624, 15.2-18.872, 15.344-27.512C 480.472,399.776, 475.392,389.944, 465.216,379.44z" />
|
903 |
-
|
904 |
c 0.192,1.752, 0.128,3.56-0.288,5.376c-1.368,7.456-7.864,13.112-15.712,13.112c-2.944,0-5.672-0.848-8.040-2.24L 172.968,400.048
|
905 |
c-5.384-1.336-9.376-5.36-11.016-10.336c-1.24-2.272-2-4.832-2-7.6L 159.952,95.84 c-15.232,10.192-34.704,16.328-55.936,16.328
|
906 |
c-48.768,0-88.32-32.304-88.32-72.136c0-39.84, 39.552-72.152, 88.32-72.152c 48.784,0, 88.304,32.304, 88.304,72.152
|
@@ -910,42 +910,42 @@
|
|
910 |
c 29.616,0, 51.2-16.696, 55.592-33.704l0-0.184 c0-1.616, 0.312-3.144, 0.76-4.608c 0.032-0.496, 0.112-0.984, 0.112-1.48
|
911 |
C 160.816,21.12, 137.616,0.024, 104.352,0.024z M 407.848,80.024c-32.984,0-55.976,21.088-55.976,40S 374.864,160, 407.848,160
|
912 |
c 32.976,0, 55.968-21.064, 55.968-39.976S 440.832,80.024, 407.848,80.024z" />
|
913 |
-
|
914 |
c-6.272-2.168-10.8-8.056-10.8-15.064l0-354.2 c-16.96,12.56-39.216,20.264-63.688,20.264c-53.032,0-96.056-35.888-96.056-80.144
|
915 |
c0-44.272, 43.024-80.168, 96.056-80.168c 53.056,0, 96.040,35.888, 96.040,80.168c0,1.96-0.184,3.88-0.352,5.816L 272.744,426.656 L 403.68,295.728
|
916 |
c 6.24-6.248, 16.376-6.248, 22.624,0S 432.552,312.112, 426.304,318.352z M 176.688,0.712c-37.824,0-64.176,25.272-64.176,47.936
|
917 |
s 26.36,47.912, 64.176,47.912c 37.016,0, 63-24.2, 64.064-46.496l0-2.84 C 239.68,24.936, 213.704,0.712, 176.688,0.712z" />
|
918 |
-
|
919 |
L 255.44,480 C 211.632,480, 176,442.624, 176,396.688l0-190.704 C 176,161.528, 210.152,128, 255.44,128z M 208,396.688C 208,424.984, 229.28,448, 255.44,448l 3.8,0
|
920 |
C 284.752,448, 304,425.936, 304,396.688l0-190.704 C 304,178.488, 286.016,160, 259.232,160L 255.44,160 C 227.504,160, 208,178.904, 208,205.984L 208,396.688 z M 400,304
|
921 |
c-8.84,0-16-7.168-16-16l0-66.536 C 384,126.264, 350.016,80, 280.128,80L 232.56,80 C 141.16,80, 128,156.92, 128,221.464L 128,288 c0,8.832-7.168,16-16,16
|
922 |
s-16-7.168-16-16l0-66.536 C 96,111.216, 141.944,48, 232.56,48L 240,48 l0-48 L 160,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16
|
923 |
L 272,0 l0,48 l 8.128,0 C 342.112,48, 416,78.096, 416,221.464L 416,288 C 416,296.832, 408.84,304, 400,304z" />
|
924 |
-
|
925 |
c 10.248,0, 16,13.16, 16,15.992l0,0.008 c0,2.912-5.44,16.208-16,16.208L 51.52,109.288 c-10.688,0-19.36,8.672-19.36,19.36L 32.16,377
|
926 |
c0,10.696, 8.664,19.36, 19.36,19.36l 409.136,0.504c 10.688,0, 19.36-8.664, 19.36-19.36l0-248.848 c0-10.688-8.672-19.36-19.36-19.36L 259.072,109.296
|
927 |
l 37.992,34.456c 4.672,4.472, 6.184,11.704, 1.512,16.168l-2.736,4.032c-4.688,4.472-12.248,4.472-16.92,0l-64.864-59.216
|
928 |
c-0.096-0.080-0.184-0.112-0.264-0.184l-4.24-4.048c-2.336-2.216-3.504-5.168-3.488-8.112c-0.016-2.952, 1.144-5.888, 3.488-8.144
|
929 |
l 4.24-4.048c 0.080-0.080, 0.184-0.096, 0.264-0.168l 63.864-57.752c 4.672-4.472, 12.232-4.472, 16.92,0l 2.736,4.032
|
930 |
c 4.672,4.472, 3.16,11.72-1.512,16.184l-38.568,34.584L 480,77.080 c 17.672,0, 32,14.32, 32,32l0,288 C 512,414.752, 497.672,429.080, 480,429.080z" />
|
931 |
-
|
932 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 0.168,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
933 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624L 58.416,208.168z M 479.832,480L 207.832,480 c-17.68,0-32-14.328-32-32l0-144 l 32.208,0 L 208.040,428.488
|
934 |
c0,10.688, 8.672,19.36, 19.36,19.36L 459.76,447.848 c 10.696,0, 19.36-8.672, 19.36-19.36l 0.504-409.144c0-10.688-8.664-19.36-19.36-19.36L 227.408-0.016
|
935 |
c-10.688,0-19.36,8.672-19.36,19.36L 208.048,144.528 l-32.208-0.040L 175.84,0 c0-17.672, 14.32-32, 32-32l 271.992,0 c 17.68,0, 32.008,14.328, 32.008,32L 511.84,448
|
936 |
C 511.832,465.672, 497.504,480, 479.832,480z" />
|
937 |
-
|
938 |
c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.888,320.68c-6.248,6.248-16.376,6.248-22.624,0
|
939 |
c-6.256-6.248-6.256-16.376,0-22.624l 57.872-57.88L 15.92,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 309.224,0 L 266.264,149.296z M 480.080,480l-288,0
|
940 |
c-17.68,0-32.008-14.328-32.008-32l0-144 l 32.216,0 L 192.288,428.488 c0,10.688, 8.672,19.36, 19.36,19.36L 460,447.848 c 10.704,0, 19.36-8.672, 19.36-19.36l 0.504-409.144
|
941 |
c0-10.688-8.656-19.36-19.36-19.36L 211.656-0.016 c-10.688,0-19.36,8.672-19.36,19.36L 192.296,144.528 l-32.216-0.040L 160.080,0 c0-17.672, 14.328-32, 32.008-32l 288,0
|
942 |
c 17.672,0, 32,14.328, 32,32L 512.088,448 C 512.080,465.672, 497.752,480, 480.080,480z" />
|
943 |
-
|
944 |
C 64,248.832, 56.832,256, 48,256z M 496,240L 160,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 48,128L 16,128
|
945 |
c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 C 64,120.832, 56.832,128, 48,128z M 496,112L 160,112 c-8.832,0-16-7.168-16-16
|
946 |
s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,112, 496,112z M 48,384L 16,384 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16
|
947 |
l0,32 C 64,376.832, 56.832,384, 48,384z M 160,336l 336,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 160,368 c-8.832,0-16-7.168-16-16S 151.168,336, 160,336z" />
|
948 |
-
|
949 |
c-4.776,0.312-9.32,2.144-12.368,5.84c-1.4,1.704-34.296,49.68-34.296,126.52c0,75.72, 23.544,110.232, 24.552,111.832
|
950 |
c 2.92,4.68, 8.048,7.52, 13.56,7.52c 54.056,0, 128.992,69, 179.368,189.448c 8.712,20.832, 10.512,34.536, 42.512,34.536
|
951 |
c 18.2,0, 38.6-13.032, 48.672-29.752c 20.664-34.16, 10.168-107.528, 0.464-146.736c 33,0.264, 92.736,0.712, 121.16,0.712
|
@@ -960,24 +960,24 @@
|
|
960 |
c-3,4.472-3.224,10.024-1.464,15.112c 15.632,45.016, 24.36,115.64, 9.864,139.768c-4.272,7.112-5.248,14.216-21.248,14.216
|
961 |
c-2.216,0-7.496-1.752-13-14.872C 193.168,305.088, 113.312,231.096, 47.904,224.424c-5.64-12.864-16.248-39.52-16.248-87.888
|
962 |
C 31.656,87.168, 47.296,48.976, 54.808,36.616z" />
|
963 |
-
|
964 |
c-6.12-6.376-5.904-16.496, 0.472-22.624c 6.376-6.112, 16.496-5.936, 22.624,0.472l 21.504,22.416l0-239.416 c0-8.84, 7.168-16, 16-16l 111.776,0
|
965 |
c 8.816,0, 15.968,7.128, 16,15.952l 0.504,159.832l 127.496,0 l0-159.784 c0-8.84, 7.16-16, 16-16l 111.736,0 c 8.84,0, 16,7.16, 16,16L 463.768,223.672 l 21.496-22.52
|
966 |
c 3.144-3.264, 7.344-4.92, 11.544-4.92c 3.984,0, 7.984,1.472, 11.080,4.472C 514.256,206.816, 514.464,216.944, 508.352,223.32z
|
967 |
M 431.768,252.592l0-252.416 l-79.736,0 L 352.032,159.952 c0,8.84-7.16,16-16,16l-159.44,0 c-8.816,0-15.968-7.128-16-15.952l-0.504-159.832l-79.832,0 L 80.256,252.592
|
968 |
c0,1.32-0.208,2.584-0.504,3.816l 176.88,184.312l 175.712-184.104C 432,255.32, 431.768,253.984, 431.768,252.592z" />
|
969 |
-
|
970 |
C 512-17.672, 497.672-32, 480-32z M 480,160L 320,160 l0-160 l 160,0 L 480,160 z M 480,256L 320,256 c-17.672,0-32,14.328-32,32L 288,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
971 |
C 512,270.328, 497.672,256, 480,256z M 480,448L 320,448 l0-160 l 160,0 L 480,448 z M 192-32L 32-32 c-17.672,0-32,14.328-32,32L0,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
972 |
C 224-17.672, 209.672-32, 192-32z M 192,160L 32,160 l0-160 l 160,0 L 192,160 z M 192,256L 32,256 c-17.672,0-32,14.328-32,32L0,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
973 |
C 224,270.328, 209.672,256, 192,256z M 192,448L 32,448 l0-160 l 160,0 L 192,448 z" />
|
974 |
-
|
975 |
c-10.872,0-20.704-4.368-27.904-11.408l-76.376,38.24C 206.232,287.576, 189.12,304, 168,304c-22.088,0-40-17.912-40-40c0-6.048, 1.44-11.72, 3.84-16.856
|
976 |
L 53.968,157.352C 49.6,158.984, 44.936,160, 40,160c-22.088,0-40-17.912-40-40s 17.912-40, 40-40s 40,17.912, 40,40c0,5.32-1.088,10.384-2.976,15.024
|
977 |
l 79.136,90.96C 159.928,224.816, 163.848,224, 168,224c 11.64,0, 22.024,5.056, 29.336,13l 74.704-37.456C 272.304,177.672, 290.064,160, 312,160
|
978 |
c 22.096,0, 40,17.912, 40,40c0,0.712-0.168,1.376-0.208,2.080L 455.84,291.464C 460.792,289.272, 466.232,288, 472,288c 22.096,0, 40,17.904, 40,40
|
979 |
C 512,350.088, 494.096,368, 472,368z" />
|
980 |
-
|
981 |
C 20.36,278.952-0.176,253.856-0.176,224c0-29.864, 20.536-54.952, 48.2-62.088L 48.024-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 80.024,161.928
|
982 |
c 27.64,7.152, 48.152,32.224, 48.152,62.072C 128.176,253.84, 107.664,278.92, 80.024,286.064z M 64.208,191.984C 64.152,191.984, 64.088,192, 64.024,192
|
983 |
c-0.072,0-0.136-0.016-0.208-0.024C 46.24,192.080, 31.968,206.4, 31.968,224c0,17.592, 14.28,31.92, 31.856,32.016
|
@@ -993,7 +993,7 @@
|
|
993 |
c-0.064,0-0.12,0.016-0.176,0.016c-0.072,0-0.144-0.016-0.208-0.016C 430.248,288.080, 415.968,302.4, 415.968,320
|
994 |
c0,17.592, 14.28,31.92, 31.848,32.016c 0.072,0, 0.144-0.016, 0.208-0.016c 0.064,0, 0.12,0.016, 0.176,0.016
|
995 |
c 17.568-0.12, 31.832-14.432, 31.832-32.016C 480.048,302.408, 465.784,288.096, 448.208,287.984z" />
|
996 |
-
|
997 |
c 4.784-0.312, 9.32-2.144, 12.368-5.84c 1.4-1.704, 34.296-49.68, 34.296-126.512c0-75.72-23.544-110.24-24.552-111.848
|
998 |
c-2.92-4.672-8.048-7.512-13.56-7.512c-54.056,0-128.992-69-179.376-189.456c-8.712-20.832-10.504-34.528-42.512-34.528
|
999 |
c-18.2,0-38.6,13.032-48.688,29.752c-20.656,34.16-10.168,107.528-0.456,146.736c-33-0.264-92.736-0.72-121.16-0.72
|
@@ -1008,39 +1008,39 @@
|
|
1008 |
s 3.232-10.032, 1.464-15.112c-15.624-45.016-24.352-115.64-9.856-139.768c 4.264-7.112, 5.248-14.216, 21.248-14.216
|
1009 |
c 2.216,0, 7.496,1.752, 13,14.872c 53.496,127.904, 133.352,201.904, 198.76,208.576c 5.64,12.864, 16.248,39.52, 16.248,87.896
|
1010 |
C 480.352,360.832, 464.712,399.016, 457.192,411.376z" />
|
1011 |
-
|
1012 |
L 13.856,274.4c-17.192-7.296-18.28-21.352-2.424-31.232l 197.648-61.792l 64.68-201.632c 4.64-7.592, 10.248-11.36, 15.632-11.36
|
1013 |
c 5.968,0, 11.648,4.576, 15.52,13.624L 509.048,458.872C 514.576,471.816, 511.432,479.616, 502.232,479.616L 502.232,479.616z" />
|
1014 |
-
|
1015 |
c-4.84,2.696-10.184,4.032-15.544,4.032c-5.856,0-11.736-1.616-16.888-4.824L 70.72,251.184c-7.976-4.952-13.256-13.104-14.688-22.2L 56.032,464
|
1016 |
c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-480 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 56.032,219.032 c 1.44-9.104, 6.72-17.256, 14.688-22.192L 439.080-26.48
|
1017 |
c 5.16-3.216, 11.032-4.832, 16.888-4.832c 5.36,0, 10.704,1.344, 15.544,4.032c 10.16,5.64, 16.456,16.344, 16.456,27.968L 487.472,447.304z
|
1018 |
M 87.6,224.008L 455.472,447.304l 0.504-446.608L 87.6,224.008z" />
|
1019 |
-
|
1020 |
c 5.352,0, 11.368-1.336, 16.208-4.032c 10.16-5.64, 17.12-16.352, 17.12-27.968l0-65.92 L 468.072,408.224c 5.16,3.2, 10.688,4.824, 16.56,4.824
|
1021 |
c 5.344,0, 7.864-1.336, 12.712-4.032c 10.16-5.64, 13.616-16.352, 13.616-27.968l0-314.096 c0-11.624-3.624-22.328-13.784-27.968
|
1022 |
c-4.84-2.688-8.864-4.032-14.216-4.032c-5.864,0-10.392,1.608-15.552,4.832L 318.96,132.872l0-65.92 c0-11.624-6.96-22.328-17.12-27.968
|
1023 |
c-4.84-2.688-10.52-4.032-15.88-4.032c-5.856,0-11.896,1.608-17.056,4.832L 16.176,196.832C 6.792,202.656, 1.040,212.936, 1.040,224
|
1024 |
s 5.688,21.336, 15.080,27.176L 268.752,408.224C 273.904,411.432, 279.768,413.048, 285.632,413.048L 285.632,413.048z" />
|
1025 |
-
|
1026 |
c-10.16-5.64-16.456-16.352-16.456-27.968L 39.816,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032
|
1027 |
c 5.856,0, 11.736,1.608, 16.888,4.832l 368.36,223.312c 9.408,5.832, 15.128,16.112, 15.128,27.168s-5.72,21.336-15.128,27.176L 89.2,474.488
|
1028 |
C 84.048,477.688, 78.168,479.304, 72.312,479.304L 72.312,479.304z" />
|
1029 |
-
|
1030 |
C 224.136,472.84, 216.976,480, 208.136,480z M 192.136,0L 112.032,0 L 112.032,448 l 80.104,0 L 192.136,0 z M 415.968,480L 304.44,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.832, 7.16-16, 16-16
|
1031 |
l 111.528,0 c 8.84,0, 16,7.168, 16,16L 431.968,464 C 431.968,472.84, 424.816,480, 415.968,480z M 399.968,0l-79.528,0 L 320.44,448 l 79.528,0 L 399.968,0 z" />
|
1032 |
-
|
1033 |
c-5.36,0-11.368-1.336-16.216-4.032C 200,403.376, 193.040,392.664, 193.040,381.048l0-65.92 L 43.928,408.224c-5.16,3.2-10.688,4.824-16.56,4.824
|
1034 |
c-5.344,0-7.864-1.336-12.72-4.032C 4.504,403.376, 1.040,392.664, 1.040,381.048l0-314.096 c0-11.624, 3.624-22.328, 13.784-27.968
|
1035 |
c 4.84-2.688, 8.864-4.032, 14.216-4.032c 5.864,0, 10.392,1.608, 15.552,4.832L 193.040,132.872l0-65.92 c0-11.624, 6.96-22.328, 17.112-27.968
|
1036 |
c 4.848-2.688, 10.528-4.032, 15.888-4.032c 5.856,0, 11.896,1.608, 17.056,4.832l 252.728,157.048c 9.392,5.832, 15.144,16.112, 15.144,27.168
|
1037 |
s-5.688,21.336-15.080,27.176L 243.248,408.224C 238.096,411.432, 232.224,413.048, 226.368,413.048L 226.368,413.048z" />
|
1038 |
-
|
1039 |
L 73.424,474.488c-5.16,3.2-11.032,4.824-16.888,4.824c-5.36,0-10.704-1.336-15.544-4.032c-10.16-5.64-16.456-16.352-16.456-27.968
|
1040 |
L 24.032,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032c 5.856,0, 11.736,1.608, 16.888,4.832
|
1041 |
L 441.28,196.832c 7.968,4.936, 13.248,13.080, 14.688,22.176L 455.968-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 487.968,464 C 487.968,472.832, 480.808,480, 471.968,480z
|
1042 |
M 56.032,0.696L 56.528,447.304l 367.872-223.296L 56.032,0.696z" />
|
1043 |
-
|
1044 |
c0,8.84-7.16,16-16,16c-8.84,0-16-7.16-16-16l0-31.88 L 32,432.064 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32l0,400
|
1045 |
C 512,417.728, 497.672,432.056, 480,432.056z M 480,0.064L 32,0.064 l0,400 l 127.888,0 l0-16.12 c0-8.84, 7.16-16, 16-16c 8.84,0, 16,7.16, 16,16L 191.888,400.056 l 128,0 l0-16.12
|
1046 |
c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16L 351.888,400.056 L 480,400.056 L 480,0.064 z M 368,224.056l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 c0,8.832-7.168,16-16,16l-32,0
|
@@ -1050,7 +1050,7 @@
|
|
1050 |
c 8.832,0, 16,7.168, 16,16l0,32 C 288,280.896, 280.832,288.056, 272,288.056z M 144,288.056l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0
|
1051 |
c 8.832,0, 16,7.168, 16,16l0,32 C 160,280.896, 152.832,288.056, 144,288.056z M 144,160.064l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.84, 7.168-16, 16-16l 32,0
|
1052 |
c 8.832,0, 16,7.16, 16,16l0,32 C 160,152.888, 152.832,160.064, 144,160.064z" />
|
1053 |
-
|
1054 |
l0-27.128 c0-0.696, 0.096-1.376, 0.184-2.064l-0.36,0 l0-46.312 C 176.040,0.832, 207.632-32, 256.568-32c 47.232,0, 79.472,32.832, 79.472,81.688L 336.040,96
|
1055 |
l-0.464,0 c 0.088,0.688, 0.208,1.368, 0.208,2.064l0,27.128 c0,18.88, 14.016,30.296, 35.264,48.848c 28.752,25.104, 61.512,56.344, 61.512,126.392
|
1056 |
C 432.568,399.448, 355.008,480, 255.992,480z M 255.384,0c-29.952,0-47.344,18.576-47.344,49.688l-0.232,21.336C 219.32,67.088, 235,64, 256,64
|
@@ -1058,39 +1058,39 @@
|
|
1058 |
l0-20.216 c-7.592-4.24-21.592-9.28-48.064-9.28c-27.784,0-40.96,4.928-47.512,8.736l0,20.768 c0,27.304-21.344,44.648-41.84,63.008
|
1059 |
c-27.16,24.336-54.936,51.92-54.936,112.232C 111.432,381.8, 174.632,448, 255.992,448c 81.376,0, 144.576-66.2, 144.576-147.568
|
1060 |
C 400.568,244.92, 376.336,221.144, 350.008,198.144z" />
|
1061 |
-
|
1062 |
C 152.032,312.848, 144.872,320.008, 136.032,320.008z M 120.032,0L 40,0 L 40,288.008 l 80.032,0 L 120.032,0 z M 311.872,224.872L 199.832,224.872 c-8.84,0-16-7.16-16-16L 183.832-16
|
1063 |
c0-8.84, 7.16-16, 16-16l 112.040,0 c 8.84,0, 16,7.16, 16,16L 327.872,208.872 C 327.872,217.72, 320.72,224.872, 311.872,224.872z M 295.872,0L 215.832,0 L 215.832,192.872
|
1064 |
l 80.040,0 L 295.872,0 z M 488,480L 376.136,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.84, 7.16-16, 16-16L 488-32 c 8.84,0, 16,7.16, 16,16L 504,464 C 504,472.84, 496.84,480, 488,480z M 472,0
|
1065 |
l-79.864,0 L 392.136,448 L 472,448 L 472,0 z" />
|
1066 |
-
|
1067 |
C 31.504,347.512, 132.488,448, 256,448s 224-100.488, 224-224S 379.512,0, 256,0S 31.504,100.488, 31.504,224z M 272.168,111.84L 272.168,292.072 l 57.88-57.88
|
1068 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 255.672,351.32L 158.672,256.816c-3.128-3.128-4.688-7.216-4.688-11.312
|
1069 |
s 1.56-8.184, 4.688-11.312c 6.248-6.248, 16.376-6.248, 22.624,0l 58.872,58.88L 240.168,111.84 c0-8.84, 7.168-16, 16-16S 272.168,103, 272.168,111.84z" />
|
1070 |
-
|
1071 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 266.184,320.68
|
1072 |
c-6.248-6.248-6.248-16.376,0-22.624l 57.88-57.88L 143.84,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 181.232,0 l-58.88-58.872
|
1073 |
c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.816,320.68
|
1074 |
C 282.56,326.928, 272.44,326.928, 266.184,320.68z" />
|
1075 |
-
|
1076 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 368.16,240.168L 187.928,240.168 l 57.88,57.88
|
1077 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 128.68,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
1078 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624l-58.88,58.872L 368.16,208.168 c 8.84,0, 16,7.168, 16,16S 377,240.168, 368.16,240.168z" />
|
1079 |
-
|
1080 |
c0-123.512-100.984-224-224.504-224S 32,100.488, 32,224S 132.488,448, 256,448S 480.504,347.512, 480.504,224z M 239.832,336.16l0-180.224 l-57.88,57.88
|
1081 |
c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 97.008-94.504l 97,94.504c 3.128,3.128, 4.688,7.216, 4.688,11.312
|
1082 |
s-1.56,8.184-4.688,11.312c-6.248,6.248-16.376,6.248-22.624,0l-58.872-58.88L 271.84,336.16 c0,8.84-7.168,16-16,16S 239.832,345, 239.832,336.16z" />
|
1083 |
-
|
1084 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 32,224c0,56.136, 20.808,107.48, 55.048,146.832l 315.928-315.928
|
1085 |
C 363.608,20.464, 312.208-0.504, 256-0.504C 132.488-0.504, 32,100.488, 32,224z M 425.512,77.608L 109.704,393.416C 148.992,427.384, 200.12,448, 256,448
|
1086 |
c 123.512,0, 224-100.488, 224-224C 480,168.168, 459.424,116.984, 425.512,77.608z" />
|
1087 |
-
|
1088 |
l-17.928,2.56l-11.504-13.92c-5.288-6.392-32.272-28.56-62.056-42.832c 6.056,16.016, 10.52,33.504, 10.92,50.8l 0.16,0.952l0,2.736 l0,19.576
|
1089 |
l-17.432,8.904C 64.568,155.36, 32,202.624, 32,256C 32,344.224, 132.488,416, 256,416 M 256,448C 114.6,448,0,362.032,0,256c0-66.032, 39.128-123.576, 106.792-158.168
|
1090 |
c0-0.408-0.128-0.704-0.128-1.16c0-28.688-16.080-60.232-25.504-76.472l 0.024,0 C 80.44,18.456, 80,16.544, 80,14.496
|
1091 |
C 80,6.456, 86.48,0, 94.504,0c 1.208,0, 3.128,0.248, 3.832,0.248c 0.168,0, 0.264,0, 0.248-0.048c 50,8.168, 104.976,52.344, 115.912,65.672
|
1092 |
c 11.24-1.672, 18.832-1.92, 28.24-1.92C 246.704,63.952, 250.984,64, 256,64c 141.376,0, 256,85.952, 256,192C 512,362.032, 397.376,448, 256,448L 256,448z" />
|
1093 |
-
|
1094 |
c 6.28,0, 13.528,1.84, 18.92,5.496L 480,338.368L 480,110.16 L 370.544,169.92c-5.488,3.832-11.888,5.768-18.328,5.768
|
1095 |
c-5.064,0-10.128-1.2-14.784-3.608c-10.56-5.512-17.2-16.44-17.216-28.344l-0.080-62.92c0-0.624-0.504-1.128-1.144-1.128L 33.144,79.688
|
1096 |
C 32.504,79.688, 32,80.184, 32,80.8l 0.080,286.392c0,0.624, 0.504,1.12, 1.144,1.12L 319.064,368.312 M 495.184,384.328c-3.408,0-10.144-1.008-13.984-4.832
|
@@ -1098,27 +1098,27 @@
|
|
1098 |
c0-18.28, 14.816-33.128, 33.144-33.128l 285.856,0 c 18.328,0, 33.144,14.84, 33.144,33.128l 0.080,62.872l 131.488-76.656
|
1099 |
c 3.856-3.84, 8.128-3.344, 11.544-3.344c 3.544,0, 6.184,1.080, 6.512,1.216C 507.984,67.496, 512,73.496, 512,80.248L 512,367.736
|
1100 |
c0,6.752-4.016,12.776-10.232,15.328C 501.408,383.224, 498.752,384.328, 495.184,384.328L 495.184,384.328z" />
|
1101 |
-
|
1102 |
C 512,336, 496,368, 464,368z M 480,63.496c0-6.312-10.232-15.144-15-15.504L 44.76,47.992 C 41.056,48.296, 32,55.512, 32,64L 32,320.496
|
1103 |
C 32,330.632, 45.616,335.744, 48,336l 91.72,0 l 9.32,15.536L 178.12,400l 156.824,0 l 28.56-48.472l 8.8-15.528L 464,336 c 11.28,0, 15.84-14.736, 16-16L 480,63.496 z M 256,320
|
1104 |
c-61.856,0-112-50.144-112-112s 50.144-112, 112-112s 112,50.144, 112,112S 317.856,320, 256,320z M 256,128c-44.112,0-80,35.888-80,80s 35.888,80, 80,80
|
1105 |
s 80-35.888, 80-80S 300.112,128, 256,128z" />
|
1106 |
-
|
1107 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1108 |
S 379.512-0.504, 256-0.504z M 358.168,317.672L 207.968,166.528l-67.64,67.64c-6.248,6.248-16.376,6.248-22.632,0
|
1109 |
c-6.248-6.248-6.248-16.376,0-22.624l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.632,0c 0.72,0.72, 1.336,1.504, 1.896,2.32L 380.808,295.040
|
1110 |
c 6.24,6.248, 6.24,16.376,0,22.632C 374.552,323.92, 364.424,323.92, 358.168,317.672z" />
|
1111 |
-
|
1112 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1113 |
S 379.512-0.504, 256-0.504z M 272,230.496L 272,384 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-160 c0-4.528, 1.896-8.6, 4.928-11.504
|
1114 |
c 0.264-0.312, 0.48-0.648, 0.768-0.944l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 272,230.496z" />
|
1115 |
-
|
1116 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1117 |
S 379.512-0.504, 256-0.504z M 346.504,314.504c-6.248,6.248-16.376,6.248-22.624,0L 256,246.624l-67.88,67.88
|
1118 |
c-6.248,6.248-16.376,6.248-22.632,0c-6.248-6.248-6.248-16.376,0-22.624L 233.368,224l-67.88-67.88c-6.248-6.24-6.248-16.384,0-22.624
|
1119 |
c 6.248-6.248, 16.376-6.248, 22.632,0L 256,201.376l 67.88-67.88c 6.248-6.248, 16.376-6.248, 22.624,0c 6.248,6.24, 6.248,16.384,0,22.624
|
1120 |
L 278.624,224l 67.88,67.88C 352.76,298.136, 352.76,308.264, 346.504,314.504z" />
|
1121 |
-
|
1122 |
c0-62.872, 49.424-115.984, 107.912-115.984l 14.224,0 c 8.832,0, 16,7.16, 16,16s-7.168,16-16,16l-14.224,0 c-41.152,0-76.416,38.456-76.416,83.984
|
1123 |
c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.296,14.672l-0.12,0.184c 0.008,77.936, 51.304,136.72, 130.592,136.72
|
1124 |
c 63.552,0, 99.256-31.312, 115.776-84.72l 3.416-11.016l 11.536-0.248c 59.432-1.248, 111.544-49.472, 111.544-109.392
|
@@ -1128,7 +1128,7 @@
|
|
1128 |
c-4.472-4.688-4.472-12.24,0-16.912l 57.752-63.872c 0.080-0.080, 0.096-0.184, 0.168-0.264l 4.048-4.232
|
1129 |
c 2.248-2.344, 5.184-3.504, 8.144-3.488c 2.936-0.016, 5.888,1.144, 8.112,3.488l 4.048,4.232c 0.080,0.080, 0.12,0.168, 0.184,0.264
|
1130 |
l 59.216,64.872c 4.472,4.672, 4.472,10.224,0,14.912L 323.168,92.264z" />
|
1131 |
-
|
1132 |
C 32.088,274.752,0,229.408,0,178.048c0-62.872, 49.424-115.984, 107.912-115.984l 46.224,0 c 8.832,0, 16,7.168, 16,16c0,8.84-7.168,16-16,16l-46.224,0
|
1133 |
c-41.152,0-76.416,38.456-76.416,83.984c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.288,14.664l-0.12,0.184
|
1134 |
c0,77.936, 51.288,136.72, 130.576,136.72c 63.552,0, 99.256-31.312, 115.768-84.72l 3.424-11.016l 11.528-0.248
|
@@ -1138,14 +1138,14 @@
|
|
1138 |
l-4.048-4.232c-0.080-0.080-0.096-0.176-0.168-0.256l-57.752-63.872c-4.472-4.672-4.472-12.232,0-16.92l 4.032-2.736
|
1139 |
c 4.472-4.672, 11.72-3.16, 16.184,1.512l 34.056,37.968l0-161.216 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 271.808,178.328 l 35.184-38.816
|
1140 |
c 4.472-4.672, 11.704-6.184, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.248,0,16.92L 267.992,222.528z" />
|
1141 |
-
|
1142 |
L 408,306.736z M 104,0L 104,448 l 128,0 l0-176 l 176,0 l0-272 L 104,0 z" />
|
1143 |
-
|
1144 |
c-0.872-0.664-1.704-1.416-2.456-2.288c-3.224-3.72-4.352-8.504-3.632-13.016C 0.128,362.664,0,361.36,0,360l0-256 c0-26.512, 29.496-56, 56-56
|
1145 |
l 416,0 c 26.512,0, 40,29.488, 40,56L 512,360 C 512,361.416, 511.816,362.656, 511.728,364z M 56,368l 416,0 c 0.096,0, 0.144,0, 0.216,0L 256,195.672L 40.656,367.296
|
1146 |
C 45.552,368.2, 51.576,368, 56,368z M 472,80L 56,80 c-8.824,0-24,15.168-24,24L 32,333.224 L 245.52,162.4c 3.008-2.6, 6.744-3.896, 10.48-3.896
|
1147 |
s 7.472,1.296, 10.488,3.896L 480,333.216L 480,104 C 480,95.168, 480.832,80, 472,80z" />
|
1148 |
-
|
1149 |
C 353.736,276.312, 310.752,319.296, 257.736,319.296z M 257.736,159.296c-35.288,0-64.736,29.408-64.736,64.696c0,35.288, 28.712,64, 64,64
|
1150 |
c 35.296,0, 64-28.712, 64-64C 321,188.704, 293.032,159.296, 257.736,159.296z M 511.84,227.712c-0.184,0.808-0.104,1.664-0.344,2.456
|
1151 |
c-0.104,0.336-0.312,0.528-0.432,0.824c-0.168,0.456-0.128,0.992-0.36,1.432C 464.168,338.976, 363.872,400.304, 256.992,400.304
|
@@ -1156,14 +1156,14 @@
|
|
1156 |
c 0.112,0.28, 0.328,0.488, 0.424,0.8c 0.248,0.784, 0.168,1.64, 0.344,2.456c 0.28,1.432, 0.544,2.832, 0.544,4.312
|
1157 |
C 512.392,224.872, 512.128,226.264, 511.84,227.712z M 256,79.704c-90.648,0-179.872,47.784-223.712,143.84
|
1158 |
c 43.424,95.736, 133.84,144.752, 224.712,144.752c 90.84,0, 179.248-49.072, 222.688-144.856C 436.28,127.736, 346.872,79.704, 256,79.704z" />
|
1159 |
-
|
1160 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 64,187.6 c 16.88,10.888, 40.168,20.736, 69.344,20.736c 101.328,0, 130.656-48, 210.656-48s 136,48, 136,48l0,272
|
1161 |
C 480,480.336, 420,432.336, 340,432.336z M 448,224.64c-18.080-11.792-56.392-32.304-104-32.304c-31.456,0-52.92,8.632-80.112,19.568
|
1162 |
c-33.136,13.32-70.704,28.432-130.544,28.432c-27.344,0-50.536-6.88-69.344-16.080L 64,417.992 c 12.048,10.96, 38.312,30.344, 73.344,30.344
|
1163 |
c 47.056,0, 73.544-11.424, 101.592-23.504c 27.936-12.040, 56.832-24.496, 101.064-24.496c 42.624,0, 80.064,11.784, 108,24.456L 448,224.64 z" />
|
1164 |
-
|
1165 |
c 17.672,0, 32,14.328, 32,32L 512,344 c0,17.672-14.328,32-32,32L 240,376 L 192,424L 192,424z" />
|
1166 |
-
|
1167 |
c 30.704,0, 54.904-10.504, 78.504-34.048c 22.232-22.184, 34.496-51.68, 34.496-83.056c 0.016-31.392-12.224-60.912-34.704-83.336
|
1168 |
c-1.832-1.856-98.496-106.152-179.48-193.552c-3.816-3.624-8.176-4.16-10.496-4.16c-2.288,0-6.6,0.512-10.4,4.048
|
1169 |
c-19.736,21.952-162.776,181-179.408,197.616C 44.248,248.792, 32,278.312, 32,309.696c 0.008,31.376, 12.256,60.864, 34.52,83.072
|
@@ -1171,17 +1171,17 @@
|
|
1171 |
c 16.712-16.72, 178.928-197.168, 178.928-197.168c 9.24-9.248, 21.376-13.84, 33.48-13.84c 12.112,0, 24.2,4.592, 33.456,13.84
|
1172 |
c0,0, 177.44,191.512, 179.328,193.424c 58.52,58.44, 58.52,153.12,0,211.504c-29.056,29-61.512,43.392-101.104,43.392
|
1173 |
c-37.824,0-80-30.16-111.504-62.16C 223.992,424.92, 183.12,454.92, 143.992,454.92L 143.992,454.92z" />
|
1174 |
-
|
1175 |
s 7.168-16, 16-16l 16,0 l0-128 l-16,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16S 296.832,112, 288,112z M 256,304c 17.672,0, 32,14.328, 32,32
|
1176 |
s-14.328,32-32,32s-32-14.328-32-32S 238.328,304, 256,304z M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256
|
1177 |
C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
1178 |
-
|
1179 |
c-4.416,0.272-8.92-1.216-12.296-4.592L 44.832,75.48c-6.24-6.248-6.24-16.384,0-22.624c 0.12-0.12, 0.256-0.192, 0.384-0.312
|
1180 |
c 0.040-0.040, 0.064-0.088, 0.104-0.128l 78.456-79.952c 6.24-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624l-67.736,69.032l 41.248,41.504
|
1181 |
l 67.864-69.16c 6.24-6.248, 16.376-6.248, 22.624,0s 6.24,16.384,0,22.624l-67.928,69.224l 86.192,86.736c 3.336,3.336, 4.832,7.768, 4.608,12.136
|
1182 |
c 25.312-22.144, 58.336-35.656, 94.584-35.656c 79.528,0, 144,64.576, 144,144.24C 471.848,415.424, 407.384,480, 327.848,480z M 327.848,224
|
1183 |
c-61.624,0-112,50.136-112,112c0,61.872, 50.376,112, 112,112s 112-50.128, 112-112C 439.848,274.136, 389.48,224, 327.848,224z" />
|
1184 |
-
|
1185 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 147.832,136.4C 141.576,130.152, 141.576,120.024, 147.832,113.776z M 237.936,147.848
|
1186 |
c 5.288-23.312-0.416-46.2-18.432-64.216l-64.624-62.624c-13.6-13.592-31.68-21.080-50.912-21.080s-37.312,7.488-50.904,21.080
|
1187 |
c-28.072,28.080-28.072,73.768-0.168,101.672l 63.128,65.128c 13.6,13.592, 31.68,21.088, 50.912,21.088c 6.576,0, 12.912-1.176, 19.088-2.872
|
@@ -1193,34 +1193,34 @@
|
|
1193 |
c 28.064-28.080, 28.064-73.768, 0.16-101.672l-64.624-64.624c-13.592-13.592-31.688-21.080-50.904-21.080c-4.904,0-9.216-0.496-13.92,0.464
|
1194 |
l-25.488-25.504c 12.736-5.296, 25.816-6.968, 39.408-6.968c 26.608,0, 53.216,10.152, 73.528,30.464l 64.472,64.472
|
1195 |
C 522.176,343.144, 522.176,408.984, 481.568,449.608z" />
|
1196 |
-
|
1197 |
c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64L 464,224 C 464,259.296, 435.296,288, 400,288z M 160,349.064
|
1198 |
C 160,403.608, 197.28,448, 255.408,448C 312.936,448, 352,404.544, 352,349.064L 352,288 L 160,288 L 160,349.064 z M 432,32c0-17.64-14.36-32-32-32L 112,0 c-17.64,0-32,14.36-32,32L 80,224
|
1199 |
c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,32 z M 256,192c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56L 240,80 c0-8.832, 7.168-16, 16-16
|
1200 |
s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56C 288,177.672, 273.672,192, 256,192z" />
|
1201 |
-
|
1202 |
c-14.12,52.688, 10.408,105.216, 66.544,120.256c 55.568,14.888, 104.544-16.968, 118.912-70.56l 6.8-26.984c 2.288-8.536, 11.056-13.6, 19.6-11.312
|
1203 |
c 8.536,2.288, 13.6,11.056, 11.312,19.592l-6.808,26.984C 360.608,453.48, 294.408,495.28, 221.504,475.752C 148.32,456.144, 113.648,386.040, 132.336,316.296
|
1204 |
l 6.432-28.848L 112,287.448 c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64l0,192 C 464,258.744, 435.296,287.448, 400,287.448z
|
1205 |
M 432,31.448c0-17.64-14.36-32-32-32L 112-0.552 c-17.64,0-32,14.36-32,32l0,192 c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,31.448 z M 256,191.448
|
1206 |
c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56l0-52.44 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56
|
1207 |
C 288,177.12, 273.672,191.448, 256,191.448z" />
|
1208 |
-
|
1209 |
c0,110.456-89.544,200-200,200c-110.456,0-200-89.544-200-200c0-110.456, 89.544-200, 200-200c 50.184,0, 96.024,18.528, 131.144,49.072l 155.248-156.224
|
1210 |
c 6.248-6.248, 16.384-6.248, 22.632,0C 513.56-20.904, 513.56-10.776, 507.32-4.52z M 198.296,111.736
|
1211 |
C 105.368,111.736, 30.032,187.072, 30.032,280S 105.368,448.264, 198.296,448.264S 366.56,372.928, 366.56,280S 291.224,111.736, 198.296,111.736z" />
|
1212 |
-
|
1213 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1214 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1215 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-64,0 l0,64 c0,8.832-7.168,16-16,16
|
1216 |
s-16-7.168-16-16l0-64 l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 l0-64 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,64 l 64,0 c 8.832,0, 16,7.168, 16,16
|
1217 |
S 295.136,288, 286.296,288z" />
|
1218 |
-
|
1219 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1220 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1221 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-160,0 c-8.832,0-16-7.168-16-16
|
1222 |
s 7.168-16, 16-16l 160,0 c 8.832,0, 16,7.168, 16,16S 295.136,288, 286.296,288z" />
|
1223 |
-
|
1224 |
c 44.8,44.872, 113.424,40.84, 163.504-9.304c 22.44-22.48, 35.032-54.888, 34.56-88.952c-0.472-33.704-13.64-65.96-36.144-88.504L 259.248,22.872
|
1225 |
c-6.040-6.472-16.168-6.768-22.616-0.696c-6.432,6.080-6.744,16.224-0.68,22.672l 217.336,231.376c 17,17.032, 26.752,41.192, 27.112,66.624
|
1226 |
c 0.36,25.448-8.832,49.44-25.184,65.832c-30.72,30.784-80.736,46.904-117.92,9.632L 50.168,113.4c-24.688-24.752-24.68-64.504-0.32-88.928
|
@@ -1229,29 +1229,29 @@
|
|
1229 |
c-6.44,6.064-6.736,16.224-0.68,22.656l 172.272,183.232c 13.544,13.608, 27.392,20.984, 41.488,22.248c 11,0.976, 27.36-1.368, 44.048-18.104
|
1230 |
c 24.768-24.816, 21.688-61.216-7.64-90.608L 153.592,6.64c-18.24-18.304-40.264-28.936-62.36-30.296
|
1231 |
C 89.608-23.768, 87.984-23.816, 86.36-23.816z" />
|
1232 |
-
|
1233 |
c 15.856-9.872, 36.824-31.040, 46.592-47.024l 80.856-132.384c 4.64-7.592, 10.248-11.36, 15.64-11.36c 5.96,0, 11.64,4.576, 15.512,13.616
|
1234 |
L 508.832,459.256C 514.36,472.192, 511.208,480, 502.016,480z M 162.776,188.040L 53.448,256.144L 420.256,411.768L 184.16,171.672
|
1235 |
C 176.944,178.072, 169.616,183.784, 162.776,188.040z M 286.36,22.368l-65.216,106.76c-3.848,6.304-8.928,13.024-14.592,19.696l 237.192,241.192
|
1236 |
L 286.36,22.368z" />
|
1237 |
-
|
1238 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1239 |
S 379.512-0.504, 256-0.504z M 368,240L 272,240 L 272,336 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 L 144,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 l0-96
|
1240 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 272,208 l 96,0 c 8.832,0, 16,7.168, 16,16S 376.832,240, 368,240z" />
|
1241 |
-
|
1242 |
l 1.224,0 c 13.8,0, 24.92,12.44, 25.2,12.76c 65.032,74.76, 160,198.024, 160,303.968C 448,390.8, 378.672,480.184, 257.832,480.184z M 264.248,2.408
|
1243 |
c-0.56-0.56-1.376-1.184-2.096-1.704c-0.736,0.504-1.536,1.144-2.128,1.704l-8.368,9.624C 185.96,87.4, 96,190.608, 96,284.912
|
1244 |
c0,88.504, 74.112,163.28, 161.832,163.28C 367.096,448.192, 416,366.192, 416,284.912C 416,213.32, 364.936,118.264, 264.248,2.408z M 256.56,383.296
|
1245 |
c-53.016,0-96-42.984-96-96s 42.984-96, 96-96s 96,42.984, 96,96S 309.576,383.296, 256.56,383.296z M 256.56,223.296
|
1246 |
c-35.288,0-64.736,29.408-64.736,64.704c0,35.288, 28.712,64, 64,64c 35.312,0, 64-28.712, 64-64C 319.84,252.704, 291.872,223.296, 256.56,223.296z" />
|
1247 |
-
|
1248 |
c 81.168-38, 125.248-125.976, 107.176-213.936c-21.456-104.44-123.832-171.904-228.28-150.512c-50.584,10.392-92.104,39.856-120.528,82.968
|
1249 |
c-28.432,43.128-38.368,94.752-27.976,145.336c 12.352,60.112, 51.312,109.664, 106.88,135.952c 7.984,3.776, 11.4,13.312, 7.616,21.304
|
1250 |
c-3.776,7.976-13.296,11.368-21.296,7.616C 96.056,367.064, 50.664,309.328, 36.264,239.264c-12.112-58.968-0.536-119.128, 32.592-169.392
|
1251 |
c 33.136-50.24, 81.848-84.584, 140.816-96.704c 15.216-3.128, 30.408-4.624, 45.376-4.624c 104.728,0, 198.824,73.56, 220.688,180.056
|
1252 |
C 496.792,251.104, 445.408,353.648, 350.776,397.952z M 256.008,272c 8.832,0, 16,7.168, 16,16L 272.008,464 c0,8.832-7.168,16-16,16c-8.832,0-16-7.168-16-16l0-176
|
1253 |
C 240.008,279.168, 247.176,272, 256.008,272z" />
|
1254 |
-
|
1255 |
c-3.264,5.36-10.344,7.264-15.864,4.256l-4.096-2.52c-5.504-3-5.384-10.768-2.128-16.128l 29.464-45.704
|
1256 |
c-2.512,0.552-5.048,1-7.528,1.648c-51.592,13.496-95.248,48.416-119.768,95.8c-23.168,44.76-27.52,95.848-12.256,143.872
|
1257 |
c 15.256,48.024, 49.888,87.232, 94.648,110.392c 7.624,3.944, 10.6,13.32, 6.656,20.928c-3.936,7.632-13.32,10.616-20.928,6.664
|
@@ -1266,7 +1266,7 @@
|
|
1266 |
c 6.504-1, 12.984-2.208, 19.312-3.88c 51.616-13.52, 93.696-48.432, 118.2-95.784c 23.16-44.76, 27.512-95.848, 12.24-143.864
|
1267 |
c-15.256-48.024-48.328-87.224-93.088-110.408c-7.616-3.944-10.584-13.304-6.64-20.936c 2.76-5.32, 8.168-8.384, 13.8-8.384
|
1268 |
c 2.4,0, 4.832,0.56, 7.136,1.744c 52.136,26.968, 90.624,72.64, 108.408,128.56C 489.008,207.968, 483.936,267.48, 456.952,319.592z" />
|
1269 |
-
|
1270 |
c0-120.224, 92.648-220.768, 211.784-231.048l-45.928-23.28c-5.672-3.112-9.048-10.112-5.688-15.64l 1.624-4.2
|
1271 |
c 3.376-5.528, 10.688-7.488, 16.344-4.392l 76.656,39.248c 0.096,0.064, 0.2,0.048, 0.296,0.112l 5.144,2.816
|
1272 |
c 2.84,1.56, 4.72,4.112, 5.472,6.952c 0.784,2.84, 0.424,6-1.264,8.752l-3.048,5c-0.048,0.096-0.144,0.16-0.2,0.248
|
@@ -1274,7 +1274,7 @@
|
|
1274 |
c-0.152,0.008-0.288,0.064-0.432,0.072C 137.64,55.376, 55.68,143.032, 55.68,248.032C 55.68,358.296, 145.384,448, 255.64,448
|
1275 |
c 110.272,0, 200.48-89.704, 200.48-199.968c0-63.488-29.16-121.8-80-159.984c-7.064-5.312-8.488-15.344-3.184-22.408
|
1276 |
c 5.312-7.080, 15.344-8.488, 22.408-3.184c 58.968,44.296, 92.784,111.936, 92.784,185.576C 488.12,375.936, 383.552,480, 255.64,480z" />
|
1277 |
-
|
1278 |
c-12.488,12.496-33.576,10.248-46.312,1.416l-36.016-22.944c-9.344,4.848-19.112,9-29.264,12.28l-9.216,41.56
|
1279 |
C 303,463.496, 289.672,480, 272,480l-32,0 c-17.672,0-28.504-16.752-32-32l-10.264-41.064c-10.84-3.456-21.248-7.872-31.168-13.104l-36.92,23.512
|
1280 |
c-12.728,8.832-33.824,11.080-46.312-1.416l-22.632-22.624c-12.496-12.504-8.304-32,0-45.256l 23.376-38.96
|
@@ -1298,7 +1298,7 @@
|
|
1298 |
c 3.576-0.664, 6.36-2.728, 6.952-3.848L 480.016,208.976z M 256.216,320.16c-53.136,0-96.368-43.144-96.368-96.16
|
1299 |
c0-53.008, 43.232-96.152, 96.368-96.152c 53.136,0, 96.368,43.144, 96.368,96.152C 352.584,277.016, 309.352,320.16, 256.216,320.16z M 256,160
|
1300 |
c-35.288,0-64,28.712-64,64c0,35.296, 28.712,64, 64,64c 35.296,0, 64-28.704, 64-64C 320,188.712, 291.288,160, 256,160z" />
|
1301 |
-
|
1302 |
l-117.136,63l-21.168,11.392l-21.168-11.392L 117.68,4.792l 22.648,135.112l 3.792,22.656l-16.28,16.248L 30.952,275.496l 132.912,19.744
|
1303 |
l 23.384,3.488l 10.272,21.272L 256,441.256 M 255.992,472.224c-14.328,0-27.392-8.088-33.488-20.728l-57.952-120.32L 31.2,311.344
|
1304 |
c-13.696-2.048-25.072-11.4-29.488-24.192c-4.408-12.832-1.072-26.952, 8.6-36.576l 97.704-97.6l-22.664-135.328
|
@@ -1306,13 +1306,13 @@
|
|
1306 |
l 116.256-62.592c 5.592-2.992, 11.752-4.488, 17.888-4.488c 7.48,0, 14.952,2.208, 21.328,6.576c 11.552,7.976, 17.456,21.648, 15.16,35.288
|
1307 |
l-22.672,135.328l 97.752,97.6c 9.672,9.624, 12.984,23.752, 8.576,36.576c-4.424,12.808-15.8,22.16-29.488,24.192l-133.328,19.832l-57.984,120.32
|
1308 |
C 283.424,464.152, 270.352,472.224, 255.992,472.224L 255.992,472.224z" />
|
1309 |
-
|
1310 |
l-63.656-64.048l-67.632,68.272c-6.24,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 67.696-68.344l-68.176-68.592
|
1311 |
c-6.248-6.248-6.248-16.392,0-22.624c 6.24-6.248, 16.376-6.248, 22.624,0l 68.072,68.496l 68.232-68.88c 6.248-6.248, 16.376-6.248, 22.624,0
|
1312 |
s 6.248,16.376,0,22.624l-68.304,68.952l 63.704,64.096c 34.976-29.984, 80.384-48.144, 130.064-48.144c 110.456,0, 200,89.544, 200,200
|
1313 |
C 511.848,390.576, 422.304,480.112, 311.848,480.112z M 311.848,111.84c-92.928,0-168.264,75.344-168.264,168.272
|
1314 |
c0,92.928, 75.336,168.264, 168.264,168.264s 168.264-75.336, 168.264-168.264C 480.12,187.184, 404.784,111.84, 311.848,111.84z" />
|
1315 |
-
|
1316 |
c-2.072,2.088-4.976,3.36-8.2,3.264l-5.848-0.136c-0.112,0-0.192-0.040-0.32-0.056L 347.736,480.472
|
1317 |
c-6.464-0.144-11.808-5.496-11.96-11.96L 335.76,460.296c 0.984-7.624, 6.976-12.080, 13.44-11.936l 107.608-0.216L 328.736,320.848
|
1318 |
c-34.744,29.12-79.504,46.68-128.384,46.68c-110.464,0-200-89.536-200-200c0-110.456, 89.536-200, 200-200c 110.456,0, 200,89.544, 200,200
|
@@ -1320,13 +1320,13 @@
|
|
1320 |
c 6.48,0.152, 11.824,4, 11.96,10.464l 0.336,147.504c0,0.12-0.44,0.2-0.44,0.312L 511.648,468.672z M 368.616,167.528
|
1321 |
c0-92.928-75.336-168.264-168.272-168.264c-92.928,0-168.264,75.336-168.264,168.264s 75.336,168.264, 168.264,168.264
|
1322 |
C 293.28,335.8, 368.616,260.464, 368.616,167.528z" />
|
1323 |
-
|
1324 |
s-16-7.168-16-16l0-48.768 C 146.752,407.52, 72.416,333.264, 64.712,240L 16,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 48.712,0
|
1325 |
C 72.416,114.744, 146.752,40.48, 240,32.768L 240-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48.768 C 365.256,40.48, 439.584,114.744, 447.28,208L 496,208
|
1326 |
c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 240,383.208L 240,240 L 96.776,240 C 104.28,315.6, 164.4,375.704, 240,383.208z M 96.776,208L 240,208 l0-143.208
|
1327 |
C 164.4,72.296, 104.28,132.4, 96.776,208z M 272,64.792L 272,208 l 143.224,0 C 407.72,132.4, 347.6,72.296, 272,64.792z M 272,240L 272,383.208
|
1328 |
C 347.6,375.704, 407.72,315.6, 415.224,240L 272,240 z" />
|
1329 |
-
|
1330 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1331 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 335.872,432.92 C 335.864,438.832, 332.6,444.264, 327.384,447.048z
|
1332 |
M 303.864,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 79.632,277.024
|
@@ -1334,7 +1334,7 @@
|
|
1334 |
c-8.856,1.464-16.968-4.432-18.424-13.152c-1.456-8.712, 4.44-16.96, 13.144-18.416c 25.16-4.2, 42.736-26.152, 42.736-53.376
|
1335 |
c0-25.92-18.184-48.344-43.248-53.344c-8.672-1.72-14.296-10.144-12.56-18.816c 1.512-7.608, 8.184-12.872, 15.672-12.872
|
1336 |
c 1.032,0, 2.096,0.096, 3.144,0.312c 39.984,7.952, 69,43.592, 69,84.72C 464.368,263.752, 435.152,299.472, 394.912,306.184z" />
|
1337 |
-
|
1338 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1339 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 295.736,432.92 C 295.736,438.832, 292.472,444.264, 287.248,447.048z
|
1340 |
M 263.736,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 39.504,277.024
|
@@ -1346,7 +1346,7 @@
|
|
1346 |
c 48.264-18.008, 80.688-64.952, 80.688-116.816c0-51.888-32.424-98.92-80.656-117c-8.28-3.112-12.472-12.328-9.376-20.592
|
1347 |
c 2.408-6.44, 8.504-10.392, 14.984-10.392c 1.872,0, 3.768,0.328, 5.608,1.016c 60.672,22.752, 101.44,81.816, 101.44,146.968
|
1348 |
C 504.504,286.4, 463.704,345.392, 403,368.048z" />
|
1349 |
-
|
1350 |
c-27.256,0-49.44-19.328-49.44-43.2l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376
|
1351 |
c 2.688-1.816, 5.816-2.736, 8.952-2.736c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 296.248,432.92
|
1352 |
C 296.248,438.832, 292.984,444.264, 287.768,447.048z M 264.248,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032
|
@@ -1354,7 +1354,7 @@
|
|
1354 |
l 139.664,112L 264.248,45.184 z M 447,223.744l 52.296,52.92c 6.248,6.248, 6.248,16.376,0,22.624c-6.232,6.248-16.376,6.248-22.624,0l-52.168-52.784
|
1355 |
l-52.168,52.784c-6.232,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 52.296-52.92l-51.8-52.408c-6.232-6.24-6.248-16.376,0-22.624
|
1356 |
s 16.392-6.248, 22.64,0l 51.656,52.272l 51.656-52.272c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624L 447,223.744z" />
|
1357 |
-
|
1358 |
c-59.688,0-120.704-49.832-120.704-94.56l0-67.56 c0-29.512, 12.488-89.216, 50.312-119.544L 27,62.36c0,0-27-12.032-27-27.032l0-40.544
|
1359 |
c0-14.92, 12.112-27.032, 27-27.032l 346,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.544 C 400.016,51.232, 373,62.36, 373,62.36z
|
1360 |
M 368.016-0.248L 32-0.248 l0,28.608 c 2.296,1.672, 5.504,3.608, 8.032,4.768c 0.752,0.344, 1.504,0.704, 2.216,1.112l 103.344,56.048
|
@@ -1367,7 +1367,7 @@
|
|
1367 |
c-8.456-6.656-13-17.112-12.112-27.832c 0.904-10.72, 7.128-20.264, 16.56-25.424l 102.232-55.8c 0.888-0.488, 2.016-1.016, 2.952-1.424
|
1368 |
c 2.36-1, 5.264-2.672, 7.392-4.144l0-28.456 l-64.592,0 c 9.752-7.36, 12.704-17.888, 16.488-32l 53.096,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.048
|
1369 |
C 512,130.904, 484.984,142.032, 484.984,142.032z" />
|
1370 |
-
|
1371 |
</font>
|
1372 |
</defs>
|
1373 |
</svg>
|
9 |
</metadata>
|
10 |
<defs>
|
11 |
<font id="Simple-Line-Icons" horiz-adv-x="512" >
|
12 |
+
<font-face units-per-em="512" ascent="480" descent="-32" />
|
13 |
+
<missing-glyph horiz-adv-x="512" />
|
14 |
+
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
15 |
+
<glyph unicode="" d="M 480.016,78.656l-139.248,66.032c 18.576,9.312, 91.128,12.264, 97.128,28.64c0,0-28.672,44.008-35.672,101.168
|
16 |
c-2.72,22.184-7.376,51.296-12,92.296C 382.72,433.296, 326.784,480, 256.128,480C 256.088,480, 256.040,480, 256,480c-0.048,0-0.096,0-0.128,0
|
17 |
C 185.216,480, 129.28,433.296, 121.784,366.8c-4.624-41-9.28-70.112-12-92.296c-7-57.168-35.672-101.168-35.672-101.168
|
18 |
c 6-16.376, 78.544-19.328, 97.128-28.64L 31.984,78.656c0,0-31.984-11.232-31.984-37.736l0-42.264 C0-19.032, 14.312-32, 31.984-32l 448.032,0
|
24 |
c 1.408-10.088, 2.672-19.2, 3.656-27.296c 3.984-32.512, 14.112-61.256, 23.264-81.816c-7.064-1.408-14.344-2.72-19.672-3.656
|
25 |
c-22.456-3.888-36.784-6.576-47.624-12.016c-10.936-5.488-17.784-16.736-17.656-28.968c 0.144-12.232, 7.232-23.344, 18.296-28.576l 139.248-66.032
|
26 |
c 1-0.488, 1.656-0.784, 2.72-1.16c 4.92-1.872, 10.248-5.968, 10.968-7.672L 480.016,0L 32,0 z" />
|
27 |
+
<glyph unicode="" d="M 32.032,32.656c0,12.72, 9.544,16.704, 13.36,18.472l 140.52,66.312
|
28 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.344-48.728,116.592L 143.832,368
|
29 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.68
|
30 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 47.96-22.752l 7.904,31.936l-42.504,19.888
|
32 |
c0-34.936, 15.944-105.624, 60.696-141.544L 32.008,80.184c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 351.96,0 l0,32
|
33 |
L 32.032,0.184L 32.032,32.656 z M 495.968,64.064l-48,0 l0,48 c0,8.84-7.168,16-16,16s-16-7.16-16-16l0-48 l-48,0 c-8.832,0-16-7.16-16-16c0-8.832, 7.168-16, 16-16l 48,0 l0-48
|
34 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48 l 48,0 c 8.832,0, 16,7.168, 16,16C 511.968,56.904, 504.808,64.064, 495.968,64.064z" />
|
35 |
+
<glyph unicode="" d="M 31.752,0.12l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312
|
36 |
c 10.072,4.624, 17.024,14.16, 18.376,25.16c 1.36,11-3.080,21.92-11.728,28.856c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96
|
37 |
c0,33.432, 58.2,79.928, 112.064,79.928c 54.336,0, 111.968-45.768, 111.968-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688
|
38 |
c-8.752-6.888-13.296-17.84-11.984-28.904c 1.312-11.080, 8.296-20.656, 18.424-25.312l 81.12-38.624l 19.072,27.032l-86.832,40.672
|
41 |
l-26,31.992L 31.752,0.12z M 506.104,118.248c-6.952,5.456-17.016,4.216-22.456-2.736l-68.424-104.352l-42.528,42.536
|
42 |
c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.376,0-22.624l 56.568-56.568c 6.248-6.248, 16.376-6.248, 22.624,0
|
43 |
c 1.52,1.512, 2.656,3.272, 3.44,5.144l 76.152,116.152C 514.288,102.752, 513.064,112.808, 506.104,118.248z" />
|
44 |
+
<glyph unicode="" d="M 399.56,288.072l0,79.96 c0,52.96-73.304,111.928-143.952,111.928c-70.656,0-144.064-58.968-144.064-111.928l0-79.96
|
45 |
c0-34.936, 15.944-105.616, 60.696-141.536L 31.72,80.216c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 303.968,0 l0,32
|
46 |
L 31.744,0.216l0,32.472 c0,12.72, 9.552,16.712, 13.36,18.472l 140.52,66.312c 10.072,4.624, 17.024,14.168, 18.376,25.168
|
47 |
c 1.36,11-3.080,21.912-11.728,28.848c-33.24,26.688-48.728,85.344-48.728,116.6l0,79.96 c0,33.432, 58.2,79.928, 112.064,79.928
|
51 |
c-6.248,6.24-16.384,6.24-22.624,0c-6.248-6.248-6.248-16.392,0-22.624l 45.248-45.256l-45.248-45.248c-6.248-6.24-6.248-16.384,0-22.632
|
52 |
c 6.24-6.232, 16.376-6.232, 22.624,0l 45.248,45.256l 45.256-45.256c 6.24-6.232, 16.376-6.232, 22.616,0c 6.248,6.248, 6.248,16.392,0,22.632
|
53 |
L 462.312,40.6z" />
|
54 |
+
<glyph unicode="" d="M 367.904,16.064L 142.936,16.064 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 224.968,0 c 8.84,0, 16,7.16, 16,16S 376.752,16.064, 367.904,16.064z
|
55 |
M 508.656,419.184c-1.512,7.44-8.080,12.784-15.672,12.784l-78.312,0 L 414.672,447.936 c0,8.84-7.16,16-16,16L 110.904,463.936 c-8.84,0-16-7.16-16-16l0-15.968 L 19.016,431.968
|
56 |
c-7.592,0-14.16-5.344-15.672-12.784c-0.472-2.312-11.2-58.376, 19.952-96.576c 17.92-21.96, 45.304-33.464, 81.248-34.488
|
57 |
C 125.040,227.544, 176.576,182.688, 238.64,176l0-111.456 l-47.888,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 129.344,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16
|
60 |
c0-8.648, 0.8-17.080, 1.968-25.384C 75.032,322.608, 58.648,329.984, 48.2,342.72z M 382.672,345.952c0-76.544-57.36-138.832-127.856-138.832
|
61 |
c-70.528,0-127.904,62.28-127.904,138.832L 126.912,431.936 l 255.768,0 L 382.68,345.952 z M 463.8,342.72c-10.84-13.216-28.016-20.744-51.136-22.432
|
62 |
c 1.192,8.392, 2.008,16.92, 2.008,25.664l0,54.016 l 64,0 C 479.392,385.408, 477.968,359.968, 463.8,342.72z" />
|
63 |
+
<glyph unicode="" d="M 352.072,480L 159.928,480 c-26.512,0-48-21.488-48-48l0-416 c0-26.512, 21.488-48, 48-48l 192.144,0
|
64 |
c 26.512,0, 48,21.488, 48,48L 400.072,432 C 400.072,458.512, 378.584,480, 352.072,480z M 368.072,16c0-8.832-7.168-16-16-16L 159.928,0 c-8.832,0-16,7.168-16,16L 143.928,432
|
65 |
c0,8.832, 7.168,16, 16,16l 192.144,0 c 8.832,0, 16-7.168, 16-16L 368.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.288-31.92, 31.92-31.92
|
66 |
c 17.64,0, 31.92,14.304, 31.92,31.92S 273.664,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
67 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
68 |
+
<glyph unicode="" d="M 480,432.096L 32,432.096 c-17.592,0-32-14.4-32-32L0,128 c0-17.592, 14.408-31.992, 32-31.992l 208,0 l0-48.104 L 160,47.904
|
69 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 272,47.904 l0,48.104 l 208,0 c 17.592,0, 32,14.4, 32,31.992L 512,400.096
|
70 |
C 512,417.696, 497.592,432.096, 480,432.096z M 480,128L 32,128 L 32,400.096 l 448,0 L 480,128 z" />
|
71 |
+
<glyph unicode="" d="M 467.16,447.048L 467.16,447.048c 5.216,0, 8.888-0.968, 10.8-1.704c 2.296-6.112, 5.376-28.016-17.264-50.672L 355.36,289.344l-10.16-10.16
|
72 |
l 0.832-14.328c 1.752-29.984, 5-83.72, 7.8-129.784c 2.472-41, 4.816-79.72, 4.968-83.016c 0.080-2.264, 0.112-2.8-2-5.344
|
73 |
c-4.72-5.736-13.528-15.456-20.952-23.512c-11.512,31.016-35.704,96.528-49.064,133.2l-17.168,47.184l-35.512-35.512L 168.8,105.28l-9.096-9.080
|
74 |
l-0.28-12.84c-0.216-10.248-0.168-28.64-0.144-44.856c 0.032-11.296, 0.064-21.56-0.016-27.216c-0.144-0.264, 2.184-0.576, 1.968-0.952
|
88 |
c 0.688-0.080, 1.392-0.112, 2.080-0.112c 6.312,0, 12.856,2.968, 18.216,8.328c0,0, 23.128,24.544, 32.952,36.488
|
89 |
c 9.84,11.936, 9.456,22.128, 9.264,26.936c-0.080,3.328-9.344,154.408-12.784,213.408l 105.328,105.328c 37.328,37.344, 31.392,82.344, 17.528,96.184
|
90 |
C 494.688,474.392, 482.296,479.048, 467.16,479.048L 467.16,479.048z" />
|
91 |
+
<glyph unicode="" d="M 424.576,480L 105.576,480 C 82.576,480, 72.56,463, 72.56,447l0-63.656 L 55.096,383.344 c-8.656,0-15.672-7.016-15.672-15.672S 46.44,352, 55.096,352L 72.56,352
|
92 |
l0-64.376 L 56.592,287.624 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,256.28 l0-64.72 L 56.248,191.56 c-8.656,0-15.672-7.016-15.672-15.672
|
93 |
s 7.016-15.672, 15.672-15.672L 72.56,160.216 l0-64.232 L 56.248,95.984 c-8.656,0-15.672-7.016-15.672-15.672s 7.016-15.672, 15.672-15.672L 72.56,64.64 L 72.56,0
|
94 |
c0-26.512, 20.768-32, 32.264-32l 319.752,0 c 26.512,0, 48,21.488, 48,48L 472.576,432 C 472.576,458.512, 451.096,480, 424.576,480z M 104.56,0l0,64.64 l 16.672,0
|
96 |
s-7.016,15.672-15.672,15.672L 104.56,191.56 l0,64.72 l 17.016,0 c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,287.624 L 104.56,352 l 15.512,0
|
97 |
c 8.656,0, 15.672,7.016, 15.672,15.672s-7.016,15.672-15.672,15.672L 104.56,383.344 L 104.56,447 c0,0.376, 0.032,0.688, 0.080,0.968
|
98 |
C 104.888,447.984, 105.2,448, 105.576,448l 255,0 l0-448 L 104.56,0 z M 440.576,16c0-8.832-7.168-16-16-16l-32,0 L 392.576,448 l 32,0 c 8.832,0, 16-7.168, 16-16L 440.576,16 z" />
|
99 |
+
<glyph unicode="" d="M 396.424,111.64c-50.672,0-79.432,23.816-98.472,39.576c-6.736,5.576-12.864,10.952-18.44,15.832
|
100 |
c-8.456,7.424-19,16.672-22.672,17.952c-0.112,0-1.856,0.080-1.968,0.096c-0.584-0.048-2.072-0.344-2.224-0.36
|
101 |
c-2.536-1.032-11.544-8.784-18.784-15c-6.568-5.64-14.056-12.080-22.52-18.688l-1.544-1.184c-21.736-16.968-48.792-38.080-96.576-38.080
|
102 |
c-35.496,0-70.464,16.064-91.288,41.936c-13.96,17.344-28.648,47.512-19.336,92.736c 1.128,5.472, 5.008,9.952, 10.216,11.816
|
114 |
c-13.696-6.096-27.552-9.184-41.152-9.184c-10.2,0-19.032,1.704-26.312,4.016c-0.016-17.36, 5.056-32.456, 15.168-45.016
|
115 |
c 14.968-18.576, 40.52-30.128, 66.72-30.128c 37,0, 57.448,15.968, 77.232,31.408L 192,176.392c 8.024,6.264, 15.12,12.376, 21.344,17.72
|
116 |
c 14.256,12.248, 23.664,20.344, 33.824,22.144l0,0C 247.176,216.248, 252.016,217.064, 255.368,217.064z" />
|
117 |
+
<glyph unicode="" d="M 256.792,480c-79.064,0-144.752-64.112-144.752-143.168l0-225.656
|
118 |
C 112.040,32.112, 177.728-32, 256.792-32s 143.176,64.112, 143.176,143.168L 399.968,336.832 C 399.968,415.888, 335.856,480, 256.792,480z M 367.968,111.168
|
119 |
C 367.968,49.872, 318.096,0, 256.792,0s-112.752,49.872-112.752,111.168L 144.040,336.832 C 144.040,398.128, 195.496,448, 256.792,448
|
120 |
s 111.176-49.872, 111.176-111.168L 367.968,111.168 z M 256.168,384c-8.832,0-16-7.168-16-16l0-80 c0-8.832, 7.168-16, 16-16c 8.832,0, 16,7.168, 16,16L 272.168,368
|
121 |
C 272.168,376.832, 265,384, 256.168,384z" />
|
122 |
+
<glyph unicode="" d="M 480.144,449.912L 480.144,464.416 c0,8.84-7.16,16-16,16L 351.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328
|
123 |
c0-0.024, 0.016-0.048, 0.016-0.072l0-198.76 c0-48.16-27.168-87.328-75.328-87.328s-84.328,39.168-84.328,87.328L 176.192,449.912 l-0.048,0 L 176.144,464.416
|
124 |
c0,8.84-7.16,16-16,16L 47.832,480.416 c-8.84,0-16-7.16-16-16l0-65.328 c0-0.328, 0.168-0.6, 0.184-0.92l0-205.248
|
125 |
c0-124.456, 99.392-225.328, 223.832-225.328s 224.328,100.872, 224.328,225.328L 480.176,449.912 L 480.144,449.912 z M 448.144,448.416l0-64.168 L 368.016,384.248 L 368.016,448.416 L 448.144,448.416 z
|
126 |
M 144.144,448.416l0-64.168 L 64.016,384.248 L 64.016,448.416 L 144.144,448.416 z M 255.84-0.416c-106.608,0-191.832,86.736-191.832,193.328L 64.008,352.248 l 80.168,0 l0-151.992
|
127 |
c0-65.904, 50.424-119.328, 116.328-119.328S 367.84,134.352, 367.84,200.256L 367.84,352.248 l 80.328,0 l0-159.336 C 448.168,86.32, 362.456-0.416, 255.84-0.416z" />
|
128 |
+
<glyph unicode="" d="M 297.672,447.64l 0.088,0 M 297.672,447.64l-36.104-189.688l 130.792-0.44L 214.328,0.36l 36.104,208.688l-130.784,0.456L 297.672,447.64
|
129 |
M 297.696,479.64c-0.864,0-1.728-0.032-2.576-0.096c-5.648-0.456-9.392-2.344-13.832-5.328c-2.464-1.64-4.72-3.64-6.696-5.968
|
130 |
c-0.584-0.688-1.136-1.408-1.648-2.144L 93.64,228.8c-7.080-9.704-8.12-22.512-2.68-33.216c 5.432-10.704, 16.416-17.488, 28.456-17.576
|
131 |
l 92.368-0.672l-29.040-171.096c-2.76-14.704, 5.080-29.36, 18.88-35.264c 4.112-1.768, 8.432-2.608, 12.696-2.608c 10.056,0, 18.32,4.704, 24.52,13.2
|
132 |
L 418.368,238.72c 7.080,9.704, 8.112,22.528, 2.68,33.216c-5.432,10.704-16.416,17.488-28.456,17.576l-92.368,0.16l 28.728,150.44
|
133 |
c 0.6,2.424, 0.912,4.936, 0.912,7.528c0,17.312-13.784,31.424-31.032,31.984C 298.448,479.64, 298.072,479.64, 297.696,479.64L 297.696,479.64z" />
|
134 |
+
<glyph unicode="" d="M 390.632,176.424c-8.128,3.64-17.544-0.032-21.128-8.096c-0.328-0.712-33.064-72.104-114.72-73.064
|
135 |
c-0.504,0-1-0.016-1.504-0.016c-76.832,0-109.968,70.184-111.344,73.2c-3.656,8-13.096,11.56-21.16,7.936
|
136 |
c-8.048-3.64-11.624-13.104-7.984-21.168c 1.704-3.784, 42.688-91.968, 140.424-91.968c 0.64,0, 1.296,0.016, 1.936,0.016
|
137 |
c 101.936,1.2, 141.92,88.328, 143.56,92.032C 402.336,163.376, 398.696,172.832, 390.632,176.424z M 256,480C 114.608,480,0,365.392,0,224
|
139 |
M 175.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912c-17.64,0-31.92-14.296-31.92-31.912
|
140 |
S 158.112,240.088, 175.752,240.088z M 335.752,240.088c 17.632,0, 31.92,14.296, 31.92,31.912s-14.288,31.912-31.92,31.912
|
141 |
c-17.64,0-31.92-14.296-31.92-31.912S 318.112,240.088, 335.752,240.088z" />
|
142 |
+
<glyph unicode="" d="M 256,480C 114.608,480,0,365.392,0,224s 114.608-256, 256-256s 256,114.608, 256,256S 397.392,480, 256,480z M 480,224c0-33.16-7.296-64.632-20.28-92.968
|
143 |
l-141.608,75.776c 1.512,5.488, 2.392,11.232, 2.392,17.192c0,35.624-28.872,64.504-64.504,64.504c-7.312,0-14.312-1.272-20.856-3.512
|
144 |
L 150.336,421.448C 181.832,438.368, 217.808,448, 256,448C 379.512,448, 480,347.512, 480,224z M 256,256.496c 17.92,0, 32.504-14.576, 32.504-32.504
|
145 |
S 273.92,191.496, 256,191.496S 223.504,206.080, 223.504,224S 238.080,256.496, 256,256.496z M 123.288,404.312l 85.088-136.92
|
147 |
c0,31.84, 6.72,62.128, 18.752,89.584l 142.184-76.080c-0.928-4.36-1.44-8.864-1.44-13.504c0-35.624, 28.872-64.504, 64.504-64.504
|
148 |
c 6.2,0, 12.176,0.92, 17.848,2.552l 85.096-136.896C 328.104,9.128, 293.112,0, 256,0C 132.488,0, 32,100.488, 32,224z M 386.224,41.92
|
149 |
L 301.472,178.264c 0.248,0.248, 0.48,0.512, 0.728,0.768l 142.144-76.072C 428.968,79.144, 409.224,58.416, 386.224,41.92z" />
|
150 |
+
<glyph unicode="" d="M 508.2,231.68l-4.24,4.040c-0.080,0.080-0.168,0.112-0.264,0.184l-64.872,59.216
|
151 |
c-4.672,4.472-12.224,4.472-16.912,0l-2.744-4.032c-4.672-4.472-3.152-11.704, 1.52-16.168l 38.232-34.672L 273.248,240.248 L 273.248,426.92 l 34.672-38.232
|
152 |
c 4.472-4.672, 11.704-6.192, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.24,0,16.92l-56.584,61.984
|
153 |
c-1.376,2.776-3.504,5.072-6.16,6.648l-0.712,0.744c-2.216,2.336-5.168,3.504-8.112,3.488c-2.952,0.016-5.888-1.152-8.144-3.488
|
162 |
c-4.472,4.672-11.704,3.152-16.168-1.52l-34.672-38.232L 273.256,208.248 L 460.24,208.248 l-38.552-34.576c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032
|
163 |
c 4.688-4.464, 12.248-4.464, 16.912,0l 63.872,57.752c 0.088,0.088, 0.184,0.096, 0.264,0.168l 4.24,4.048
|
164 |
c 2.336,2.248, 3.504,5.184, 3.488,8.144C 511.704,226.496, 510.536,229.456, 508.2,231.68z" />
|
165 |
+
<glyph unicode="" d="M 496,80l-64,0 L 432,376.952 l 59.728,59.648c 6.24,6.248, 6.24,16.384,0,22.632c-6.248,6.248-16.384,6.248-22.632,0L 409.792,400L 112,400 L 112,464
|
166 |
c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-64 L 16,400 c-8.84,0-16-7.16-16-16c0-8.832, 7.16-16, 16-16l 64,0 l0-304 c0-1.472, 0.472-2.8, 0.84-4.144
|
167 |
c 0.16-0.608, 0.128-1.232, 0.36-1.816c 1.608-4.032, 4.8-7.216, 8.832-8.84c 0.688-0.28, 1.44-0.248, 2.144-0.424
|
168 |
C 93.44,48.456, 94.64,48, 96,48l 304,0 l0-64 c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16l0,64 l 64,0 c 8.84,0, 16,7.16, 16,16S 504.84,80, 496,80z M 377.744,368
|
169 |
L 112,102.608L 112,368 L 377.744,368 z M 134.64,80L 400,344.992L 400,80 L 134.64,80 z" />
|
170 |
+
<glyph unicode="" d="M 464.072,392L 47.928,392 c-26.512,0-48-21.488-48-48l0-240 c0-26.512, 21.488-48, 48-48l 416.144,0
|
171 |
c 26.512,0, 48,21.488, 48,48L 512.072,344 C 512.072,370.512, 490.584,392, 464.072,392z M 47.928,360l 416.144,0 c 8.832,0, 16-7.168, 16-16l0-32 L 31.928,312 l0,32
|
172 |
C 31.928,352.832, 39.104,360, 47.928,360z M 464.072,88L 47.928,88 c-8.832,0-16,7.168-16,16L 31.928,248 l 448.144,0 l0-144 C 480.072,95.168, 472.896,88, 464.072,88z" />
|
173 |
+
<glyph unicode="" d="M 405.208-5.36l-85.2,100.832L 320.008,272.224 l 10.656,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16l-26.656,0 c-8.84,0-16-7.16-16-16l0-198.912
|
174 |
c0-3.968, 1.472-7.784, 4.128-10.72l 65.184-78.672l-202.64,0 l 65.184,78.672c 2.656,2.936, 4.128,6.752, 4.128,10.72L 223.992,288.224 c0,8.84-7.16,16-16,16
|
175 |
l-26.656,0 c-8.84,0-16-7.16-16-16s 7.16-16, 16-16l 10.656,0 l0-176.752 L 106.792-5.36c-4.232-4.688-5.312-11.44-2.752-17.216
|
176 |
c 2.576-5.784, 8.296-9.504, 14.624-9.504l 274.672,0 c 6.328,0, 12.048,3.72, 14.624,9.504C 410.52-16.8, 409.448-10.048, 405.208-5.36z M 240,320.16
|
178 |
C 208.080,334.456, 222.36,320.16, 240,320.16z M 344.24,367.656c 31.184,0, 56.464,25.168, 56.464,56.208s-25.272,56.208-56.464,56.208
|
179 |
c-31.176,0-56.464-25.168-56.464-56.208S 313.064,367.656, 344.24,367.656z M 343.992,448.168c 13.328,0, 24.168-10.792, 24.168-24.064
|
180 |
c0-13.264-10.84-24.064-24.168-24.064s-24.168,10.8-24.168,24.064C 319.832,437.376, 330.664,448.168, 343.992,448.168z" />
|
181 |
+
<glyph unicode="" d="M 255.864,448c 54.336,0, 111.96-45.768, 111.96-79.928l0-79.96 c0-30.776-12.8-89.656-47.128-116.688c-8.752-6.888-13.296-17.84-11.984-28.904
|
182 |
c 1.312-11.080, 8.296-20.656, 18.424-25.312l 139.248-66.032c 1.088-0.496, 13.344-2.552, 13.344-19.672l 0.016-31.232L 32,0.248L 32,32.72
|
183 |
c0,12.72, 9.544,16.712, 13.36,18.472l 140.512,66.312c 10.080,4.624, 17.032,14.16, 18.384,25.16c 1.36,11-3.080,21.92-11.728,28.856
|
184 |
c-33.24,26.688-48.728,85.352-48.728,116.592l0,79.96 C 143.808,401.496, 202.008,448, 255.864,448 M 255.864,480c-70.656,0-144.064-58.968-144.064-111.928
|
185 |
l0-79.96 c0-34.936, 15.944-105.624, 60.696-141.544L 31.976,80.248c0,0-31.976-14.248-31.976-31.984l0-48.016 c0-17.672, 14.32-31.984, 31.976-31.984l 447.776,0
|
186 |
c 17.672,0, 31.984,14.312, 31.984,31.984l0,48.016 c0,18.8-31.984,31.984-31.984,31.984l-139.248,66.032c 44.328,34.888, 59.328,103.424, 59.328,141.832
|
187 |
l0,79.96 C 399.832,421.032, 326.512,480, 255.864,480L 255.864,480z" />
|
188 |
+
<glyph unicode="" d="M 255.992,461.936C 115.008,461.936, 0.32,347.232, 0.32,206.248
|
189 |
c0-88.576, 44.84-169.592, 119.952-216.704c 7.472-4.736, 17.344-2.44, 22.048,5.048s 2.44,17.36-5.048,22.048
|
190 |
c-27.048,16.976-49.52,39.024-66.712,64.44l 16.776,9.688c 7.656,4.424, 10.28,14.2, 5.856,21.856c-4.44,7.672-14.232,10.28-21.856,5.856
|
191 |
l-16.8-9.696c-12.2,25.256-19.648,52.896-21.64,81.712l 17.808,0 c 8.84,0, 16,7.16, 16,16s-7.16,16-16,16L 32.976,222.496
|
202 |
M 374.056,256.136c 7.648,4.424, 10.272,14.2, 5.856,21.856c-4.416,7.648-14.208,10.272-21.856,5.848l-86.912-50.176
|
203 |
c-4.64,2.624-9.928,4.248-15.64,4.248c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92c 17.64,0, 31.92,14.296, 31.92,31.92
|
204 |
c0,0.032-0.008,0.072-0.008,0.104L 374.056,256.136z" />
|
205 |
+
<glyph unicode="" d="M 470.368,385.152c-13.872,9.984-52.528,23.248-214.504,23.248c-173.576,0-199.328-15.232-207.592-20.216
|
206 |
c-43.984-26.424-48.16-143.408-48.544-167.128c 0.528-31.328, 5.592-135.56, 48.512-161.344c 8.248-4.968, 33.856-20.112, 207.624-20.112
|
207 |
c 162.080,0, 200.688,13.2, 214.504,23.144c 37.488,26.968, 41.8,119.84, 41.904,158.72C 512.176,252.728, 508.896,357.4, 470.368,385.152z
|
208 |
M 451.68,88.712c-5.576-4.016-37.592-17.112-195.816-17.112c-152.968,0-185.064,11.872-191.128,15.528c-15.44,9.264-31.736,58.44-33.016,134.016
|
211 |
c-4.952,2.984-11.112,3.064-16.128,0.232c-5.032-2.84-8.144-8.168-8.144-13.936l0-176.72 c0-5.768, 3.112-11.096, 8.144-13.936
|
212 |
c 2.44-1.376, 5.16-2.064, 7.856-2.064c 2.856,0, 5.736,0.768, 8.264,2.296l 143.968,88.376c 4.8,2.904, 7.736,8.096, 7.736,13.704
|
213 |
S 365.008,233.696, 360.208,236.584z M 223.976,162.848L 223.976,282.896 l 97-60.016L 223.976,162.848z" />
|
214 |
+
<glyph unicode="" d="M 342.2,400.656c 26.44,0, 50.312-10.816, 67.128-28.184c 20.92,4.048, 40.64,11.424, 58.36,21.64c-6.856-20.816-21.44-38.28-40.408-49.328
|
215 |
c 18.56,2.184, 36.328,6.952, 52.816,14.080c-12.36-17.872-27.92-33.608-45.888-46.184c 0.168-3.816, 0.264-7.672, 0.264-11.512
|
216 |
c0-117.864-92.504-253.808-261.656-253.808c-51.92,0-100.28,14.816-140.952,40.112c 7.184-0.84, 14.504-1.264, 21.92-1.264
|
217 |
c 43.080,0, 82.752,14.248, 114.232,38.2c-40.264,0.688-74.248,26.504-85.904,61.92c 5.608-1.048, 11.376-1.608, 17.312-1.608
|
227 |
c 182.016,0, 291.504,142.488, 293.632,281.672c 14.896,12.328, 28.064,26.592, 39.224,42.576c 4.064,5.344, 6.48,12.016, 6.48,19.248
|
228 |
c0,10.888-5.448,20.512-13.744,26.296c 3.592,12.312-0.504,25.64-10.504,33.784c-5.84,4.752-13,7.168-20.2,7.168
|
229 |
c-5.504,0-11.016-1.408-15.984-4.28c-10.576-6.096-21.888-10.92-33.8-14.392C 396.36,423.624, 369.64,432.656, 342.2,432.656L 342.2,432.656z" />
|
230 |
+
<glyph unicode="" d="M 264.008,448.128l0-111.936 l 112.16,0 l0-47.984 L 264.504,288.208 l-0.16-139.264c0-25.888, 1.344-42.504, 4.080-49.872c 4.264-11.624, 19.784-26.504, 48.592-26.504
|
231 |
c 22.344,0, 52.488,6.72, 75.080,23.624l0-74.656 c-18.84-8.984-36.36-12.608-51.624-16.232c-15.28-3.608-31.832-5.424-49.576-5.424
|
232 |
c-19.768,0-76.832,0.544-100.248,60.2c-4.216,10.736-6.328,26.328-6.328,46.736L 184.32,288.128 l-64.424,0 l 0.312,49.064
|
233 |
c 21.328,0, 85.312,12.952, 85.312,110.936L 264.008,448.128 M 264.008,480.128L 205.52,480.128 c-17.672,0-32-14.328-32-32c0-73.248-40.816-78.936-53.312-78.936
|
237 |
c-4.528,2.28-9.44,3.392-14.328,3.392c-6.784,0-13.528-2.16-19.168-6.376c-19.048-14.264-43.424-17.248-55.904-17.248
|
238 |
c-12.8,0-17.56,4.64-18.608,5.872c-0.544,2.512-2.064,11.888-2.064,38.504l 0.112,107.264l 79.704,0 c 17.672,0, 32,14.328, 32,32l0,47.984
|
239 |
c0,17.672-14.328,32-32,32l-80.16,0 L 296.008,448.128 C 296.008,465.8, 281.68,480.128, 264.008,480.128L 264.008,480.128z" />
|
240 |
+
<glyph unicode="" d="M 290.88,439.752c 1.904,0, 3-0.080, 3-0.080l 41.784,0 l-0.216-48l-41.504,0 c-22.84,0-22.312-19.504-22.312-19.504l0-76.096 l 80.816,0
|
241 |
l-11.28-47.936l-69.8,0 l0-239.888 l-47.952,0 l-0.032,239.888L 159.68,248.136 l-0.128,47.936l 63.856,0 c0,0,0,58.688,0,74.592
|
242 |
C 223.416,435.704, 277.432,439.752, 290.88,439.752 M 335.664,439.672l 0.080,0 M 290.88,471.752L 290.88,471.752c-11.504,0-33.984-1.904-55.28-14.736
|
243 |
c-20.16-12.128-44.184-36.968-44.184-86.344l0-42.592 l-31.856,0 c-8.504,0-16.656-3.392-22.672-9.408c-6-6.032-9.36-14.184-9.328-22.704
|
245 |
c 14.2,0, 26.704,9.36, 30.704,22.984l 11.28,47.936c 2.84,9.672, 0.952,20.128-5.096,28.184c-6.032,8.080-15.528,12.832-25.608,12.832l-48.816,0
|
246 |
l0,31.576 l 31.816,0.016c 17.608,0, 31.92,14.232, 32,31.856l 0.216,46.376c 0.032,0.592, 0.048,1.168, 0.048,1.768c0,17.672-14.296,32-31.968,32l-0.080,0
|
247 |
l-40.888,0 C 293.864,471.72, 292.536,471.752, 290.88,471.752L 290.88,471.752z" />
|
248 |
+
<glyph unicode="" d="M 511.712,367.624c-0.36,5.112-3.144,9.736-7.488,12.456L 361.632,469.064c-5.8,3.608-13.216,3.16-18.528-1.144l-87.112-70.472
|
249 |
L 168.896,467.92c-5.296,4.28-12.768,4.768-18.528,1.144L 7.776,380.080c-4.344-2.72-7.128-7.344-7.488-12.456
|
250 |
c-0.376-5.112, 1.736-10.080, 5.656-13.376l 82.608-69.408l-70.768-55.592c-4.048-3.16-6.312-8.088-6.112-13.208
|
251 |
c 0.2-5.12, 2.84-9.832, 7.112-12.68l 65.488-43.656c-3.216-2.92-5.272-7.104-5.272-11.8l0-64.168 c0-5.56, 2.888-10.72, 7.624-13.64
|
257 |
L 111.008,141.888 z M 399.104,92.672l-128.128-72.84L 270.976,163.72 l 66.328-50.984c 2.856-2.2, 6.312-3.312, 9.752-3.312c 3.096,0, 6.184,0.888, 8.872,2.688
|
258 |
l 43.168,28.784L 399.096,92.672 z M 456.728,217.76l-109.016-72.664l-63.72,48.968l 113,70.816L 456.728,217.76z M 396.832,304.296l-113.672,73.984
|
259 |
l 71.2,57.592l 114.232-71.296L 396.832,304.296z" />
|
260 |
+
<glyph unicode="" d="M 255.992,479.864c-34.928,0-68.232-7.056-98.592-19.784c-1.056-0.336-2.088-0.776-3.072-1.336
|
261 |
C 63.696,419.336, 0.136,328.968, 0.136,223.992c0-141.080, 114.784-255.856, 255.856-255.856c 141.096,0, 255.872,114.784, 255.872,255.856
|
262 |
C 511.864,365.088, 397.088,479.864, 255.992,479.864z M 479.864,223.992c0-1.792-0.096-3.56-0.136-5.336
|
263 |
c-24.512,6.504-86.696,18.72-163.4,1.872c-6.76,15.448-14.256,31.288-22.64,47.408c-0.704,1.352-1.392,2.64-2.088,3.976
|
271 |
c 13.984,6.336, 27.76,11.392, 41.192,15.456c 30.368-77.16, 40.904-140.784, 44.088-165.296c-26.376-10.952-55.264-17.032-85.56-17.032
|
272 |
C 203.984,0.136, 156.096,18.016, 118.048,47.88z M 371.808,32.48c-4.616,30.8-16.072,88.696-42.984,157.832
|
273 |
c 74.224,14.776, 132.976,0.28, 147.808-4.040C 465.52,121.168, 426.264,65.528, 371.808,32.48z" />
|
274 |
+
<glyph unicode="" d="M 453.976,407.76c-5.936,5.544-13.752,8.608-21.832,8.608
|
275 |
c-0.736,0-1.472-0.032-2.2-0.080c-0.456-0.032-5.592-0.344-13.64-0.344c-13.328,0-39.344,0.904-63.984,6.968
|
276 |
c-31.832,7.816-68.56,44.080-79.248,51.232c-5.376,3.592-11.576,5.392-17.784,5.392c-6.184,0-12.392-1.8-17.768-5.376
|
277 |
c-1.296-0.872-39.752-42.016-77.376-51.248c-24.624-6.064-51.144-6.968-64.456-6.968c-8.048,0-13.184,0.312-13.688,0.344
|
284 |
c-6.248,6.248-16.384,6.248-22.624,0l-45.256-45.256l-45.256,45.256c-6.248,6.248-16.384,6.248-22.632,0s-6.248-16.384,0-22.624l 45.256-45.256
|
285 |
l-45.256-45.256c-6.248-6.24-6.248-16.376,0-22.624s 16.384-6.248, 22.632,0l 45.256,45.256l 45.256-45.256c 6.24-6.248, 16.376-6.248, 22.624,0
|
286 |
s 6.248,16.384,0,22.624l-45.256,45.256l 45.256,45.256C 330.048,290.496, 330.048,300.632, 323.8,306.88z" />
|
287 |
+
<glyph unicode="" d="M 416.072,480L 95.928,480 c-26.512,0-48-21.488-48-48l0-416 c0-26.512, 21.488-48, 48-48l 320.144,0
|
288 |
c 26.512,0, 48,21.488, 48,48L 464.072,432 C 464.072,458.512, 442.584,480, 416.072,480z M 432.072,16c0-8.832-7.168-16-16-16L 95.928,0 c-8.832,0-16,7.168-16,16L 79.928,432
|
289 |
c0,8.832, 7.168,16, 16,16l 320.144,0 c 8.832,0, 16-7.168, 16-16L 432.072,16 z M 256.024,79.912c-17.64,0-31.92-14.296-31.92-31.912s 14.28-31.92, 31.92-31.92
|
290 |
c 17.632,0, 31.92,14.304, 31.92,31.92S 273.656,79.912, 256.024,79.912z M 288.024,432l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0
|
291 |
c 8.832,0, 16,7.168, 16,16S 296.856,432, 288.024,432z" />
|
292 |
+
<glyph unicode="" d="M 510.256,265.312l-51.392,76.84l 25.576,89.408c 1.592,5.608, 0.032,11.64-4.112,15.752c-4.128,4.128-10.128,5.656-15.768,4.016
|
293 |
L 375.304,425.264l-77.144,51.952c-4.856,3.264-11.080,3.656-16.232,0.968c-5.184-2.656-8.512-7.936-8.704-13.752l-2.768-92.968
|
294 |
l-73.248-57.296c-4.592-3.592-6.856-9.408-5.936-15.16s 4.904-10.544, 10.408-12.512l 68.728-24.64c-0.464-0.368-0.952-0.696-1.384-1.128
|
295 |
L 3.648-4.648c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 265.376,265.376
|
299 |
c-1.624,4.472-5.16,7.968-9.64,9.576l-67.296,24.128l 56.312,44.032c 3.752,2.936, 5.984,7.376, 6.144,12.128l 2.128,71.472l 59.296-39.936
|
300 |
c 3.952-2.656, 8.888-3.408, 13.424-2.096l 68.624,20.048l-19.672-68.736c-1.296-4.576-0.504-9.488, 2.168-13.424l 40.28-59.064L 397.024,268.728z
|
301 |
" />
|
302 |
+
<glyph unicode="" d="M 416.528,447.696l-32.232,0 l0-107.704 c0-52.192-28.328-91.68-89.048-122.6
|
303 |
C 358.28,185.488, 384.8,146.312, 384.8,87.856c0-38.064-0.168-70-0.296-87.56l 32.032,0 c 8.84,0, 16-7.144, 16-15.984s-7.16-16-16-16L 95.472-31.688
|
304 |
c-8.84,0-16,7.16-16,16s 7.16,15.984, 16,15.984l 32.968,0 c-0.12,17.56-0.296,49.504-0.296,87.56c0,58.456, 26.144,97.624, 89.072,129.528
|
305 |
c-60.616,30.92-88.568,70.408-88.568,122.6L 128.648,447.696 l-33.176,0 c-8.84,0-16,7.152-16,16c0,8.832, 7.16,15.992, 16,15.992l 321.064,0
|
306 |
c 8.84,0, 16-7.16, 16-15.992C 432.528,454.848, 425.376,447.696, 416.528,447.696z M 160.136,87.856c0-38.144, 0.176-70.112, 0.296-87.56l 192.088,0
|
307 |
c 0.112,17.456, 0.296,49.424, 0.296,87.56c0,44.504-16.56,79.016-96.592,112.2C 176.216,166.872, 160.136,132.36, 160.136,87.856z M 352.312,447.696
|
308 |
l-191.68,0 l0-107.704 c0-30.688, 10.32-70.208, 95.584-105.264c 85.28,35.056, 96.096,74.576, 96.096,105.264L 352.312,447.696 z" />
|
309 |
+
<glyph unicode="" d="M 495.424,131.848L 495.424,260.92 l 8.048,4.248c 5.232,2.72, 8.528,8.112, 8.592,14.016
|
310 |
c 0.064,5.888-3.128,11.344-8.296,14.184l-240.72,128.8c-4.816,2.64-10.64,2.624-15.488-0.048L 8.16,293.16
|
311 |
c-5.096-2.84-8.248-8.232-8.216-14.080s 3.248-11.2, 8.408-13.984l 105.192-55.992c-1.32-2.328-2.136-4.984-2.136-7.848l0-135.392
|
312 |
c0-4.56, 1.952-8.92, 5.36-11.952c 3.472-3.080, 36.72-30.048, 138.376-30.048c 101.296,0, 135.44,25.488, 139,28.392
|
314 |
c-9.488-5.552-15.92-15.736-15.92-27.512c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32C 511.504,116.096, 504.984,126.32, 495.424,131.848z M 368.016,73.816
|
315 |
c-12.576-6.048-45.856-17.952-112.872-17.952c-67.44,0-99.968,12.672-111.736,18.768L 143.408,193.2 l 103.904-55.312c 2.36-1.28, 4.984-1.92, 7.592-1.92
|
316 |
c 2.544,0, 5.096,0.608, 7.408,1.832l 105.704,55.832L 368.016,73.816 z M 255.032,170.096L 49.232,279.376l 206.16,110.488l 206.8-110.168L 255.032,170.096z" />
|
317 |
+
<glyph unicode="" d="M 255.992,480.064c-114.608,0-207.84-99.952-207.84-222.8l0-273.336 c0-6.608, 4.080-12.544, 10.248-14.92
|
318 |
c 1.856-0.736, 3.816-1.080, 5.752-1.080c 4.424,0, 8.768,1.84, 11.856,5.264l 60.296,66.56l 47.216-65.216
|
319 |
c 2.984-4.128, 7.752-6.576, 12.84-6.608l 0.112,0 c 5.048,0, 9.816,2.392, 12.832,6.456l 47.408,63.672l 46.592-63.576
|
320 |
c 3.016-4.112, 7.8-6.544, 12.904-6.544c 5.096,0, 9.888,2.424, 12.904,6.528l 47.784,65.144l 59-66.312
|
325 |
L 80.144,257.272 c0,105.2, 78.888,190.8, 175.84,190.8c 96.968,0, 175.856-85.592, 175.856-190.8L 431.84,25.984 z M 336,303.92c-17.64,0-31.92-14.296-31.92-31.904
|
326 |
c0-17.624, 14.28-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 367.92,289.624, 353.64,303.92, 336,303.92z M 176,303.92
|
327 |
c-17.64,0-31.92-14.296-31.92-31.904c0-17.624, 14.288-31.92, 31.92-31.92s 31.92,14.296, 31.92,31.92C 207.92,289.624, 193.64,303.92, 176,303.92z" />
|
328 |
+
<glyph unicode="" d="M 371.608,442.224c-12.8,6.008-24.904,11.664-35.92,17.192
|
329 |
c-28.232,14.144-53.832,21.016-78.232,21.016c-49.144,0-83.152-28.352-104.48-49.68l-17.792-17.808l-11.872-11.888l-17.232-17.256l-26.864-26.896
|
330 |
l-29.664-29.688c-55.344-55.4-64.184-111.8-28.632-182.904c 5.512-11.040, 11.184-23.168, 17.184-36.016
|
331 |
c 32.352-69.192, 65.792-140.744, 120.528-140.744c 1.536,0, 3.056,0.048, 4.608,0.168c 56.488,4.424, 72.512,77.144, 86.656,141.296
|
341 |
c 6,6, 6,15.736,0,21.728c-6,6-15.72,6-21.72,0l-12.176-12.176l-12.176,12.176c-6,6-15.72,6-21.72,0
|
342 |
c-6-6-6-15.728,0-21.728l 12.176-12.176l-12.176-12.176c-6-5.992-6-15.72,0-21.72c 6-6, 15.728-6, 21.72,0
|
343 |
l 12.176,12.168l 12.528-12.528c 6-6, 15.72-6, 21.72,0s 6,15.736,0,21.736L 164.944,208.28z" />
|
344 |
+
<glyph unicode="" d="M 254.208-31.64c-120.624,0-206.184,83.64-206.184,198.888c0,61.184, 36.688,127.096, 38.248,129.856
|
345 |
c 3.184,5.672, 9.44,8.752, 15.968,8.032c 6.456-0.832, 11.768-5.488, 13.44-11.784c 0.096-0.376, 9.984-37.376, 23.032-57.92
|
346 |
c 8.768-13.824, 17.656-23.592, 27.656-30.376c-6.768,29.328-11.952,73.456-3.512,118.736C 186.024,448.080, 283.848,477.816, 288.040,479.016
|
347 |
c 5.392,1.544, 11.112,0.16, 15.216-3.576c 4.096-3.752, 5.968-9.376, 4.904-14.832c-0.16-0.872-16.312-87.888, 17.968-162.032
|
354 |
c-1.2,1.704-29.656,41.984-42.2,69.12c-26.048,56.296-25.608,117.168-22.952,152.232c-26.36-15.36-66.832-49.672-79.832-119.456
|
355 |
c-12.656-67.904, 11.936-135.8, 12.2-136.472c 2.128-5.544, 1-11.832-2.904-16.296c-3.92-4.44-9.952-6.408-15.768-5.016
|
356 |
c-1.984,0.488-47.016,12.2-76.168,58.144C 106.464,226.512, 101.792,236.472, 97.848,246.16z" />
|
357 |
+
<glyph unicode="" d="M 512.688,154.104c-0.488,6.92-26.504,159.656-30.576,184.112c-0.392,2.344-0.704,4.84-1.048,7.472
|
358 |
c-3.144,24.576-9.016,70.312-82.736,70.312c-8.84,0-16-7.16-16-16s 7.16-16, 16-16c 45.56,0, 47.968-18.704, 51-42.392
|
359 |
c 0.392-3.032, 0.768-5.936, 1.216-8.64c 1.872-11.264, 10.352-56.080, 17.672-100.512c-18.776,14.312-42.144,22.904-67.56,22.904
|
360 |
c-40.824,0-77.16-21.976-97.136-54.68c-9.608,3.632-25.912,8.168-47.696,8.168c-21.472,0-37.256-4.568-47.016-8.544
|
369 |
c-44.096,0-81.344,36.488-81.344,79.672s 37.248,79.672, 81.344,79.672c 38,0, 69.816-26.744, 77.728-62.392
|
370 |
c 0.328-3.264, 0.6-6.336, 0.808-9.144c 0.096-1.344, 0.456-2.608, 0.92-3.832c 0.080-1.44, 0.216-2.856, 0.216-4.312
|
371 |
C 480.328,99.744, 444.592,64.008, 400.656,64.008z" />
|
372 |
+
<glyph unicode="" d="M 511.656,243.352c-0.68,5.656-2.808,10.856-6.048,15.232l 0.080,0 l-0.44,0.44c-1.64,2.16-3.56,4.064-5.704,5.752L 290.904,466.48
|
373 |
c-18.112,18.112-49.752,18.144-67.888,0L 14.408,266.352c-4.512-4.2-14.44-15.544-14.44-26.672l0-239.76 c0-17.592, 14.408-32, 32-32l 448,0
|
374 |
c 17.592,0, 32,14.408, 32,32L 511.968,239.048 C 512.080,240.488, 511.936,241.928, 511.656,243.352z M 134.896,116.832L 31.968,22.048L 31.968,207.64 L 134.896,116.832z
|
375 |
M 167.784,103.64c 1.144,0.76, 2.232,1.624, 3.184,2.704c 0.184,0.208, 0.312,0.456, 0.48,0.672l 70.584,65
|
377 |
l 101.24,89.848l0-180.92 L 378.728,114.72z M 51.888,258.584L 245.64,443.856c 3.032,3.016, 7.048,4.688, 11.312,4.688
|
378 |
c 4.28,0, 8.296-1.672, 11.328-4.688L 448.968,271.68l-0.488,0 l 27.448-27.896l-121.152-107.52l-67.624,60.832
|
379 |
c-18.84,14.768-45.888,15.408-65.84-0.688l-62.752-57.792L 37.664,245.288l 13.496,13.296L 51.888,258.584 z" />
|
380 |
+
<glyph unicode="" d="M 511.656,243.36c-0.68,5.656-2.808,10.856-6.048,15.232l 0.080,0 l-0.44,0.44c-1.64,2.16-3.56,4.064-5.704,5.752
|
381 |
L 415.968,348.976L 415.968,400.608 c0,8.84-7.16,16-16,16l-50.664,0 l-58.4,49.856c-18.112,18.112-49.752,18.144-67.888,0l-58.2-49.856l-52.848,0
|
382 |
c-8.84,0-16-7.16-16-16l0-52.688 L 14.408,266.36c-8.672-5.736-14.44-15.544-14.44-26.672l0-239.752 c0-17.592, 14.408-32, 32-32l 448,0
|
383 |
c 17.592,0, 32,14.408, 32,32l0,239.12 C 512.080,240.496, 511.936,241.936, 511.656,243.36z M 134.432,117.248L 31.968,22.208L 31.968,207.656 L 134.432,117.248z
|
387 |
c 3.032,3.016, 7.048,4.688, 11.312,4.688c 4.28,0, 8.296-1.672, 11.328-4.688l 32.312-27.232L 213.376,416.608 L 245.64,443.84z M 383.968,384.608l0-222.424
|
388 |
l-28.656-25.44l-68.16,61.784c-18.84,14.768-45.888,15.408-65.84-0.688L 158,139.12l-30.032,26.504L 127.968,384.608 L 383.968,384.608 z M 51.888,258.592l 44.080,44.064
|
389 |
l0-108.808 l-58.312,51.448l 13.496,13.296L 51.888,258.592 z" />
|
390 |
+
<glyph unicode="" d="M 452.808,124.056c-18.672,22.712-44.24,54.872-44.24,87.68l0,104.48
|
391 |
c0,90.008-67.32,163.24-153.344,163.24c-86.040,0-152.832-73.232-152.832-163.24l0-104.48 c0-32.256-27.744-62.744-45.336-86.4
|
392 |
c-15.824-21.256-28.312-38.048-19.88-54.832c 7.416-14.768, 25.984-16.664, 41.328-16.664l 91.68,0 c 0.024-47.104, 38.224-85.288, 85.336-85.288
|
393 |
c 47.12,0, 85.32,38.184, 85.344,85.288l 93.832,0 c 9.76,0, 32.576,0, 40.432,16.6C 483.056,87.248, 470.368,102.696, 452.808,124.056z
|
395 |
c-2.448,0-4.496,0.080-6.184,0.184c 3.296,5.104, 8.136,11.624, 12.072,16.928c 19.496,26.2, 52.072,63.184, 52.072,106.712l0,104.48
|
396 |
c0,71.232, 51.52,129.176, 118.76,129.176c 67.24,0, 119.28-57.944, 119.28-129.176l0-104.48 c0-45.008, 30.040-82.624, 51.984-109.304
|
397 |
c 3.696-4.496, 8.12-9.88, 11.56-14.48C 437.032,87.92, 435.912,87.904, 434.696,87.904z" />
|
398 |
+
<glyph unicode="" d="M 510.528,60.016L 416.896,233.168c 9.552,21.68, 14.896,45.64, 14.896,70.848c0,97.152-78.76,175.904-175.904,175.904
|
399 |
c-97.168,0-175.92-78.76-175.92-175.904c0-25.816, 5.608-50.312, 15.592-72.392L 1.512,60.096c-3.032-5.512-2.528-12.312, 1.264-17.344
|
400 |
c 3.8-5.016, 10.216-7.376, 16.344-5.936l 80.312,18.424l 27.488-76.56c 2.144-5.952, 7.576-10.080, 13.872-10.544
|
401 |
c 0.408-0.032, 0.8-0.048, 1.184-0.048c 5.856,0, 11.296,3.216, 14.096,8.44l 81.848,152.488c 5.904-0.6, 11.896-0.904, 17.96-0.904
|
406 |
c 79.272,0, 143.768-64.496, 143.768-143.768s-64.496-143.784-143.768-143.784C 176.608,160.232, 112.112,224.744, 112.112,304.016z M 405.872,89.592
|
407 |
c-7.936,1.872-15.888-2.56-18.64-10.184l-20.264-56.488L 305.392,135.2c 37.72,11.048, 70.168,34.368, 92.752,65.368l 67.424-124.664L 405.872,89.592z
|
408 |
" />
|
409 |
+
<glyph unicode="" d="M 510.512,114.296l-41.144,75.648c-0.064,0.104-0.048,0.2-0.112,0.296l-2.936,5.072
|
410 |
c-1.64,2.808-4.216,4.616-7.096,5.296c-2.848,0.704-5.992,0.272-8.704-1.488l-4.92-3.168c-0.096-0.056-0.152-0.144-0.248-0.208
|
411 |
l-72.8-49.16c-5.44-3.504-7.208-10.84-3.968-16.456l 3.272-3.6c 3.24-5.592, 10.632-5.824, 16.080-2.32l 43.52,29.592
|
412 |
c-10.304-83-77.368-146.696-159.48-154.088L 271.976,320.512 L 336,320.512 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-64.72,0
|
419 |
c 14.688-102.36, 102.552-178.912, 206.64-178.912c 104.032,0, 191.96,76.544, 206.68,178.856l 23.92-44.432c 3.248-5.592, 9.944-8.768, 15.384-5.272
|
420 |
l 4.56,1.712C 511.984,101.36, 513.76,108.712, 510.512,114.296z M 223.752,416.512c0,17.92, 14.576,32.504, 32.496,32.504
|
421 |
c 17.92,0, 32.504-14.576, 32.504-32.504s-14.576-32.504-32.504-32.504C 238.336,384.016, 223.752,398.592, 223.752,416.512z" />
|
422 |
+
<glyph unicode="" d="M 511.824,334.76c 0.232,11.832-2.952,39.424-38.92,49.032L 115.024,455.76l-3.328,0.344
|
423 |
c-26.472,0-48-21.528-48-48l0-64.352 l-16,0.040c-26.376-0.112-47.816-21.576-47.816-47.984l0-255.904 c0-26.472, 21.528-48, 48-48l 416.232,0
|
424 |
c 26.472,0, 48,21.528, 48,48L 511.824,334.76z M 95.696,408.104c0,8.36, 6.44,15.232, 14.608,15.936l 353-71.44
|
425 |
c 0.128-0.064-2.624-8.968-15.44-8.8L 95.696,343.8 L 95.696,408.104 z M 480.12,39.896c0-8.832-7.168-16-16-16L 47.88,23.896 c-8.832,0-16,7.168-16,16L 31.88,295.808
|
426 |
c0,8.832, 7.168,16, 16,16l 400.032,0 c 15.704,0, 32.2,5.352, 32.2,15.944L 480.112,39.896 z M 95.912,199.752c-17.672,0-32-14.328-32-32s 14.328-32, 32-32
|
427 |
s 32,14.328, 32,32S 113.584,199.752, 95.912,199.752z" />
|
428 |
+
<glyph unicode="" d="M 496,144l-16.136,0 l0,0.808 c0,80.96-43.264,151.904-107.832,191.192l 80.408,0
|
429 |
c 5.544-9.52, 15.752-16, 27.56-16c 17.672,0, 32,14.328, 32,32s-14.328,32-32,32c-11.816,0-22.016-6.48-27.56-16L 304,368 l0,16 c0,8.832-7.168,16-16,16l-64,0
|
430 |
c-8.832,0-16-7.168-16-16l0-16 L 59.56,368 C 54.016,377.52, 43.816,384, 32,384c-17.672,0-32-14.328-32-32s 14.328-32, 32-32c 11.816,0, 22.016,6.48, 27.56,16l 80.4,0
|
431 |
C 75.392,296.704, 32.136,225.768, 32.136,144.808L 32.136,144 L 16,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
432 |
c0,8.832-7.168,16-16,16L 64.136,144 l0,0.808 c0,89.224, 61.232,164.336, 143.864,185.696L 208,320 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,10.504
|
433 |
c 82.632-21.368, 143.864-96.48, 143.864-185.696L 447.864,144 L 432,144 c-8.832,0-16-7.168-16-16l0-64 c0-8.832, 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16l0,64
|
434 |
C 512,136.832, 504.832,144, 496,144z M 64,80L 32,80 l0,32 l 32,0 L 64,80 z M 272,336l-32,0 l0,32 l 32,0 L 272,336 z M 480,80l-32,0 l0,32 l 32,0 L 480,80 z" />
|
435 |
+
<glyph unicode="" d="M 480,448.2L 32,448.2 c-17.672,0-32-14.328-32-32l0-288.752 c0-17.672, 14.328-32, 32-32l 63.768,0 l0-79.656
|
436 |
c0-6.456, 3.872-12.264, 9.816-14.752c 2-0.84, 4.112-1.248, 6.184-1.248c 4.128,0, 8.168,1.592, 11.216,4.592l 92.512,91.064L 480,95.448
|
437 |
c 17.672,0, 32,14.328, 32,32L 512,416.2 C 512,433.872, 497.672,448.2, 480,448.2z M 480,127.456L 202.392,127.456 l-74.624-73.456l0,73.456 L 32,127.456 L 32,416.2 l 448,0 L 480,127.456 z
|
438 |
M 112,255.496l 288,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,287.496 c-8.832,0-16-7.168-16-16S 103.168,255.496, 112,255.496z M 112,319.496l 288,0
|
439 |
c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 112,351.496 c-8.832,0-16-7.168-16-16S 103.168,319.496, 112,319.496z M 112,191.496l 192,0 c 8.832,0, 16,7.168, 16,16
|
440 |
s-7.168,16-16,16L 112,223.496 c-8.832,0-16-7.168-16-16S 103.168,191.496, 112,191.496z" />
|
441 |
+
<glyph unicode="" d="M 256-32.080c-10.144,0-19.688,3.936-26.872,11.096L 10.872,197.264c-14.768,14.84-14.768,38.976-0.032,53.784l 79.952,79.936
|
442 |
c 4.936,4.936, 12.512,6.112, 18.72,2.872c 6.184-3.232, 9.56-10.112, 8.344-16.984c-0.816-4.576-1.184-8.248-1.184-11.56
|
443 |
c0-35, 28.488-64.072, 63.504-64.072c 35.048,0, 60.64,29.072, 60.64,64.072c0,35.048-25.592,63.544-60.64,63.544c-3.28,0-6.936-0.376-11.512-1.184
|
444 |
c-6.936-1.28-13.752,2.16-16.984,8.344c-3.232,6.2-2.064,13.784, 2.872,18.72l 74.544,74.56c 14.44,14.376, 39.408,14.344, 53.784,0.032
|
450 |
c-30.856,0-55.968-25.128-55.968-56.016c0-1.28, 0.2-2.528, 0.376-3.784l 0.344-2.856c 0.72-6.752-2.888-13.216-9.016-16.144
|
451 |
c-6.080-2.904-13.408-1.656-18.2,3.128l-78.472,78.512c-3.064,3.032-5.472,3.064-8.592-0.032l-48.56-48.56
|
452 |
c 41.64-10.312, 69.688-47.984, 69.688-92.768c0-52.656-39.96-96.064-92.648-96.064C 135.4,209.248, 97.744,240.784, 87.448,282.392z" />
|
453 |
+
<glyph unicode="" d="M 476.368,352.536l-60.36,0 L 416.008,479.76 L 95.992,479.76 l0-127.224 L 35.632,352.536 c-19.656,0-35.656-16-35.656-35.672
|
454 |
L-0.024,99.92 c0-19.672, 16-35.672, 35.656-35.672l 60.36,0 L 95.992-31.76 l 320.016,0 L 416.008,64.248 l 60.36,0 c 19.656,0, 35.656,16, 35.656,35.672L 512.024,316.864
|
455 |
C 512.024,336.536, 496.024,352.536, 476.368,352.536z M 127.992,448.256l 256.016,0 l0-95.72 L 127.992,352.536 L 127.992,448.256 z M 384.008,0.24L 127.992,0.24 L 127.992,176.44 l 256.016,0
|
456 |
L 384.008,0.24 z M 480.024,99.92c0-2.040-1.64-3.672-3.656-3.672l-60.36,0 L 416.008,208.44 L 95.992,208.44 l0-112.184 L 35.632,96.256 c-2.016,0-3.656,1.632-3.656,3.672
|
457 |
L 31.976,316.864 c0,2.032, 1.64,3.672, 3.656,3.672l 440.736,0 c 2.016,0, 3.656-1.64, 3.656-3.672L 480.024,99.92 z M 416,288.28l-16,0 c-8.832,0-16-7.168-16-16
|
458 |
s 7.168-16, 16-16l 16,0 c 8.832,0, 16,7.168, 16,16S 424.832,288.28, 416,288.28z" />
|
459 |
+
<glyph unicode="" d="M 512,319.752c0,17.672-14.328,32-32,32l-54.624,0 c 14.136,13.944, 23.184,32.224, 23.184,54.736c0,27.72-15.92,57.832-60.608,57.832
|
460 |
c-58.8,0-107.92-62.608-131-97.704C 233.856,401.704, 183.232,464.312, 124.44,464.312c-44.688,0-60.608-30.112-60.608-57.832
|
461 |
c0-22.504, 9.296-40.792, 23.72-54.736L 32,351.744 c-17.672,0-32-14.328-32-32l0-95.784 l 32.28,0 l0-208.28 c0-17.672, 14.328-32, 32-32l 383.84,0 c 17.672,0, 32,14.328, 32,32
|
462 |
L 480.12,223.968 L 512,223.968 L 512,319.752 z M 387.952,432.312c 19.784,0, 28.608-8.312, 28.608-25.832c0-35.544-39.672-54.72-76.984-54.72l-54.168,0
|
463 |
C 308.144,385.528, 348.16,432.312, 387.952,432.312z M 124.44,432.312c 39.8,0, 81.328-46.784, 104.064-80.544l-54.184,0
|
464 |
c-37.312,0-78.488,19.672-78.488,55.216C 95.832,424.496, 104.656,432.312, 124.44,432.312z M 480,255.968L 272,255.968 l0,63.784 l 208,0 L 480,255.968 z M 32,319.752l 208,0 l0-63.784
|
465 |
L 32,255.968 L 32,319.752 z M 64.28,223.968L 240,223.968 l0-208.28 L 64.28,15.688 L 64.28,223.968 z M 448.128,15.688L 272,15.688 L 272,223.968 l 176.128,0 L 448.128,15.688 z" />
|
466 |
+
<glyph unicode="" d="M 16.88,448.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16
|
467 |
S 8.040,448.12, 16.88,448.12z M 16.88,352.12l 224,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16S 8.040,352.12, 16.88,352.12z
|
468 |
M 256.88,272.12c0,8.832-7.168,16-16,16l-224,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 224,0 C 249.712,256.12, 256.88,263.288, 256.88,272.12z
|
469 |
M 506.44,317.728L 349.984,474.176c-4.952,4.96-12.328,5.92-18.296,3.008c-6.272-2.168-10.808-8.056-10.808-15.064L 320.88,107.92
|
471 |
c 53.064,0, 96.048,35.904, 96.048,80.168c0,2.008-0.184,3.968-0.36,5.936L 352.88,426.024 l 130.92-130.928c 6.248-6.248, 16.384-6.248, 22.632,0
|
472 |
C 512.68,301.344, 512.68,311.48, 506.44,317.728z M 320.88,46.488c-1.152-22.248-27.096-46.408-64.064-46.408
|
473 |
c-37.824,0-64.176,25.28-64.176,47.936c0,22.672, 26.352,47.92, 64.176,47.92c 36.968,0, 62.912-24.128, 64.064-46.392L 320.88,46.488 z" />
|
474 |
+
<glyph unicode="" d="M 507.424,290.168L 323.344,475.176c-3.968,3.984-9.688,5.608-15.16,4.248c-5.456-1.328-9.8-5.424-11.472-10.784
|
475 |
c-11.080-35.656-12.36-67.92-3.896-97.344c-0.776-0.536-1.52-1.12-2.208-1.808L 205.056,283.952c-27.6,12.8-57.272,19.728-86.848,19.728
|
476 |
c-18.8,0-37.232-2.784-54.784-8.232c-5.344-1.672-9.44-6-10.784-11.424c-1.344-5.44, 0.232-11.168, 4.184-15.144l 109.488-110.192
|
477 |
L 13.232,3.168l-13.312-35.064l 32.184,12.44l 156.68,155.52l 110.912-111.632c 3.032-3.064, 7.144-4.72, 11.344-4.72
|
482 |
c-8.416,12.864-18.232,25.088-29.512,36.376c-11.232,11.232-23.504,21.128-36.48,29.664l 72.064,72.048c 7.352-12.784, 16.832-25, 28.504-36.664
|
483 |
c 11.928-11.92, 24.544-21.568, 37.8-29.032L 300.112,201.728z M 357.312,325.776c-30.768,30.768-42.624,65.064-36.344,106.44l 143.456-144.2
|
484 |
C 423.096,282.088, 388.624,294.464, 357.312,325.776z" />
|
485 |
+
<glyph unicode="" d="M 480,440.048L 32,440.048 c-17.592,0-32-14.408-32-32l0-368.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,408.048
|
486 |
C 512,425.64, 497.592,440.048, 480,440.048z M 480,39.952L 32,39.952 L 32,134.232 l 128.424,124.456l 132.392-132.248c 5.456-6.624, 15.168-5.784, 22.064-0.56
|
487 |
l 58.44,52.904L 478.72,70.592c 0.4-0.4, 0.848-0.696, 1.28-1.040L 480,39.952 z M 480,115.104L 385.984,211.312
|
488 |
c-5.704,5.624-14.64,6.2-20.968,1.376l-60.28-52.512L 172.264,291.216c-2.832,3.424-6.92,5.512-11.344,5.8
|
489 |
c-4.408,0.16-8.752-1.28-11.984-4.312L 32,178.904L 32,408.048 l 448,0 L 480,115.104 z M 368,279.936c 17.64,0, 31.92,14.304, 31.92,31.92
|
490 |
c0,17.608-14.28,31.912-31.92,31.912s-31.92-14.304-31.92-31.912C 336.080,294.24, 350.36,279.936, 368,279.936z" />
|
491 |
+
<glyph unicode="" d="M 496.592,412.496L 336.112,479.032L 176.392,415.816L 15.408,479
|
492 |
c-1.376,0.408-2.72,0.56-3.984,0.56C 4.856,479.592,0,474.688,0,467.312l0-415 c0-8.784, 6.936-17.936, 15.408-20.28l 161.168-63.592
|
493 |
l 159.504,64.752l 160.512-63.064c 1.376-0.376, 2.72-0.56, 3.984-0.56c 6.56,0, 11.424,4.872, 11.424,12.248L 512,392.184
|
494 |
C 512,400.968, 505.064,410.128, 496.592,412.496z M 192,389.432l 128,50.152l0-380.752 l-128-50.592L 192,389.432 z M 32,436.656l 128-47.288l0-380.88 L 32,60.624L 32,436.656 z
|
495 |
M 480,11l-128,48.192L 352,439.104 l 128-55.192L 480,11 z" />
|
496 |
+
<glyph unicode="" d="M 10.92,329.096l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36
|
497 |
c 5.232,2.816, 8.488,8.312, 8.408,14.264c-0.080,5.968-3.456,11.376-8.752,14.080L 265.856,478.048c-4.528,2.296-9.872,2.312-14.44,0.032
|
498 |
L 11.392,357.44c-5.312-2.672-8.72-8.080-8.816-14.032S 5.704,331.936, 10.92,329.096z M 258.576,445.856L 461.656,342.72L 256.168,231.984
|
499 |
L 53.080,342.576L 258.576,445.856z M 500.672,239.84l-47.488,24.112l-34.28-18.488l 40-20.312L 253.424,114.424L 50.328,225.016l 42.656,21.44L 58.8,265.080
|
502 |
M 500.672,127.84l-44.984,22.112l-34.28-18.488l 37.504-18.312L 253.424,2.424L 50.328,113.016l 39.656,17.936l-34.184,18.624L 8.64,127.872
|
503 |
c-5.312-2.672-8.72-8.080-8.816-14.032s 3.128-11.472, 8.344-14.312l 237.544-129.36c 2.392-1.296, 5.016-1.952, 7.656-1.952
|
504 |
c 2.608,0, 5.216,0.64, 7.592,1.92l 240.048,129.36c 5.232,2.816, 8.488,8.312, 8.408,14.264C 509.344,119.736, 505.968,125.144, 500.672,127.84z" />
|
505 |
+
<glyph unicode="" d="M 511.368,8.68l-41.704,251.888c-3.72,32.656-33.488,59.216-66.36,59.216l-35.328,0 l0,42.64 c0,65.080-46.424,118.016-111.488,118.016
|
506 |
c-65.048,0-112.472-52.936-112.472-118.016l0-42.64 L 105.68,319.784 c-32.872,0-62.64-26.56-66.264-58.528l-38.64-252.080
|
507 |
c-1.488-13.28, 1.112-23.752, 7.704-31.144c 6.216-6.952, 15.264-10.488, 26.872-10.488l 436.784,0 c 16.456,0, 25.888,6.608, 30.92,12.16
|
508 |
C 507.664-15.192, 512.88-6.224, 511.368,8.68z M 176.024,362.432c0,47.424, 33.064,86.016, 80.472,86.016s 79.488-38.592, 79.488-86.016l0-42.64
|
510 |
l 38.344,0 l0-36.464 C 134.488,245.784, 128,235.576, 128,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.808-6.464,22-15.976,27.544l0,36.496 l 159.952,0
|
511 |
l0-36.496 C 326.472,245.752, 320,235.552, 320,223.752c0-17.672, 14.328-32, 32-32s 32,14.328, 32,32c0,11.824-6.488,22.032-16.024,27.576l0,36.464 l 35.328,0
|
512 |
c 16.832,0, 32.656-14.128, 34.704-31.72l 41.672-251.64C 479.88,2.384, 478.272-0.224, 473.584-0.224z" />
|
513 |
+
<glyph unicode="" d="M 464.752,272.792c0,84.392-44.488,160.936-118.984,204.784c-7.624,4.504-17.44,1.936-21.904-5.688
|
514 |
c-4.472-7.608-1.936-17.424, 5.688-21.904c 64.624-38.016, 103.2-104.264, 103.2-177.184c0-121.184-87.968-209.144-209.16-209.144
|
515 |
c-27.096,0-53.392,5.080-78.16,15.080c-8.184,3.328-17.528-0.64-20.832-8.832c-3.312-8.2, 0.64-17.528, 8.832-20.832
|
516 |
c 28.608-11.56, 58.936-17.424, 90.16-17.424c 0.096,0, 0.192,0.008, 0.288,0.008l0-31.504 l-46.464,0 c-9.232,0-16.72-7.152-16.72-15.976
|
519 |
c-97.344,0-176.232-79.376-176.232-176.704s 78.888-175.72, 176.232-175.72C 320.816,95.632, 399.688,174.024, 399.688,271.352z M 79.248,271.352
|
520 |
c0,79.512, 64.704,144.704, 144.232,144.704c 79.512,0, 144.2-65.184, 144.2-144.704s-64.688-143.72-144.2-143.72
|
521 |
C 143.952,127.632, 79.248,191.832, 79.248,271.352z" />
|
522 |
+
<glyph unicode="" d="M 512.512,224c0,136.008-106.832,247.552-241.16,255.512c-2.768,0.304-5.544,0.504-8.36,0.504c-0.832,0-1.664-0.088-2.496-0.112
|
523 |
C 259,479.928, 257.512,480.016, 256,480.016C 114.56,480.016-0.512,365.168-0.512,224c0-141.168, 115.072-256.016, 256.512-256.016
|
524 |
c 1.512,0, 3,0.088, 4.504,0.12c 0.832-0.032, 1.664-0.12, 2.496-0.12c 2.816,0, 5.592,0.2, 8.36,0.504
|
525 |
C 405.68-23.552, 512.512,87.976, 512.512,224z M 464.784,141.584c-8.816,2.56-30.96,8.12-70.032,12.696c 3.232,22.096, 5,45.448, 5,69.72
|
539 |
c 11.632,2.472, 32.456,6.232, 63.296,9.464c 12.144-44.856, 31.896-82.808, 55.568-109.984C 128.848,31.664, 86.76,67.68, 60.544,113.824z
|
540 |
M 345.328,18.408c 19.112,26.632, 34.24,62.512, 43.648,104.4c 31.704-3.64, 51.608-7.896, 61.648-10.432
|
541 |
C 426.616,70.84, 389.696,37.68, 345.328,18.408z" />
|
542 |
+
<glyph unicode="" d="M 112,424L 16,424 C 7.168,424,0,416.832,0,408l0-96 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 32,392 l 80,0
|
543 |
c 8.832,0, 16,7.168, 16,16S 120.832,424, 112,424z M 496,152c-8.832,0-16-7.168-16-16l0-80 L 400,56 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
544 |
L 512,136 C 512,144.832, 504.832,152, 496,152z M 112,56L 32,56 L 32,136 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 c0-8.832, 7.168-16, 16-16l 96,0 c 8.832,0, 16,7.168, 16,16
|
545 |
S 120.832,56, 112,56z M 496,424L 400,424 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 80,0 l0-80 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 512,408 C 512,416.832, 504.832,424, 496,424z" />
|
546 |
+
<glyph unicode="" d="M 480.080,376l-240,0 l-48,48l-160,0 c-17.672,0-32-14.328-32-32l0-80 l-0.152,0 l0-32 l 0.152,0 l0-224
|
547 |
c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512.080,344 C 512.080,361.672, 497.752,376, 480.080,376z M 32.072,392l 145.376,0 l 39.312-38.624L 226.816,344L 480.080,344
|
548 |
l0-32 l-448,0 L 32.080,392 z M 32.072,56L 32.072,280 l 448,0 l0-224 L 32.072,56 z" />
|
549 |
+
<glyph unicode="" d="M 400,343.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,351.024, 391.168,343.856, 400,343.856z
|
550 |
M 400,247.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,255.024, 391.168,247.856, 400,247.856z
|
551 |
M 400,151.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,159.024, 391.168,151.856, 400,151.856z
|
552 |
M 400,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 384,63.024, 391.168,55.856, 400,55.856z
|
556 |
M 80,55.856l 32,0 c 8.832,0, 16,7.168, 16,16l0,16 c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16l0-16 C 64,63.024, 71.168,55.856, 80,55.856z M 480,472.048
|
557 |
L 32,472.048 c-17.592,0-32-14.408-32-32l0-432.096 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512,440.048 C 512,457.64, 497.592,472.048, 480,472.048z M 480,7.952L 32,7.952
|
558 |
L 32,440.048 l 448,0 L 480,7.952 z" />
|
559 |
+
<glyph unicode="" d="M 50.936,314.872c-9.064,0-16.384-7.328-16.384-16.384c0-9.048, 7.32-16.384, 16.384-16.384c 151.504,0, 262.672-112.184, 262.672-263.68
|
560 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 346.376,188.608, 221.112,314.872, 50.936,314.872z M 51.080,478.688
|
561 |
c-9.056,0-16.384-7.328-16.384-16.384c0-9.056, 7.328-16.384, 16.384-16.384c 235.088,0, 426.336-191.248, 426.336-426.328
|
562 |
c0-9.048, 7.328-16.376, 16.384-16.376s 16.384,7.328, 16.384,16.376C 510.176,272.736, 304.224,478.688, 51.080,478.688z M 92.008,150.2
|
563 |
c-49.736,0-90.184-40.56-90.184-90.44c0-49.856, 40.456-90.456, 90.184-90.456s 90.2,40.592, 90.2,90.456
|
564 |
C 182.208,109.64, 141.744,150.2, 92.008,150.2z M 92.008,0.984c-32.304,0-58.584,26.376-58.584,58.784s 26.28,58.768, 58.584,58.768
|
565 |
c 32.312,0, 58.608-26.36, 58.608-58.768S 124.32,0.984, 92.008,0.984z" />
|
566 |
+
<glyph unicode="" d="M 511.92,193.728c 0.048,10.528-1.608,50.248-2.872,61.608
|
567 |
C 494.488,385.712, 388.672,480.336, 257.456,480.336c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16
|
568 |
c-0.656-2.96-1.056-6.016-1.056-9.168l0-107.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,181.504
|
569 |
c0,23.44-19.080,42.504-42.512,42.504L 42.576,224.008 c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.288, 0.512,10.528
|
575 |
c0-5.8-4.72-10.504-10.512-10.504L 42.576,63.672 c-5.8,0-10.504,4.704-10.504,10.504L 32.072,181.504 C 32.080,187.304, 36.784,192.008, 42.576,192.008z
|
576 |
M 416.264,181.504c0,5.8, 4.704,10.504, 10.504,10.504l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504l0-106.832 c0-5.8-4.72-10.504-10.512-10.504
|
577 |
l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,181.504 z" />
|
578 |
+
<glyph unicode="" d="M 511.92,177.72c 0.048,10.528-1.608,50.248-2.872,61.608C 494.488,369.704, 388.672,464.328, 257.456,464.328
|
579 |
c-136.672,0-247.408-105.312-254.92-244.952c-0.16-3.048-1.28-24.672-1.36-37.544l-0.040-7.16c-0.656-2.96-1.056-6.016-1.056-9.168
|
580 |
l0-139.328 c0-23.44, 19.064-42.504, 42.504-42.504l 43.144,0 c 23.44,0, 42.512,19.064, 42.512,42.504L 128.24,165.496 c0,23.44-19.080,42.504-42.512,42.504L 42.568,208
|
581 |
c-2.944,0-5.816-0.304-8.592-0.872c 0.24,5.192, 0.456,9.296, 0.512,10.528C 41.080,340.048, 138.056,432.328, 257.456,432.328
|
585 |
l0-139.328 c0-5.808-4.72-10.504-10.512-10.504L 42.568,15.664 c-5.8,0-10.504,4.704-10.504,10.504L 32.064,165.496 C 32.080,171.296, 36.784,176, 42.568,176z
|
586 |
M 479.92,26.672c0-5.8-4.72-10.504-10.512-10.504l-42.64,0 c-5.8,0-10.504,4.704-10.504,10.504L 416.264,165.496 c0,5.8, 4.704,10.504, 10.504,10.504
|
587 |
l 42.64,0 c 5.8,0, 10.512-4.704, 10.512-10.504L 479.92,26.672 z" />
|
588 |
+
<glyph unicode="" d="M 255.2-31.352c-96.656,0-175.296,77.56-175.296,172.888c0,111.344, 155.816,322.424, 162.456,331.36
|
589 |
c 3,4.032, 7.704,6.424, 12.736,6.456c 5.592,0.048, 9.784-2.296, 12.832-6.28c 6.704-8.768, 164.168-216.112, 164.168-331.528
|
590 |
C 432.096,46.208, 352.736-31.352, 255.2-31.352z M 255.376,436.152c-37.2-52.832-143.472-211.032-143.472-294.608
|
591 |
c0-77.688, 64.28-140.888, 143.296-140.888c 79.888,0, 144.888,63.2, 144.888,140.888C 400.096,228.224, 293.016,384.056, 255.376,436.152z" />
|
592 |
+
<glyph unicode="" d="M 511.488,225.008L 452.736,428.552c-1.92,6.936-8.232,11.736-15.424,11.736L 69.64,440.288 c-7.248,0-13.592-4.872-15.472-11.888L 0.472,235.224
|
593 |
c-0.992-3.752-0.504-7.504, 1-10.768C 0.608,221.56,0,218.544,0,215.368l0-175.656 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32L 512,215.368
|
594 |
c0,0.856-0.184,1.664-0.248,2.504C 512.168,220.168, 512.16,222.592, 511.488,225.008z M 81.952,408.288l 343.184,0 l 46.56-160.92L 322.528,247.368
|
595 |
c-0.72-38.408-27.952-64.84-66.528-64.84s-65.312,26.44-66.032,64.84L 37.080,247.368 L 81.952,408.288z M 480,39.712L 32,39.712 L 32,215.368 l 131.56,0
|
596 |
c 13.968-40.216, 47.888-64.84, 92.44-64.84s 78.968,24.624, 92.936,64.84L 480,215.368 L 480,39.712 z" />
|
597 |
+
<glyph unicode="" d="M 384,480L 208,480 c-17.672,0-32-14.328-32-32l 176,0 l0-128 l 128,0 l0-256 L 368,64 l0-32 l 112,0 c 17.672,0, 32,14.328, 32,32L 512,351.992 L 384,480z M 384,352L 384,434.752 L 466.736,352L 384,352 z M 32,416
|
598 |
c-17.672,0-32-14.328-32-32l0-384 c0-17.672, 14.328-32, 32-32l 272,0 c 17.672,0, 32,14.328, 32,32L 336,287.992 L 208,416L 32,416 z M 304,0L 32,0 L 32,384 l 144,0 l0-128 l 128,0 L 304,0 z M 208,288L 208,370.752
|
599 |
L 290.736,288L 208,288 z" />
|
600 |
+
<glyph unicode="" d="M 508.528,386.968L 458.68,442.64c-3.032,3.424-7.392,5.376-11.968,5.376L 271.584,448.016 L 271.584,465 c0,8.28-7.168,15-16,15
|
601 |
c-8.832,0-16-6.72-16-15l0-16.984 L 111.68,448.016 c-8.84,0-16-7.16-16-16l0-111.832 c0-8.84, 7.16-16, 16-16l 127.904,0 l0-32.048 L 65.288,272.136
|
602 |
c-4.576,0-8.936-1.952-11.968-5.376l-49.84-56.656c-5.376-6.064-5.376-15.184,0-21.248l 49.84-56.144c 3.056-3.424, 7.392-4.872, 11.968-4.872
|
603 |
l 174.296,0 l0-144.84 c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 271.584,127.84 l 128.232,0 c 8.84,0, 16,7.16, 16,16L 415.816,256.144 c0,8.84-7.16,16-16,16
|
604 |
L 271.584,272.144 l0,32.048 l 175.128,0 c 4.576,0, 8.936,1.952, 11.968,5.376l 49.848,56.16C 513.896,371.784, 513.896,380.904, 508.528,386.968z M 383.824,159.84
|
605 |
L 72.48,159.84 l-35.64,39.64l 35.64,40.656l 311.344,0 L 383.824,159.84 z M 439.52,336.184L 127.68,336.184 L 127.68,416.016 l 311.84,0 l 35.64-39.672L 439.52,336.184z" />
|
606 |
+
<glyph unicode="" d="M 483.456,330.92l-89.56,96C 390.856,430.16, 386.624,432, 382.184,432L 248.624,432 l-0.504,33c0,8.28-7.168,15-16,15
|
607 |
c-8.832,0-15-6.72-15-15L 216.632,432L 40.248,432 c-8.84,0-16-7.16-16-16l0-192 c0-8.84, 7.16-16, 16-16l 176.168,0 l0-225
|
608 |
c0-8.28, 7.168-15, 16-15c 8.832,0, 16,6.72, 16,15L 248.416,208 l 133.768,0 c 4.44,0, 8.672,1.84, 11.704,5.080l 89.56,96
|
609 |
C 489.184,315.232, 489.184,324.768, 483.456,330.92z M 375.232,240L 56.248,240 L 56.248,400 l 318.984,0 l 74.64-80L 375.232,240z" />
|
610 |
+
<glyph unicode="" d="M 509.36,332.264L 439.424,465.984C 435.344,473.784, 424.792,480.16, 416,480.16L 255.032,480.16 c-0.176,0.008-0.352,0.056-0.528,0.064
|
611 |
c-0.144,0-0.28-0.056-0.424-0.064L 96,480.16 c-8.8,0-19.376-6.36-23.512-14.128L 2.736,334.888c-4.144-7.768-3.312-19.968, 1.816-27.128
|
612 |
L 244.56-26.816c 2.576-3.592, 6-5.408, 9.416-5.408c 3.392,0, 6.792,1.768, 9.384,5.296L 507.312,305.2
|
613 |
C 512.504,312.296, 513.44,324.472, 509.36,332.264z M 471.184,336.184L 385.456,336.184 l 34.328,98.304L 471.184,336.184z M 287.672,448.16l 102.984,0 l-31.944-91.464
|
614 |
L 287.672,448.16z M 334.12,336.184L 185.296,336.184 l 70.336,101.048L 334.12,336.184z M 156.944,351.456L 124.856,448.16l 99.408,0 L 156.944,351.456z
|
615 |
M 340.376,304.184L 254.36,57.912L 172.632,304.184L 340.376,304.184 z M 218.464,64.456L 46.496,304.184l 92.416,0 L 218.464,64.456z M 374.272,304.184l 92.584,0
|
616 |
L 290.368,63.904L 374.272,304.184z M 94.24,438.792l 34.048-102.608L 39.664,336.184 L 94.24,438.792z" />
|
617 |
+
<glyph unicode="" d="M 416.28,272.104c-4.168,0-17.6,0.080-32.152,0.184l 0.056,31.984c0,17.672-14.328,32-32,32
|
618 |
l-320.248,0.080c-17.672,0-32-14.328-32-32l0-240.472 c0-53.016, 42.984-96, 96-96l 192.328,0 c 53.016,0, 95.504,42.984, 95.504,96l 0.032,16.424
|
619 |
c 14.512-0.112, 29.304-0.2, 32.488-0.2c 52.888,0, 95.784,42.52, 95.784,95.536C 512.064,228.664, 469.168,272.104, 416.28,272.104z
|
620 |
M 351.768,63.88c0-35.296-28.2-64-63.504-64L 95.936-0.12 c-35.296,0-64,28.704-64,64L 31.888,304.352l 0.048,0 l 320.248-0.096L 351.768,63.88z
|
623 |
s-16-7.168-16-16l0-80 C 271.936,375.28, 279.104,368.12, 287.936,368.12z M 95.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
624 |
s-16-7.168-16-16l0-80 C 79.936,375.28, 87.104,368.12, 95.936,368.12z M 191.936,368.12c 8.832,0, 16,7.168, 16,16l0,80 c0,8.832-7.168,16-16,16
|
625 |
s-16-7.168-16-16l0-80 C 175.936,375.28, 183.104,368.12, 191.936,368.12z" />
|
626 |
+
<glyph unicode="" d="M 366.592,339.864l-156.576-67.32c-2.832-1.44-5.128-3.736-6.576-6.576L 131.712,121.36
|
627 |
c-2.936-5.768-1.872-12.768, 2.656-17.392c 2.904-2.952, 6.816-4.512, 10.768-4.512c 2.216,0, 4.472,0.488, 6.56,1.504l 152.864,63.488
|
628 |
c 2.8,1.344, 5.112,3.528, 6.608,6.248l 75.44,148.448c 3.216,5.8, 2.264,13.016-2.328,17.784C 379.672,341.696, 372.488,342.864, 366.592,339.864
|
629 |
z M 178.928,147.592l 43.504,88.84l 43.936-54.992L 178.928,147.592z M 292.352,200.192l-44.4,55.576l 88.392,34.88L 292.352,200.192z M 256,480
|
630 |
C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
631 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
632 |
+
<glyph unicode="" d="M 500.176,94.192c-7.832,5.504-93.528,62.488-104.032,68.904
|
633 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
634 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
635 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
646 |
l-5.848-0.136c-0.112,0-0.2-0.048-0.328-0.064L 379.384,480.112c-6.464-0.144-11.808-5.488-11.96-11.96l-0.016-8.208
|
647 |
c 0.984-7.616, 6.968-12.080, 13.44-11.936l 75.624-0.2L 319.328,311.496c-6.248-6.248-6.248-16.384,0-22.632
|
648 |
C 325.576,282.624, 335.704,282.624, 341.952,288.864z" />
|
649 |
+
<glyph unicode="" d="M 500.176,94.192c-7.832,5.504-93.528,62.488-104.032,68.904
|
650 |
c-4.576,2.8-10.16,4.168-16.232,4.168c-7.832,0-16.504-2.28-24.968-6.736c-8.248-4.344-33.232-18.56-45.456-25.544
|
651 |
c-10.768,7.56-36.064,26.936-75.92,66.832c-39.608,39.592-59.16,65.096-66.768,75.92c 6.968,12.216, 21.168,37.2, 25.488,45.424
|
652 |
c 8.184,15.504, 9.112,30.984, 2.472,41.424c-6.232,9.84-62.984,95.904-68.84,104c-5.512,7.64-15.408,11.768-26.144,11.768
|
663 |
c 6.248,6.248, 6.248,16.384,0,22.632c-6.248,6.24-16.376,6.24-22.624,0L 350.84,342.744L 351.28,420.16c 0.144,6.464-4.984,12.096-11.448,11.944
|
664 |
l-8.208-0.008c-6.48-0.16-11.832-4.008-11.968-10.472l-0.328-115.504c0-0.112, 0.44-0.192, 0.44-0.304l-0.64-5.856
|
665 |
C 319.064,296.712, 319.824,293.824, 321.92,291.744z" />
|
666 |
+
<glyph unicode="" d="M 480.848,380.224c0-0.528-0.048-0.968-0.112-1.312c-13.080-9-86.216-57.312-99.888-66.080c-1.44-0.032-5.096,0.456-10.312,3.2
|
667 |
c-5.56,2.92-21.768,12.016-44.44,24.952l-17.64,10.064l-16.624-11.672c-12.36-8.704-39.232-29.408-80.144-70.312
|
668 |
c-41.088-41.080-61.728-67.856-70.384-80.168l-11.672-16.624l 10.080-17.64c 9.768-17.096, 21.472-37.752, 25-44.472
|
669 |
c 2.84-5.392, 3.064-9.080, 3.064-10.080c0-0.16,0-0.296-0.016-0.408c-7.68-12.248-57.296-86.968-66.336-100.16
|
675 |
c-4.344,8.248-18.56,33.232-25.544,45.456c 7.56,10.768, 26.936,36.064, 66.832,75.92c 39.592,39.608, 65.096,59.16, 75.92,66.768
|
676 |
c 12.216-6.968, 37.2-21.168, 45.424-25.488c 15.504-8.184, 30.984-9.112, 41.424-2.472c 9.84,6.232, 94.904,62.984, 103,68.84
|
677 |
C 507.728,359.6, 511.848,369.496, 511.848,380.224L 511.848,380.224z" />
|
678 |
+
<glyph unicode="" d="M 480,480.048L 32,480.048 c-17.592,0-32-14.408-32-32l0-448.096 c0-17.592, 14.408-32, 32-32l 448,0
|
679 |
c 17.592,0, 32,14.408, 32,32L 512,448.048 C 512,465.64, 497.592,480.048, 480,480.048z M 480-0.048L 32-0.048 L 32,448.048 l 448,0 L 480-0.048 z M 112,303.848l 32,0 l0-32 c0-8.832, 7.168-16, 16-16
|
680 |
s 16,7.168, 16,16l0,32 l 32,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16l-32,0 l0,32 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-32 l-32,0 c-8.832,0-16-7.168-16-16
|
681 |
S 103.168,303.848, 112,303.848z M 216.568,184.424c-6.248,6.248-16.376,6.248-22.624,0L 160,150.488l-33.944,33.936
|
684 |
l-33.936,33.936l 33.936,33.936C 222.816,168.040, 222.816,178.168, 216.568,184.424z M 304,303.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,335.848
|
685 |
c-8.832,0-16-7.168-16-16S 295.168,303.848, 304,303.848z M 304,143.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,175.848 c-8.832,0-16-7.168-16-16
|
686 |
S 295.168,143.848, 304,143.848z M 304,79.848l 96,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 304,111.848 c-8.832,0-16-7.168-16-16S 295.168,79.848, 304,79.848z" />
|
687 |
+
<glyph unicode="" d="M 212.408,140.328c 115.472,0, 204.952,65.952, 203.576,163.816c0,86.592-91.608,155.816-207.080,155.816
|
688 |
c-115.488,0-209.080-69.224-209.080-155.816c0-53.936, 26.456-111.44, 81.704-139.688c0-0.328-0.096-0.576-0.096-0.936
|
689 |
c0-23.44-19.512-55.576-27.2-68.832l 0.032,0 c-0.608-1.44-0.976-3-0.976-4.672c0-6.56, 5.288-11.832, 11.848-11.832
|
690 |
c 0.968,0, 2.544,0.2, 3.112,0.2c 0.16,0, 0.216,0, 0.2-0.048c 40.832,6.672, 101.128,52.624, 110.064,63.512
|
699 |
c 7.744-9.392, 51.112-50.752, 86.408-56.504c-0.016,0.032, 0.032,0.032, 0.184,0.032c 0.472,0, 1.84-0.168, 2.672-0.168
|
700 |
c 5.672,0, 10.248,4.56, 10.248,10.232c0,1.44-0.328,2.8-0.84,4.032l 0.032,0 c-6.64,11.44-17.064,44.872-17.064,65.128
|
701 |
c0,0.312-0.096,0.528-0.096,0.816C 490.048,92.672, 512.168,128.296, 512.168,174.904z" />
|
702 |
+
<glyph unicode="" d="M 480.008,384.264L 352.208,384.264 L 352.208,415.264 c0,26.472-21.528,48-48,48L 207.992,463.264 c-26.472,0-48-21.528-48-48l0-31 L 32.008,384.264 c-17.592,0-32-14.408-32-32l0-112.128
|
703 |
l-0.016,0 l0-32 l 0.016,0 l0-191.408 c0-17.592, 14.408-32, 32-32l 448,0 c 17.592,0, 32,14.408, 32,32L 512.008,352.264 C 512.008,369.856, 497.6,384.264, 480.008,384.264z
|
704 |
M 191.992,415.264c0,8.832, 7.168,16, 16,16l 96.216,0 c 8.832,0, 16-7.168, 16-16l0-31 L 191.992,384.264 L 191.992,415.264 z M 32.008,352.264l 448,0 l0-112.128 L 303.824,240.136 l0,16.376
|
705 |
c0,17.64-14.36,32-32,32l-31.872,0 c-17.64,0-32-14.36-32-32l0-16.376 L 32.008,240.136 L 32.008,352.264 z M 271.848,175.936l-31.904,0 L 239.944,256.512 l 31.872,0 L 271.848,175.936z
|
706 |
M 32.008,16.736L 32.008,208.144 l 175.936,0 l0-32.2 c0-17.64, 14.36-32, 32-32l 31.872,0 c 17.64,0, 32,14.36, 32,32l0,32.2 l 176.184,0 l0-191.408 L 32.008,16.736 z" />
|
707 |
+
<glyph unicode="" d="M 476.040,479.224L 264.52,421.928c-5.376-1.44-17.048-1.424-22.408,0.080L 36.040,479.112
|
708 |
C 17.648,484.176-0.168,470.912-0.168,451.976l0-389.056 c0-16.048, 12.168-31.392, 27.656-35.704l 206.080-57.112c 5.512-1.528, 12.608-2.376, 19.968-2.376
|
709 |
c 5.048,0, 12.504,0.392, 19.36,2.264l 211.512,57.296c 15.528,4.2, 27.752,19.512, 27.752,35.624L 512.16,451.976 C 512.168,470.896, 494.352,484.208, 476.040,479.224
|
710 |
z M 240,1.528L 35.536,58.056c-1.544,0.424-3.704,3.248-3.704,4.856L 31.832,446.928 l 201.736-55.768c 1.952-0.544, 4.144-0.968, 6.432-1.328L 240,1.528 z
|
721 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,221.016, 205.832,229.848, 197.312,232.256z M 197.312,136.256l-111.968,31.512
|
722 |
c-8.456,2.36-17.344-2.576-19.736-11.080s 2.56-17.328, 11.080-19.736l 111.968-31.512c 1.44-0.408, 2.904-0.592, 4.344-0.592
|
723 |
c 6.984,0, 13.408,4.608, 15.392,11.672C 210.784,125.024, 205.832,133.848, 197.312,136.256z" />
|
724 |
+
<glyph unicode="" d="M 507.832,338c-2.984,4.232-7.832,6.752-13,6.752L 444.96,344.752 L 342.392,432.168c-12.488,12.488-32.76,12.504-45.248,0L 196.32,344.752
|
725 |
l-41.048,0 l-25.704,88.64c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
726 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
727 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 319.768,409.536l 76.016-64.792L 243.728,344.744 L 319.768,409.536z M 407.512,119.904L 214.768,119.904
|
728 |
l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z
|
729 |
M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
730 |
+
<glyph unicode="" d="M 507.832,338c-2.984,4.232-7.832,6.752-13,6.752L 155.264,344.752 l-25.704,88.64
|
731 |
c-10.080,34.904-34.032,38.672-43.856,38.672L 17.168,472.064 c-8.784,0-15.888-7.112-15.888-15.888s 7.112-15.888, 15.888-15.888l 68.528,0
|
732 |
c 2.168,0, 8.784,0, 13.296-15.592l 88.424-324.968c 1.92-6.856, 8.168-11.592, 15.296-11.592l 215.984,0 c 6.704,0, 12.688,4.2, 14.952,10.512
|
733 |
l 76.128,224.84C 511.528,328.36, 510.8,333.784, 507.832,338z M 407.512,119.904L 214.768,119.904 l-50.576,193.064l 308.048,0 L 407.512,119.904z M 376,55.936
|
734 |
c-22.096,0-40-17.904-40-40s 17.904-40, 40-40s 40,17.904, 40,40S 398.096,55.936, 376,55.936z M 232,55.936c-22.096,0-40-17.904-40-40s 17.904-40, 40-40
|
735 |
s 40,17.904, 40,40S 254.096,55.936, 232,55.936z" />
|
736 |
+
<glyph unicode="" d="M 432,400.648L 336.408,400.648 L 336.408,431.336 c0,26.472-21.528,48-48,48l-63.816,0 c-26.472,0-48-21.528-48-48l0-30.688 L 80,400.648 c-17.672,0-32-14.328-32-32l0-367.984
|
737 |
c0-17.672, 14.328-32, 32-32l 352,0 c 17.672,0, 32,14.328, 32,32L 464,368.648 C 464,386.32, 449.672,400.648, 432,400.648z M 208.592,431.336c0,8.832, 7.168,16, 16,16l 63.816,0
|
738 |
c 8.832,0, 16-7.168, 16-16l0-30.688 L 208.592,400.648 L 208.592,431.336 z M 432,0.664L 80,0.664 L 80,368.648 l 96.592,0 l0-32.92 c0,0-0.424-15.984, 15.904-15.984
|
739 |
c 18,0, 16.096,15.984, 16.096,15.984l0,32.92 l 95.816,0 l0-32.92 c0,0-1.064-16.064, 15.936-16.064c 16,0, 16.064,16.064, 16.064,16.064l0,32.92 L 432,368.648 L 432,0.664 z
|
740 |
" />
|
741 |
+
<glyph unicode="" d="M 495.032,8.832c-0.168,0-0.36,0-0.544,0.016c-8.096,0.264-13.2,6.544-13.888,14.608c-0.544,5.936-16.984,149.544-241.128,149.392
|
742 |
l0-91.832 c0-6.184-3.56-11.832-9.168-14.472c-5.544-2.656-12.216-1.84-16.984,2.112L 5.832,240.544c-3.72,3.048-5.856,7.592-5.84,12.392
|
743 |
s 2.168,9.344, 5.888,12.376L 213.36,435.592c 4.784,3.904, 11.392,4.656, 16.968,2.048c 5.576-2.656, 9.144-8.28, 9.144-14.456l0-89.816
|
744 |
c 92.984-2.952, 165.496-32.856, 212.168-87.488c 75.968-88.888, 59.016-218.080, 58.216-223.456C 508.672,14.592, 502.92,8.832, 495.032,8.832z
|
745 |
M 223.472,205.096c 0.016,0, 0.032,0, 0.032,0c 160.112-0.096, 221.296-54.16, 256.232-101.904c-5.112,38.248-20.032,84.36-52.504,122.016
|
746 |
c-43.168,50.048-112.72,76.424-203.768,76.424c-8.84,0-16,7.16-16,16l0,71.888 L 41.248,252.84l 166.216-137.952l0,74.2
|
747 |
c0,4.248, 1.688,8.328, 4.704,11.328C 215.168,203.408, 219.232,205.096, 223.472,205.096z" />
|
748 |
+
<glyph unicode="" d="M 16.968,8.832c 0.168,0, 0.36,0, 0.544,0.016c 8.096,0.264, 13.2,6.544, 13.888,14.608c 0.544,5.936, 16.488,149.544, 240.624,149.392
|
749 |
l 0.504-91.832c0-6.184, 3.56-11.832, 9.168-14.472c 5.544-2.656, 12.216-1.84, 16.984,2.112l 207.488,171.888
|
750 |
c 3.72,3.048, 5.856,7.592, 5.84,12.392s-2.168,9.344-5.888,12.376L 298.64,435.592c-4.784,3.904-11.392,4.656-16.968,2.048
|
751 |
c-5.576-2.656-9.144-8.28-9.144-14.456l-0.504-89.816C 179.048,330.424, 107.040,300.512, 60.36,245.888
|
753 |
C 128.392,205, 67.2,150.936, 32.264,103.184c 5.112,38.248, 20.032,84.36, 52.504,122.016c 43.168,50.048, 112.72,76.424, 203.768,76.424
|
754 |
c 8.84,0, 16,7.16, 16,16l0,71.888 l 166.216-136.672L 304.528,114.888l0,74.2 c0,4.248-1.688,8.328-4.704,11.328
|
755 |
C 296.832,203.408, 292.768,205.096, 288.528,205.096z" />
|
756 |
+
<glyph unicode="" d="M 503.184,372.032c-5.392,2.488-11.792,1.544-16.28-2.424l-80.656-72.448l-72.816,74.704l 72.096,83.264
|
757 |
c 3.92,4.528, 4.872,10.768, 2.432,16.256s-7.832,8.848-13.76,8.848l-4.344,0 c-44.56,0-121.488-3.832-155.832-38.672l-6.928-6.88
|
758 |
c-36.64-37.384-43.144-98.688-23.84-145.288L 18.616,100.944c-24.896-25.24-24.896-66.16,0-91.408l 22.536-22.848
|
759 |
C 53.6-25.928, 69.92-32.24, 86.24-32.24c 16.312,0, 32.632,6.312, 45.072,18.928l 187.36,188.864c 17.72-9.576, 42-15.832, 62.392-15.832
|
764 |
c-7.712,31.192-3.216,74.304, 21.008,99.024l 6.896,6.96c 20.776,21.080, 74.728,27.312, 104.6,29.152l-58.68-67.768
|
765 |
c-5.248-6.064-4.984-15.2, 0.608-20.936L 394.72,265.28c 5.624-5.792, 14.72-6.128, 20.776-0.76l 65.304,58.816
|
766 |
C 478.856,291.656, 472.704,245.648, 452.832,225.496z" />
|
767 |
+
<glyph unicode="" d="M 512.16,225.208c0-8.832-7.144-15.992-15.984-15.992L 271.736,209.216 L 271.736,47.12
|
768 |
c0-43.576-35.456-79.040-79.048-79.040c-43.592,0-79.056,35.464-79.056,79.040c0,8.832, 7.16,15.992, 15.992,15.992s 15.992-7.16, 15.992-15.992
|
769 |
c0-25.952, 21.112-47.064, 47.080-47.064c 25.96,0, 47.080,21.112, 47.080,47.064L 239.776,209.216 L 15.832,209.216 c-8.832,0-15.992,7.168-15.992,15.992
|
770 |
c0,123.648, 90.456,202.056, 239.928,207.24L 239.768,463.936 c0,8.832, 7.16,15.984, 15.992,15.984c 8.84,0, 15.984-7.16, 15.984-15.984l0-31.488
|
771 |
C 421.248,427.272, 512.16,348.856, 512.16,225.208z M 479.576,241.192C 471.688,341.456, 390.128,400.752, 255.752,400.752
|
772 |
c-134.376,0-215.448-59.296-223.328-159.552L 479.576,241.2 z" />
|
773 |
+
<glyph unicode="" d="M 448.4,400.488L 335.76,400.488 L 335.76,444.12 c0,20.264-16.504,36.248-36.768,36.248L 213,480.368 c-20.264,0-36.76-15.984-36.76-36.248l0-43.632 L 63.6,400.488
|
774 |
c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 22.008,0 l 37.12-369.96c 1.552-17.312, 16.304-30.888, 33.568-30.888l 199.4,0 c 17.264,0, 32,13.576, 33.544,30.736
|
775 |
l 37.152,370.12l 22.008,0 c 8.84,0, 16,7.168, 16,16S 457.24,400.488, 448.4,400.488z M 208.24,444.12c0,2.616, 2.136,4.752, 4.76,4.752l 85.992,0
|
776 |
c 2.624,0, 4.768-2.136, 4.768-4.752l0-43.632 L 208.24,400.488 L 208.24,444.12 z M 357.384,1.4c-0.080-0.888-1.128-1.768-1.688-1.768L 156.296-0.368
|
777 |
c-0.56,0-1.616,0.872-1.712,1.92l-36.816,366.928l 276.456,0 L 357.384,1.4z" />
|
778 |
+
<glyph unicode="" d="M 511.992,271.864L 511.992,441.048 C 511.992,462.52, 494.52,480, 473.056,480L 307.464,479.976L 300.368,480
|
779 |
c-10.84,0-27.248,0-37.96-10.72L 9.44,216.304C 3.36,210.224,0,202.152,0,193.56c0-8.608, 3.344-16.688, 9.424-22.768l 193.4-193.36
|
780 |
C 208.88-28.656, 216.96-32, 225.552-32s 16.68,3.344, 22.744,9.424l 252.976,252.984C 512.12,241.232, 512.056,256.816, 511.992,271.864z
|
781 |
M 478.648,253.032L 225.44,0.064L 32.064,193.672L 284.76,446.424C 287.304,448, 296.464,448, 300.256,448l 7.2-0.024L 473.056,448
|
782 |
c 3.832,0, 6.936-3.12, 6.936-6.952l0-169.312 C 480.024,265.648, 480.056,255.464, 478.648,253.032z M 384.008,416c-35.344,0-64-28.656-64-64s 28.656-64, 64-64
|
783 |
s 64,28.656, 64,64S 419.352,416, 384.008,416z M 384.008,320c-17.672,0-32,14.328-32,32s 14.328,32, 32,32s 32-14.328, 32-32S 401.68,320, 384.008,320z" />
|
784 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224s 114.616-256, 256-256s 256,114.616, 256,256S 397.384,480, 256,480z
|
785 |
M 320,438.512c 72.112-21.496, 128.824-78.4, 150.352-150.512L 366.568,288 c-11.208,19.264-27.296,35.336-46.568,46.528L 320,438.512 z M 351.816,223.896
|
786 |
c0-52.968-42.896-95.904-95.816-95.904s-95.816,42.936-95.816,95.904S 203.088,319.808, 256,319.808S 351.816,276.864, 351.816,223.896z
|
787 |
M 224,445.536c 10.456,1.496, 21.128,2.312, 32,2.312c 10.864,0, 21.544-0.816, 32-2.312l0-97.904 c-10.24,2.648-20.928,4.2-32,4.2
|
792 |
C 234.248,97.552, 244.928,96, 256,96s 21.76,1.552, 32,4.2L 288,2.312 z M 320,9.336L 320,113.304 c 19.328,11.224, 35.448,27.368, 46.656,46.696l 103.736,0
|
793 |
C 448.896,87.832, 392.16,30.84, 320,9.336z M 379.752,192c 2.624,10.2, 4.080,20.88, 4.080,31.912c0,11.096-1.464,21.832-4.128,32.088l 97.704,0
|
794 |
c 1.504-10.496, 2.44-21.168, 2.44-32.080c0-10.848-0.92-21.488-2.416-31.92L 379.752,192 z" />
|
795 |
+
<glyph unicode="" d="M 342.952,288.408L 480.584,425.192l-0.448-77.536c-0.144-6.464, 4.984-12.088, 11.456-11.944
|
796 |
l 8.208,0.008c 6.472,0.152, 11.824,4, 11.96,10.464l 0.336,115.504c0,0.112-0.44,0.2-0.44,0.312l 0.632,5.856
|
797 |
c 0.064,3.248-0.696,6.144-2.792,8.216c-2.072,2.088-4.976,3.36-8.2,3.272l-5.848-0.136c-0.112,0-0.2-0.040-0.32-0.056
|
798 |
L 380.384,479.656c-6.464-0.144-11.816-5.488-11.96-11.96l-0.016-8.208c 0.984-7.624, 6.976-12.080, 13.44-11.936l 75.624-0.2L 320.328,311.040
|
810 |
C 7.472,479.432, 4.552,478.16, 2.496,476.072C 0.392,474-0.368,471.104-0.296,467.856L 0.336,462c0-0.112-0.44-0.192-0.44-0.312
|
811 |
l 0.336-115.504c 0.144-6.464, 5.488-10.312, 11.96-10.464l 8.712-0.008c 6.464-0.144, 11.592,5.48, 11.448,11.944L 31.912,424.768l 137.632-136.36
|
812 |
c 6.24-6.248, 16.376-6.248, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 55.024,447.336z" />
|
813 |
+
<glyph unicode="" d="M 191.6,306.6L 191.264,422.104c-0.144,6.464-5.496,10.312-11.96,10.464l-8.208,0.008
|
814 |
c-6.472,0.144-11.592-5.488-11.456-11.944l 0.448-77.624L 26.952,474.872c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624
|
815 |
l 132.56-131.304l-75.544-0.2c-6.464,0.144-12.456-4.32-13.44-11.936l 0.016-8.208c 0.16-6.472, 5.504-11.824, 11.96-11.968l 114.752,0.504
|
816 |
c 0.128-0.008, 0.208-0.056, 0.32-0.056l 5.848-0.136c 3.224-0.088, 6.136,1.176, 8.2,3.272c 2.104,2.072, 2.856,4.976, 2.792,8.216
|
828 |
c-3.224,0.088-6.144-2.176-8.2-4.272c-2.104-2.072-2.856-4.968-2.792-8.216l 0.632-5.848c0-0.12-0.44-0.192-0.44-0.304
|
829 |
l 0.336-115.504c 0.144-6.464, 5.488-10.304, 11.96-10.464l 8.712-0.016c 6.472-0.144, 11.592,5.488, 11.448,11.952l-0.44,77.264l 133.632-131.512
|
830 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 375.032,127.552z" />
|
831 |
+
<glyph unicode="" d="M 201.152,227.072l 19.632,27.624l-67.152,91.64L 1.368,346.336 l0-32 l 135.744,0 L 201.152,227.072z
|
832 |
M 459.392,314.336l-38.768-34.768c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
833 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
834 |
l-4.232,4.048c-0.080,0.080-0.168,0.112-0.272,0.184l-64.864,59.216c-4.68,4.472-12.232,4.472-16.92,0l-2.736-4.032
|
838 |
l-38.608-34.624c-4.672-4.472-6.184-11.72-1.512-16.184l 2.736-4.032c 4.688-4.472, 12.248-4.472, 16.912,0l 63.872,57.752
|
839 |
c 0.088,0.080, 0.192,0.096, 0.272,0.168l 4.232,4.048c 2.336,2.248, 3.504,5.184, 3.488,8.144c 0.016,2.936-1.152,5.888-3.488,8.112
|
840 |
L 502.904,53.616z" />
|
841 |
+
<glyph unicode="" d="M 450.92,5.312l-416,0 l0,320 l 128.8,0 l 32.36,31.168l-0.832,0.832L 34.92,357.312
|
842 |
c-17.672,0-32-14.328-32-32l0-320 c0-17.672, 14.328-32, 32-32l 416,0 c 17.672,0, 32,14.328, 32,32L 482.92,255.648 l-32-30.544L 450.92,5.312 z M 135.064,133.312l 32.24,0
|
843 |
c 22.432,127.248, 133.272,224, 266.944,224c 5.608,0, 10.928-0.048, 16.312-0.088l-58.624-58.616c-6.232-6.248-6.232-16.376,0-22.624
|
844 |
c 3.128-3.128, 7.232-4.688, 11.328-4.688s 8.168,1.56, 11.296,4.688l 94.512,97L 414.56,470c-6.232,6.248-16.36,6.248-22.624,0
|
845 |
c-6.232-6.248-6.232-16.376,0-22.624l 58.088-58.080c-5.016,0.008-9.984,0.024-15.104,0.024C 283.392,389.32, 158.136,278.344, 135.064,133.312z" />
|
846 |
+
<glyph unicode="" d="M 432,128c-26.344,0-49.648-12.792-64.216-32.44l-210.68,107.36
|
847 |
C 158.936,209.648, 160,216.688, 160,224c0,9.152-1.608,17.904-4.44,26.088L 367.44,352.896C 381.984,332.992, 405.448,320, 432,320
|
848 |
c 44.184,0, 80,35.824, 80,80c0,44.184-35.816,80-80,80S 352,444.184, 352,400c0-6.216, 0.784-12.232, 2.12-18.040L 139.2,277.672
|
849 |
C 124.56,293.808, 103.504,304, 80,304C 35.816,304,0,268.184,0,224c0-44.176, 35.816-80, 80-80c 25.448,0, 48.064,11.912, 62.712,30.432l 211.552-107.816
|
850 |
C 352.832,60.632, 352,54.424, 352,48c0-44.184, 35.816-80, 80-80s 80,35.816, 80,80S 476.184,128, 432,128z M 432,448c 26.504,0, 48-21.496, 48-48s-21.496-48-48-48
|
851 |
s-48,21.496-48,48S 405.496,448, 432,448z M 80,176c-26.512,0-48,21.496-48,48s 21.488,48, 48,48c 26.504,0, 48-21.496, 48-48S 106.504,176, 80,176z M 432,0
|
852 |
c-26.504,0-48,21.496-48,48s 21.496,48, 48,48s 48-21.496, 48-48S 458.504,0, 432,0z" />
|
853 |
+
<glyph unicode="" d="M 104.84,38.368c-10.056-20.904-16.4-34.832-72.344-36.864c 1.608,53.984, 11.896,59.776, 32.496,70.040
|
854 |
c 8.648,4.312, 19.416,9.672, 31.056,18.624L 76.568,115.040c-9.2-7.064-17.664-10.784-25.848-14.856c-34.32-17.112-50.496-33.968-50.496-114.328
|
855 |
l 0.272-16.352l 15.728,0.352c 84.816,0, 100.664,19.16, 116.552,52.16c 3.48,7.232, 5.416,12.12, 11.28,21.864l-23.728,21.552
|
856 |
C 113.216,55.728, 108.776,46.496, 104.84,38.368z M 352.48,385.672c-35.384,0-64.176-28.792-64.176-64.168c0-35.392, 28.8-64.176, 64.176-64.176
|
867 |
c-0.616,2.608-1.888,5.032-3.696,7.032c-29.424,32.608-73.872,81.904-77.28,85.816c-2.224,2.704-5.304,4.624-8.784,5.424l-73.296,16.768
|
868 |
l 35.952,38l 91.016,0 c 5.56,0, 10.728,2.888, 13.632,7.624c 7.040,11.464, 15.208,27.768, 24.672,46.648c 16.024,31.976, 35.96,74.272, 53.56,94.816
|
869 |
c 20.792,24.264, 41.912,39.504, 68.448,49.424c 59.048,22.064, 119.984,24.384, 147.84,24.176C 480.952,419.384, 479.84,350.976, 461,300.264z" />
|
870 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256.008,114.608, 256.008,256C 512.008,365.384, 397.392,480, 256,480z
|
871 |
M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224.008-100.488, 224.008-224S 379.512-0.504, 256-0.504z M 232.472,79.76l 40.256,0
|
872 |
l0,40.624 l-40.256,0 L 232.472,79.76 z M 255.528,368.232c-23.44,0-42.752-6.32-57.92-18.944c-15.168-12.632-22.544-37.928-22.168-58.888l 0.592-1.168l 36.72,0
|
873 |
c0,12.504, 4.168,30.472, 12.504,36.92c 8.328,6.44, 18.424,9.664, 30.28,9.664c 13.664,0, 24.168-3.712, 31.536-11.136
|
875 |
c-13.288-11.984-21.496-21.616-24.616-28.904c-3.128-7.296-4.752-20.384-4.872-39.256l 38.48,0 c0,11.84, 0.752,20.568, 2.248,26.168
|
876 |
c 1.488,5.592, 5.752,11.912, 12.784,18.944c 15.112,14.576, 27.248,28.832, 36.44,42.776c 9.168,13.928, 13.76,29.296, 13.76,46.096
|
877 |
c0,23.44-7.088,41.704-21.288,54.784C 301.104,361.696, 281.176,368.232, 255.528,368.232z" />
|
878 |
+
<glyph unicode="" d="M 287.8,433.296c-8.832,0-16-7.168-16-16s 7.168-16, 16-16C 401.024,401.296, 480,318.56, 480,205.344C 480,92.112, 387.888,0, 274.664,0
|
879 |
C 161.448,0, 78.704,81.8, 78.704,195.032c0,8.832-7.168,16-16,16s-16-7.168-16-16C 46.704,64.16, 143.8-32, 274.664-32S 512,74.472, 512,205.344
|
880 |
C 512,336.2, 418.664,433.296, 287.8,433.296z M 240.128,255.872L 240.128,464 c0,8.832-7.168,16-16,16C 99.504,480,0,380.496,0,255.872c0-8.832, 7.168-16, 16-16
|
881 |
l 208.128,0 C 232.96,239.872, 240.128,247.040, 240.128,255.872z M 208.128,271.872L 32.656,271.872 C 40.384,366.12, 113.88,439.616, 208.128,447.344L 208.128,271.872 z" />
|
882 |
+
<glyph unicode="" d="M 482.128,455.168c-17.432,16.704-36.664,25.168-57.192,25.168c-32.096,0-55.512-20.736-61.92-27.088
|
883 |
C 354,444.32, 46.44,136.648, 46.44,136.648c-2.008-2.016-3.472-4.536-4.224-7.296c-6.936-25.632-41.68-139.36-42.024-140.504
|
884 |
c-1.784-5.824-0.192-12.168, 4.104-16.464c 3.088-3.072, 7.2-4.72, 11.416-4.72c 1.656,0, 3.328,0.248, 4.96,0.784
|
885 |
c 1.176,0.384, 118.568,38.328, 137.888,44.096c 2.544,0.768, 4.872,2.144, 6.768,4.016c 12.208,12.064, 299.064,295.728, 318.104,315.392
|
891 |
c-5.056,13.024-13.928,29.76-29.288,45.248c-15.696,15.824-31.616,25.16-44.376,30.68c 1.088,1.080, 1.928,1.928, 2.256,2.248
|
892 |
c 1.832,1.808, 18.448,17.688, 39.16,17.688c 11.92,0, 23.624-5.44, 34.808-16.16c 13.256-12.712, 20.088-25.256, 20.312-37.296
|
893 |
C 480.264,381.856, 473.592,368.624, 460.208,354.816z" />
|
894 |
+
<glyph unicode="" d="M 399.672-0.144l-368,0 l0,400 l 224.8,0 l 32.352,31.168l-0.832,0.832L 31.672,431.856 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 368,0
|
895 |
c 17.672,0, 32,14.328, 32,32L 431.672,234.184 l-32-30.544L 399.672-0.144 z M 487.112,459.28c-14.44,13.84-30.376,20.856-47.376,20.856
|
896 |
c-26.608,0-46.016-17.184-51.296-22.448c-7.488-7.392-219.584-219.176-219.584-219.176c-1.664-1.696-2.88-3.768-3.504-6.072
|
897 |
c-5.744-21.224-34.536-115.496-34.824-116.432c-1.488-4.832-0.16-10.096, 3.4-13.608c 2.552-2.56, 5.96-3.92, 9.456-3.92
|
900 |
M 465.216,379.44c-8.904-9.184-78.624-78.080-207.224-204.768l-9.84-9.704c-14.744-4.56-50.048-15.904-76.736-24.512
|
901 |
c 8.592,28.376, 18.904,62.656, 23.504,78.872C 222.4,246.768, 404.112,428.2, 411.016,435.016c 1.344,1.344, 13.608,13.128, 28.72,13.128
|
902 |
c 8.576,0, 16.84-3.912, 25.232-11.96c 10.032-9.624, 15.2-18.872, 15.344-27.512C 480.472,399.776, 475.392,389.944, 465.216,379.44z" />
|
903 |
+
<glyph unicode="" d="M 495.864,127.296c 0.008,0.28, 0.080,0.536, 0.080,0.816L 495.944,461.624
|
904 |
c 0.192,1.752, 0.128,3.56-0.288,5.376c-1.368,7.456-7.864,13.112-15.712,13.112c-2.944,0-5.672-0.848-8.040-2.24L 172.968,400.048
|
905 |
c-5.384-1.336-9.376-5.36-11.016-10.336c-1.24-2.272-2-4.832-2-7.6L 159.952,95.84 c-15.232,10.192-34.704,16.328-55.936,16.328
|
906 |
c-48.768,0-88.32-32.304-88.32-72.136c0-39.84, 39.552-72.152, 88.32-72.152c 48.784,0, 88.304,32.304, 88.304,72.152
|
910 |
c 29.616,0, 51.2-16.696, 55.592-33.704l0-0.184 c0-1.616, 0.312-3.144, 0.76-4.608c 0.032-0.496, 0.112-0.984, 0.112-1.48
|
911 |
C 160.816,21.12, 137.616,0.024, 104.352,0.024z M 407.848,80.024c-32.984,0-55.976,21.088-55.976,40S 374.864,160, 407.848,160
|
912 |
c 32.976,0, 55.968-21.064, 55.968-39.976S 440.832,80.024, 407.848,80.024z" />
|
913 |
+
<glyph unicode="" d="M 426.304,318.352L 269.848,474.808c-4.96,4.96-12.336,5.92-18.304,3.008
|
914 |
c-6.272-2.168-10.8-8.056-10.8-15.064l0-354.2 c-16.96,12.56-39.216,20.264-63.688,20.264c-53.032,0-96.056-35.888-96.056-80.144
|
915 |
c0-44.272, 43.024-80.168, 96.056-80.168c 53.056,0, 96.040,35.888, 96.040,80.168c0,1.96-0.184,3.88-0.352,5.816L 272.744,426.656 L 403.68,295.728
|
916 |
c 6.24-6.248, 16.376-6.248, 22.624,0S 432.552,312.112, 426.304,318.352z M 176.688,0.712c-37.824,0-64.176,25.272-64.176,47.936
|
917 |
s 26.36,47.912, 64.176,47.912c 37.016,0, 63-24.2, 64.064-46.496l0-2.84 C 239.68,24.936, 213.704,0.712, 176.688,0.712z" />
|
918 |
+
<glyph unicode="" d="M 255.44,128l 3.8,0 C 303.72,128, 336,160.8, 336,205.984L 336,396.688 C 336,443.408, 302.28,480, 259.232,480
|
919 |
L 255.44,480 C 211.632,480, 176,442.624, 176,396.688l0-190.704 C 176,161.528, 210.152,128, 255.44,128z M 208,396.688C 208,424.984, 229.28,448, 255.44,448l 3.8,0
|
920 |
C 284.752,448, 304,425.936, 304,396.688l0-190.704 C 304,178.488, 286.016,160, 259.232,160L 255.44,160 C 227.504,160, 208,178.904, 208,205.984L 208,396.688 z M 400,304
|
921 |
c-8.84,0-16-7.168-16-16l0-66.536 C 384,126.264, 350.016,80, 280.128,80L 232.56,80 C 141.16,80, 128,156.92, 128,221.464L 128,288 c0,8.832-7.168,16-16,16
|
922 |
s-16-7.168-16-16l0-66.536 C 96,111.216, 141.944,48, 232.56,48L 240,48 l0-48 L 160,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 192,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16
|
923 |
L 272,0 l0,48 l 8.128,0 C 342.112,48, 416,78.096, 416,221.464L 416,288 C 416,296.832, 408.84,304, 400,304z" />
|
924 |
+
<glyph unicode="" d="M 480,429.080L 32,429.080 c-17.672,0-32-14.328-32-32l0-288 c0-17.68, 14.328-32, 32-32l 80,0
|
925 |
c 10.248,0, 16,13.16, 16,15.992l0,0.008 c0,2.912-5.44,16.208-16,16.208L 51.52,109.288 c-10.688,0-19.36,8.672-19.36,19.36L 32.16,377
|
926 |
c0,10.696, 8.664,19.36, 19.36,19.36l 409.136,0.504c 10.688,0, 19.36-8.664, 19.36-19.36l0-248.848 c0-10.688-8.672-19.36-19.36-19.36L 259.072,109.296
|
927 |
l 37.992,34.456c 4.672,4.472, 6.184,11.704, 1.512,16.168l-2.736,4.032c-4.688,4.472-12.248,4.472-16.92,0l-64.864-59.216
|
928 |
c-0.096-0.080-0.184-0.112-0.264-0.184l-4.24-4.048c-2.336-2.216-3.504-5.168-3.488-8.112c-0.016-2.952, 1.144-5.888, 3.488-8.144
|
929 |
l 4.24-4.048c 0.080-0.080, 0.184-0.096, 0.264-0.168l 63.864-57.752c 4.672-4.472, 12.232-4.472, 16.92,0l 2.736,4.032
|
930 |
c 4.672,4.472, 3.16,11.72-1.512,16.184l-38.568,34.584L 480,77.080 c 17.672,0, 32,14.32, 32,32l0,288 C 512,414.752, 497.672,429.080, 480,429.080z" />
|
931 |
+
<glyph unicode="" d="M 58.416,208.168l 277.224,0 c 8.848,0, 16,7.168, 16,16s-7.152,16-16,16L 59.416,240.168 l 57.88,57.88
|
932 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 0.168,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
933 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624L 58.416,208.168z M 479.832,480L 207.832,480 c-17.68,0-32-14.328-32-32l0-144 l 32.208,0 L 208.040,428.488
|
934 |
c0,10.688, 8.672,19.36, 19.36,19.36L 459.76,447.848 c 10.696,0, 19.36-8.672, 19.36-19.36l 0.504-409.144c0-10.688-8.664-19.36-19.36-19.36L 227.408-0.016
|
935 |
c-10.688,0-19.36,8.672-19.36,19.36L 208.048,144.528 l-32.208-0.040L 175.84,0 c0-17.672, 14.32-32, 32-32l 271.992,0 c 17.68,0, 32.008,14.328, 32.008,32L 511.84,448
|
936 |
C 511.832,465.672, 497.504,480, 479.832,480z" />
|
937 |
+
<glyph unicode="" d="M 266.264,149.296c-6.256-6.248-6.256-16.376,0-22.624
|
938 |
c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.888,320.68c-6.248,6.248-16.376,6.248-22.624,0
|
939 |
c-6.256-6.248-6.256-16.376,0-22.624l 57.872-57.88L 15.92,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 309.224,0 L 266.264,149.296z M 480.080,480l-288,0
|
940 |
c-17.68,0-32.008-14.328-32.008-32l0-144 l 32.216,0 L 192.288,428.488 c0,10.688, 8.672,19.36, 19.36,19.36L 460,447.848 c 10.704,0, 19.36-8.672, 19.36-19.36l 0.504-409.144
|
941 |
c0-10.688-8.656-19.36-19.36-19.36L 211.656-0.016 c-10.688,0-19.36,8.672-19.36,19.36L 192.296,144.528 l-32.216-0.040L 160.080,0 c0-17.672, 14.328-32, 32.008-32l 288,0
|
942 |
c 17.672,0, 32,14.328, 32,32L 512.088,448 C 512.080,465.672, 497.752,480, 480.080,480z" />
|
943 |
+
<glyph unicode="" d="M 48,256L 16,256 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32
|
944 |
C 64,248.832, 56.832,256, 48,256z M 496,240L 160,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 48,128L 16,128
|
945 |
c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 C 64,120.832, 56.832,128, 48,128z M 496,112L 160,112 c-8.832,0-16-7.168-16-16
|
946 |
s 7.168-16, 16-16l 336,0 c 8.832,0, 16,7.168, 16,16S 504.832,112, 496,112z M 48,384L 16,384 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0 c 8.832,0, 16,7.168, 16,16
|
947 |
l0,32 C 64,376.832, 56.832,384, 48,384z M 160,336l 336,0 c 8.832,0, 16,7.168, 16,16s-7.168,16-16,16L 160,368 c-8.832,0-16-7.168-16-16S 151.168,336, 160,336z" />
|
948 |
+
<glyph unicode="" d="M 304.272-31.872c-145.416,0-146.536,6.032-164.544,19.592c-9.552,7.184-27.576,12.16-93.408,16.448
|
949 |
c-4.776,0.312-9.32,2.144-12.368,5.84c-1.4,1.704-34.296,49.68-34.296,126.52c0,75.72, 23.544,110.232, 24.552,111.832
|
950 |
c 2.92,4.68, 8.048,7.52, 13.56,7.52c 54.056,0, 128.992,69, 179.368,189.448c 8.712,20.832, 10.512,34.536, 42.512,34.536
|
951 |
c 18.2,0, 38.6-13.032, 48.672-29.752c 20.664-34.16, 10.168-107.528, 0.464-146.736c 33,0.264, 92.736,0.712, 121.16,0.712
|
960 |
c-3,4.472-3.224,10.024-1.464,15.112c 15.632,45.016, 24.36,115.64, 9.864,139.768c-4.272,7.112-5.248,14.216-21.248,14.216
|
961 |
c-2.216,0-7.496-1.752-13-14.872C 193.168,305.088, 113.312,231.096, 47.904,224.424c-5.64-12.864-16.248-39.52-16.248-87.888
|
962 |
C 31.656,87.168, 47.296,48.976, 54.808,36.616z" />
|
963 |
+
<glyph unicode="" d="M 508.352,223.32L 268.168,474.904c-3.016,3.152-7.184,4.92-11.544,4.92c-4.352,0-8.52-1.776-11.544-4.92L 3.656,223.328
|
964 |
c-6.12-6.376-5.904-16.496, 0.472-22.624c 6.376-6.112, 16.496-5.936, 22.624,0.472l 21.504,22.416l0-239.416 c0-8.84, 7.168-16, 16-16l 111.776,0
|
965 |
c 8.816,0, 15.968,7.128, 16,15.952l 0.504,159.832l 127.496,0 l0-159.784 c0-8.84, 7.16-16, 16-16l 111.736,0 c 8.84,0, 16,7.16, 16,16L 463.768,223.672 l 21.496-22.52
|
966 |
c 3.144-3.264, 7.344-4.92, 11.544-4.92c 3.984,0, 7.984,1.472, 11.080,4.472C 514.256,206.816, 514.464,216.944, 508.352,223.32z
|
967 |
M 431.768,252.592l0-252.416 l-79.736,0 L 352.032,159.952 c0,8.84-7.16,16-16,16l-159.44,0 c-8.816,0-15.968-7.128-16-15.952l-0.504-159.832l-79.832,0 L 80.256,252.592
|
968 |
c0,1.32-0.208,2.584-0.504,3.816l 176.88,184.312l 175.712-184.104C 432,255.32, 431.768,253.984, 431.768,252.592z" />
|
969 |
+
<glyph unicode="" d="M 480-32L 320-32 c-17.672,0-32,14.328-32,32L 288,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
970 |
C 512-17.672, 497.672-32, 480-32z M 480,160L 320,160 l0-160 l 160,0 L 480,160 z M 480,256L 320,256 c-17.672,0-32,14.328-32,32L 288,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
971 |
C 512,270.328, 497.672,256, 480,256z M 480,448L 320,448 l0-160 l 160,0 L 480,448 z M 192-32L 32-32 c-17.672,0-32,14.328-32,32L0,160 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
972 |
C 224-17.672, 209.672-32, 192-32z M 192,160L 32,160 l0-160 l 160,0 L 192,160 z M 192,256L 32,256 c-17.672,0-32,14.328-32,32L0,448 c0,17.672, 14.328,32, 32,32l 160,0 c 17.672,0, 32-14.328, 32-32l0-160
|
973 |
C 224,270.328, 209.672,256, 192,256z M 192,448L 32,448 l0-160 l 160,0 L 192,448 z" />
|
974 |
+
<glyph unicode="" d="M 472,368c-22.096,0-40-17.912-40-40c0-4.536, 0.92-8.816, 2.304-12.88L 336.8,231.16C 329.96,236.608, 321.424,240, 312,240
|
975 |
c-10.872,0-20.704-4.368-27.904-11.408l-76.376,38.24C 206.232,287.576, 189.12,304, 168,304c-22.088,0-40-17.912-40-40c0-6.048, 1.44-11.72, 3.84-16.856
|
976 |
L 53.968,157.352C 49.6,158.984, 44.936,160, 40,160c-22.088,0-40-17.912-40-40s 17.912-40, 40-40s 40,17.912, 40,40c0,5.32-1.088,10.384-2.976,15.024
|
977 |
l 79.136,90.96C 159.928,224.816, 163.848,224, 168,224c 11.64,0, 22.024,5.056, 29.336,13l 74.704-37.456C 272.304,177.672, 290.064,160, 312,160
|
978 |
c 22.096,0, 40,17.912, 40,40c0,0.712-0.168,1.376-0.208,2.080L 455.84,291.464C 460.792,289.272, 466.232,288, 472,288c 22.096,0, 40,17.904, 40,40
|
979 |
C 512,350.088, 494.096,368, 472,368z" />
|
980 |
+
<glyph unicode="" d="M 80.024,286.064L 80.024,464 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-177.92
|
981 |
C 20.36,278.952-0.176,253.856-0.176,224c0-29.864, 20.536-54.952, 48.2-62.088L 48.024-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 80.024,161.928
|
982 |
c 27.64,7.152, 48.152,32.224, 48.152,62.072C 128.176,253.84, 107.664,278.92, 80.024,286.064z M 64.208,191.984C 64.152,191.984, 64.088,192, 64.024,192
|
983 |
c-0.072,0-0.136-0.016-0.208-0.024C 46.24,192.080, 31.968,206.4, 31.968,224c0,17.592, 14.28,31.92, 31.856,32.016
|
993 |
c-0.064,0-0.12,0.016-0.176,0.016c-0.072,0-0.144-0.016-0.208-0.016C 430.248,288.080, 415.968,302.4, 415.968,320
|
994 |
c0,17.592, 14.28,31.92, 31.848,32.016c 0.072,0, 0.144-0.016, 0.208-0.016c 0.064,0, 0.12,0.016, 0.176,0.016
|
995 |
c 17.568-0.12, 31.832-14.432, 31.832-32.016C 480.048,302.408, 465.784,288.096, 448.208,287.984z" />
|
996 |
+
<glyph unicode="" d="M 207.72,479.88c 145.416,0, 146.544-6.032, 164.552-19.592c 9.552-7.184, 27.576-12.168, 93.416-16.456
|
997 |
c 4.784-0.312, 9.32-2.144, 12.368-5.84c 1.4-1.704, 34.296-49.68, 34.296-126.512c0-75.72-23.544-110.24-24.552-111.848
|
998 |
c-2.92-4.672-8.048-7.512-13.56-7.512c-54.056,0-128.992-69-179.376-189.456c-8.712-20.832-10.504-34.528-42.512-34.528
|
999 |
c-18.2,0-38.6,13.032-48.688,29.752c-20.656,34.16-10.168,107.528-0.456,146.736c-33-0.264-92.736-0.72-121.16-0.72
|
1008 |
s 3.232-10.032, 1.464-15.112c-15.624-45.016-24.352-115.64-9.856-139.768c 4.264-7.112, 5.248-14.216, 21.248-14.216
|
1009 |
c 2.216,0, 7.496,1.752, 13,14.872c 53.496,127.904, 133.352,201.904, 198.76,208.576c 5.64,12.864, 16.248,39.52, 16.248,87.896
|
1010 |
C 480.352,360.832, 464.712,399.016, 457.192,411.376z" />
|
1011 |
+
<glyph unicode="" d="M 460.544,428.384L 292.416,35.488l-59.656,172.256L 60.664,259.76L 460.544,428.384 M 502.232,479.616c-3.048,0-6.76-0.864-11.048-2.68
|
1012 |
L 13.856,274.4c-17.192-7.296-18.28-21.352-2.424-31.232l 197.648-61.792l 64.68-201.632c 4.64-7.592, 10.248-11.36, 15.632-11.36
|
1013 |
c 5.968,0, 11.648,4.576, 15.52,13.624L 509.048,458.872C 514.576,471.816, 511.432,479.616, 502.232,479.616L 502.232,479.616z" />
|
1014 |
+
<glyph unicode="" d="M 487.472,447.304c0,11.616-6.296,22.328-16.456,27.968
|
1015 |
c-4.84,2.696-10.184,4.032-15.544,4.032c-5.856,0-11.736-1.616-16.888-4.824L 70.72,251.184c-7.976-4.952-13.256-13.104-14.688-22.2L 56.032,464
|
1016 |
c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-480 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 56.032,219.032 c 1.44-9.104, 6.72-17.256, 14.688-22.192L 439.080-26.48
|
1017 |
c 5.16-3.216, 11.032-4.832, 16.888-4.832c 5.36,0, 10.704,1.344, 15.544,4.032c 10.16,5.64, 16.456,16.344, 16.456,27.968L 487.472,447.304z
|
1018 |
M 87.6,224.008L 455.472,447.304l 0.504-446.608L 87.6,224.008z" />
|
1019 |
+
<glyph unicode="" d="M 286.96,381.048L 34.32,224l 252.64-157.048L 286.96,190.44 l 192-123.488L 478.96,381.048 l-192-123.496L 286.96,385.472 M 285.632,413.048
|
1020 |
c 5.352,0, 11.368-1.336, 16.208-4.032c 10.16-5.64, 17.12-16.352, 17.12-27.968l0-65.92 L 468.072,408.224c 5.16,3.2, 10.688,4.824, 16.56,4.824
|
1021 |
c 5.344,0, 7.864-1.336, 12.712-4.032c 10.16-5.64, 13.616-16.352, 13.616-27.968l0-314.096 c0-11.624-3.624-22.328-13.784-27.968
|
1022 |
c-4.84-2.688-8.864-4.032-14.216-4.032c-5.864,0-10.392,1.608-15.552,4.832L 318.96,132.872l0-65.92 c0-11.624-6.96-22.328-17.12-27.968
|
1023 |
c-4.84-2.688-10.52-4.032-15.88-4.032c-5.856,0-11.896,1.608-17.056,4.832L 16.176,196.832C 6.792,202.656, 1.040,212.936, 1.040,224
|
1024 |
s 5.688,21.336, 15.080,27.176L 268.752,408.224C 273.904,411.432, 279.768,413.048, 285.632,413.048L 285.632,413.048z" />
|
1025 |
+
<glyph unicode="" d="M 72.312,447.304l 367.872-223.296L 71.816,0.696L 72.312,447.304 M 72.312,479.304c-5.36,0-10.704-1.336-15.544-4.032
|
1026 |
c-10.16-5.64-16.456-16.352-16.456-27.968L 39.816,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032
|
1027 |
c 5.856,0, 11.736,1.608, 16.888,4.832l 368.36,223.312c 9.408,5.832, 15.128,16.112, 15.128,27.168s-5.72,21.336-15.128,27.176L 89.2,474.488
|
1028 |
C 84.048,477.688, 78.168,479.304, 72.312,479.304L 72.312,479.304z" />
|
1029 |
+
<glyph unicode="" d="M 208.136,480L 96.032,480 c-8.832,0-16-7.16-16-16l0-480 c0-8.832, 7.168-16, 16-16l 112.104,0 c 8.84,0, 16,7.168, 16,16L 224.136,464
|
1030 |
C 224.136,472.84, 216.976,480, 208.136,480z M 192.136,0L 112.032,0 L 112.032,448 l 80.104,0 L 192.136,0 z M 415.968,480L 304.44,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.832, 7.16-16, 16-16
|
1031 |
l 111.528,0 c 8.84,0, 16,7.168, 16,16L 431.968,464 C 431.968,472.84, 424.816,480, 415.968,480z M 399.968,0l-79.528,0 L 320.44,448 l 79.528,0 L 399.968,0 z" />
|
1032 |
+
<glyph unicode="" d="M 225.040,381.048L 477.68,224L 225.040,66.952L 225.040,190.44 l-192-123.488L 33.040,381.048 l 192-123.496L 225.040,385.472 M 226.368,413.048
|
1033 |
c-5.36,0-11.368-1.336-16.216-4.032C 200,403.376, 193.040,392.664, 193.040,381.048l0-65.92 L 43.928,408.224c-5.16,3.2-10.688,4.824-16.56,4.824
|
1034 |
c-5.344,0-7.864-1.336-12.72-4.032C 4.504,403.376, 1.040,392.664, 1.040,381.048l0-314.096 c0-11.624, 3.624-22.328, 13.784-27.968
|
1035 |
c 4.84-2.688, 8.864-4.032, 14.216-4.032c 5.864,0, 10.392,1.608, 15.552,4.832L 193.040,132.872l0-65.92 c0-11.624, 6.96-22.328, 17.112-27.968
|
1036 |
c 4.848-2.688, 10.528-4.032, 15.888-4.032c 5.856,0, 11.896,1.608, 17.056,4.832l 252.728,157.048c 9.392,5.832, 15.144,16.112, 15.144,27.168
|
1037 |
s-5.688,21.336-15.080,27.176L 243.248,408.224C 238.096,411.432, 232.224,413.048, 226.368,413.048L 226.368,413.048z" />
|
1038 |
+
<glyph unicode="" d="M 471.968,480c-8.832,0-16-7.168-16-16l0-235 c-1.44,9.096-6.72,17.232-14.688,22.184
|
1039 |
L 73.424,474.488c-5.16,3.2-11.032,4.824-16.888,4.824c-5.36,0-10.704-1.336-15.544-4.032c-10.16-5.64-16.456-16.352-16.456-27.968
|
1040 |
L 24.032,0.696c0-11.624, 6.296-22.328, 16.456-27.968c 4.84-2.688, 10.184-4.032, 15.544-4.032c 5.856,0, 11.736,1.608, 16.888,4.832
|
1041 |
L 441.28,196.832c 7.968,4.936, 13.248,13.080, 14.688,22.176L 455.968-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 487.968,464 C 487.968,472.832, 480.808,480, 471.968,480z
|
1042 |
M 56.032,0.696L 56.528,447.304l 367.872-223.296L 56.032,0.696z" />
|
1043 |
+
<glyph unicode="" d="M 480,432.056L 351.888,432.056 L 351.888,463.944 c0,8.84-7.16,16-16,16s-16-7.16-16-16l0-31.88 l-128,0 L 191.888,463.944
|
1044 |
c0,8.84-7.16,16-16,16c-8.84,0-16-7.16-16-16l0-31.88 L 32,432.064 c-17.672,0-32-14.328-32-32l0-400 c0-17.672, 14.328-32, 32-32l 448,0 c 17.672,0, 32,14.328, 32,32l0,400
|
1045 |
C 512,417.728, 497.672,432.056, 480,432.056z M 480,0.064L 32,0.064 l0,400 l 127.888,0 l0-16.12 c0-8.84, 7.16-16, 16-16c 8.84,0, 16,7.16, 16,16L 191.888,400.056 l 128,0 l0-16.12
|
1046 |
c0-8.84, 7.16-16, 16-16s 16,7.16, 16,16L 351.888,400.056 L 480,400.056 L 480,0.064 z M 368,224.056l 32,0 c 8.832,0, 16,7.168, 16,16l0,32 c0,8.832-7.168,16-16,16l-32,0
|
1050 |
c 8.832,0, 16,7.168, 16,16l0,32 C 288,280.896, 280.832,288.056, 272,288.056z M 144,288.056l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.832, 7.168-16, 16-16l 32,0
|
1051 |
c 8.832,0, 16,7.168, 16,16l0,32 C 160,280.896, 152.832,288.056, 144,288.056z M 144,160.064l-32,0 c-8.832,0-16-7.168-16-16l0-32 c0-8.84, 7.168-16, 16-16l 32,0
|
1052 |
c 8.832,0, 16,7.16, 16,16l0,32 C 160,152.888, 152.832,160.064, 144,160.064z" />
|
1053 |
+
<glyph unicode="" d="M 255.992,480C 156.976,480, 79.432,399.448, 79.432,300.432c0-74.6, 36.64-110.128, 65.592-136.064c 18.64-16.712, 31.184-26.776, 31.184-39.176
|
1054 |
l0-27.128 c0-0.696, 0.096-1.376, 0.184-2.064l-0.36,0 l0-46.312 C 176.040,0.832, 207.632-32, 256.568-32c 47.232,0, 79.472,32.832, 79.472,81.688L 336.040,96
|
1055 |
l-0.464,0 c 0.088,0.688, 0.208,1.368, 0.208,2.064l0,27.128 c0,18.88, 14.016,30.296, 35.264,48.848c 28.752,25.104, 61.512,56.344, 61.512,126.392
|
1056 |
C 432.568,399.448, 355.008,480, 255.992,480z M 255.384,0c-29.952,0-47.344,18.576-47.344,49.688l-0.232,21.336C 219.32,67.088, 235,64, 256,64
|
1058 |
l0-20.216 c-7.592-4.24-21.592-9.28-48.064-9.28c-27.784,0-40.96,4.928-47.512,8.736l0,20.768 c0,27.304-21.344,44.648-41.84,63.008
|
1059 |
c-27.16,24.336-54.936,51.92-54.936,112.232C 111.432,381.8, 174.632,448, 255.992,448c 81.376,0, 144.576-66.2, 144.576-147.568
|
1060 |
C 400.568,244.92, 376.336,221.144, 350.008,198.144z" />
|
1061 |
+
<glyph unicode="" d="M 136.032,320.008L 24,320.008 c-8.84,0-16-7.16-16-16L 8-16 c0-8.84, 7.16-16, 16-16l 112.032,0 c 8.84,0, 16,7.16, 16,16L 152.032,304.008
|
1062 |
C 152.032,312.848, 144.872,320.008, 136.032,320.008z M 120.032,0L 40,0 L 40,288.008 l 80.032,0 L 120.032,0 z M 311.872,224.872L 199.832,224.872 c-8.84,0-16-7.16-16-16L 183.832-16
|
1063 |
c0-8.84, 7.16-16, 16-16l 112.040,0 c 8.84,0, 16,7.16, 16,16L 327.872,208.872 C 327.872,217.72, 320.72,224.872, 311.872,224.872z M 295.872,0L 215.832,0 L 215.832,192.872
|
1064 |
l 80.040,0 L 295.872,0 z M 488,480L 376.136,480 c-8.84,0-16-7.16-16-16l0-480 c0-8.84, 7.16-16, 16-16L 488-32 c 8.84,0, 16,7.16, 16,16L 504,464 C 504,472.84, 496.84,480, 488,480z M 472,0
|
1065 |
l-79.864,0 L 392.136,448 L 472,448 L 472,0 z" />
|
1066 |
+
<glyph unicode="" d="M 512,224C 512,365.392, 397.384,480, 256,480C 114.608,480,0,365.392,0,224c0-141.384, 114.608-256, 256-256C 397.384-32, 512,82.616, 512,224z M 31.504,224
|
1067 |
C 31.504,347.512, 132.488,448, 256,448s 224-100.488, 224-224S 379.512,0, 256,0S 31.504,100.488, 31.504,224z M 272.168,111.84L 272.168,292.072 l 57.88-57.88
|
1068 |
c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.376,0,22.624L 255.672,351.32L 158.672,256.816c-3.128-3.128-4.688-7.216-4.688-11.312
|
1069 |
s 1.56-8.184, 4.688-11.312c 6.248-6.248, 16.376-6.248, 22.624,0l 58.872,58.88L 240.168,111.84 c0-8.84, 7.168-16, 16-16S 272.168,103, 272.168,111.84z" />
|
1070 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504
|
1071 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 266.184,320.68
|
1072 |
c-6.248-6.248-6.248-16.376,0-22.624l 57.88-57.88L 143.84,240.176 c-8.84,0-16-7.168-16-16s 7.16-16, 16-16l 181.232,0 l-58.88-58.872
|
1073 |
c-6.248-6.248-6.248-16.376,0-22.624c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688l 94.504,97L 288.816,320.68
|
1074 |
C 282.56,326.928, 272.44,326.928, 266.184,320.68z" />
|
1075 |
+
<glyph unicode="" d="M 256,480C 114.608,480,0,365.384,0,224c0-141.392, 114.608-256, 256-256c 141.384,0, 256,114.608, 256,256C 512,365.384, 397.384,480, 256,480z M 256-0.504
|
1076 |
C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z M 368.16,240.168L 187.928,240.168 l 57.88,57.88
|
1077 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 128.68,223.672l 94.504-97c 3.128-3.128, 7.216-4.688, 11.312-4.688
|
1078 |
s 8.184,1.56, 11.312,4.688c 6.248,6.248, 6.248,16.376,0,22.624l-58.88,58.872L 368.16,208.168 c 8.84,0, 16,7.168, 16,16S 377,240.168, 368.16,240.168z" />
|
1079 |
+
<glyph unicode="" d="M0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480C 114.616,480,0,365.384,0,224z M 480.504,224
|
1080 |
c0-123.512-100.984-224-224.504-224S 32,100.488, 32,224S 132.488,448, 256,448S 480.504,347.512, 480.504,224z M 239.832,336.16l0-180.224 l-57.88,57.88
|
1081 |
c-6.248,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 97.008-94.504l 97,94.504c 3.128,3.128, 4.688,7.216, 4.688,11.312
|
1082 |
s-1.56,8.184-4.688,11.312c-6.248,6.248-16.376,6.248-22.624,0l-58.872-58.88L 271.84,336.16 c0,8.84-7.168,16-16,16S 239.832,345, 239.832,336.16z" />
|
1083 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1084 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 32,224c0,56.136, 20.808,107.48, 55.048,146.832l 315.928-315.928
|
1085 |
C 363.608,20.464, 312.208-0.504, 256-0.504C 132.488-0.504, 32,100.488, 32,224z M 425.512,77.608L 109.704,393.416C 148.992,427.384, 200.12,448, 256,448
|
1086 |
c 123.512,0, 224-100.488, 224-224C 480,168.168, 459.424,116.984, 425.512,77.608z" />
|
1087 |
+
<glyph unicode="" d="M 256,416c 123.512,0, 224-71.776, 224-160c0-88.216-100.488-160-224-160l-7.568-0.032l-5.688-0.016c-8.792,0-14.544,0.232-23.536,1.576
|
1088 |
l-17.928,2.56l-11.504-13.92c-5.288-6.392-32.272-28.56-62.056-42.832c 6.056,16.016, 10.52,33.504, 10.92,50.8l 0.16,0.952l0,2.736 l0,19.576
|
1089 |
l-17.432,8.904C 64.568,155.36, 32,202.624, 32,256C 32,344.224, 132.488,416, 256,416 M 256,448C 114.6,448,0,362.032,0,256c0-66.032, 39.128-123.576, 106.792-158.168
|
1090 |
c0-0.408-0.128-0.704-0.128-1.16c0-28.688-16.080-60.232-25.504-76.472l 0.024,0 C 80.44,18.456, 80,16.544, 80,14.496
|
1091 |
C 80,6.456, 86.48,0, 94.504,0c 1.208,0, 3.128,0.248, 3.832,0.248c 0.168,0, 0.264,0, 0.248-0.048c 50,8.168, 104.976,52.344, 115.912,65.672
|
1092 |
c 11.24-1.672, 18.832-1.92, 28.24-1.92C 246.704,63.952, 250.984,64, 256,64c 141.376,0, 256,85.952, 256,192C 512,362.032, 397.376,448, 256,448L 256,448z" />
|
1093 |
+
<glyph unicode="" d="M 319.064,368.312c 0.64,0, 1.16-0.504, 1.16-1.12l0-63.936 c0-11.832, 6.528-22.712, 17-28.264c 4.704-2.504, 9.856-3.736, 15-3.736
|
1094 |
c 6.28,0, 13.528,1.84, 18.92,5.496L 480,338.368L 480,110.16 L 370.544,169.92c-5.488,3.832-11.888,5.768-18.328,5.768
|
1095 |
c-5.064,0-10.128-1.2-14.784-3.608c-10.56-5.512-17.2-16.44-17.216-28.344l-0.080-62.92c0-0.624-0.504-1.128-1.144-1.128L 33.144,79.688
|
1096 |
C 32.504,79.688, 32,80.184, 32,80.8l 0.080,286.392c0,0.624, 0.504,1.12, 1.144,1.12L 319.064,368.312 M 495.184,384.328c-3.408,0-10.144-1.008-13.984-4.832
|
1098 |
c0-18.28, 14.816-33.128, 33.144-33.128l 285.856,0 c 18.328,0, 33.144,14.84, 33.144,33.128l 0.080,62.872l 131.488-76.656
|
1099 |
c 3.856-3.84, 8.128-3.344, 11.544-3.344c 3.544,0, 6.184,1.080, 6.512,1.216C 507.984,67.496, 512,73.496, 512,80.248L 512,367.736
|
1100 |
c0,6.752-4.016,12.776-10.232,15.328C 501.408,383.224, 498.752,384.328, 495.184,384.328L 495.184,384.328z" />
|
1101 |
+
<glyph unicode="" d="M 464,368l-73.592,0 L 352,432L 160,432 l-38.4-64L 48,368 c-16,0-48-16-48-47.504L0,64 c0-26.504, 24-48, 44.664-48l 420.336,0 C 486,16, 512,38.496, 512,63.496L 512,320
|
1102 |
C 512,336, 496,368, 464,368z M 480,63.496c0-6.312-10.232-15.144-15-15.504L 44.76,47.992 C 41.056,48.296, 32,55.512, 32,64L 32,320.496
|
1103 |
C 32,330.632, 45.616,335.744, 48,336l 91.72,0 l 9.32,15.536L 178.12,400l 156.824,0 l 28.56-48.472l 8.8-15.528L 464,336 c 11.28,0, 15.84-14.736, 16-16L 480,63.496 z M 256,320
|
1104 |
c-61.856,0-112-50.144-112-112s 50.144-112, 112-112s 112,50.144, 112,112S 317.856,320, 256,320z M 256,128c-44.112,0-80,35.888-80,80s 35.888,80, 80,80
|
1105 |
s 80-35.888, 80-80S 300.112,128, 256,128z" />
|
1106 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1107 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1108 |
S 379.512-0.504, 256-0.504z M 358.168,317.672L 207.968,166.528l-67.64,67.64c-6.248,6.248-16.376,6.248-22.632,0
|
1109 |
c-6.248-6.248-6.248-16.376,0-22.624l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.632,0c 0.72,0.72, 1.336,1.504, 1.896,2.32L 380.808,295.040
|
1110 |
c 6.24,6.248, 6.24,16.376,0,22.632C 374.552,323.92, 364.424,323.92, 358.168,317.672z" />
|
1111 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1112 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1113 |
S 379.512-0.504, 256-0.504z M 272,230.496L 272,384 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-160 c0-4.528, 1.896-8.6, 4.928-11.504
|
1114 |
c 0.264-0.312, 0.48-0.648, 0.768-0.944l 79.192-79.2c 6.248-6.24, 16.376-6.24, 22.624,0c 6.248,6.248, 6.248,16.384,0,22.632L 272,230.496z" />
|
1115 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1116 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1117 |
S 379.512-0.504, 256-0.504z M 346.504,314.504c-6.248,6.248-16.376,6.248-22.624,0L 256,246.624l-67.88,67.88
|
1118 |
c-6.248,6.248-16.376,6.248-22.632,0c-6.248-6.248-6.248-16.376,0-22.624L 233.368,224l-67.88-67.88c-6.248-6.24-6.248-16.384,0-22.624
|
1119 |
c 6.248-6.248, 16.376-6.248, 22.632,0L 256,201.376l 67.88-67.88c 6.248-6.248, 16.376-6.248, 22.624,0c 6.248,6.24, 6.248,16.384,0,22.624
|
1120 |
L 278.624,224l 67.88,67.88C 352.76,298.136, 352.76,308.264, 346.504,314.504z" />
|
1121 |
+
<glyph unicode="" d="M 381.512,350C 359.2,409.216, 311.232,446.72, 238.784,446.72c-92.192,0-156.696-68.456-162.24-157.768C 32.088,274.736,0,229.392,0,178.032
|
1122 |
c0-62.872, 49.424-115.984, 107.912-115.984l 14.224,0 c 8.832,0, 16,7.16, 16,16s-7.168,16-16,16l-14.224,0 c-41.152,0-76.416,38.456-76.416,83.984
|
1123 |
c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.296,14.672l-0.12,0.184c 0.008,77.936, 51.304,136.72, 130.592,136.72
|
1124 |
c 63.552,0, 99.256-31.312, 115.776-84.72l 3.416-11.016l 11.536-0.248c 59.432-1.248, 111.544-49.472, 111.544-109.392
|
1128 |
c-4.472-4.688-4.472-12.24,0-16.912l 57.752-63.872c 0.080-0.080, 0.096-0.184, 0.168-0.264l 4.048-4.232
|
1129 |
c 2.248-2.344, 5.184-3.504, 8.144-3.488c 2.936-0.016, 5.888,1.144, 8.112,3.488l 4.048,4.232c 0.080,0.080, 0.12,0.168, 0.184,0.264
|
1130 |
l 59.216,64.872c 4.472,4.672, 4.472,10.224,0,14.912L 323.168,92.264z" />
|
1131 |
+
<glyph unicode="" d="M 381.512,350.016C 359.2,409.232, 311.232,446.736, 238.776,446.736c-92.192,0-156.696-68.456-162.24-157.768
|
1132 |
C 32.088,274.752,0,229.408,0,178.048c0-62.872, 49.424-115.984, 107.912-115.984l 46.224,0 c 8.832,0, 16,7.168, 16,16c0,8.84-7.168,16-16,16l-46.224,0
|
1133 |
c-41.152,0-76.416,38.456-76.416,83.984c0,40.232, 28.208,76.528, 63.592,82.608l 14.52,2.504l-1.288,14.664l-0.12,0.184
|
1134 |
c0,77.936, 51.288,136.72, 130.576,136.72c 63.552,0, 99.256-31.312, 115.768-84.72l 3.424-11.016l 11.528-0.248
|
1138 |
l-4.048-4.232c-0.080-0.080-0.096-0.176-0.168-0.256l-57.752-63.872c-4.472-4.672-4.472-12.232,0-16.92l 4.032-2.736
|
1139 |
c 4.472-4.672, 11.72-3.16, 16.184,1.512l 34.056,37.968l0-161.216 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 271.808,178.328 l 35.184-38.816
|
1140 |
c 4.472-4.672, 11.704-6.184, 16.168-1.512l 4.032,2.736c 4.472,4.688, 4.472,12.248,0,16.92L 267.992,222.528z" />
|
1141 |
+
<glyph unicode="" d="M 280,480L 104,480 c-17.672,0-32-14.328-32-32l0-448 c0-17.672, 14.328-32, 32-32l 304,0 c 17.672,0, 32,14.328, 32,32L 440,319.992 L 280,480z M 408,306.736L 408,304 L 264,304 L 264,448 l 2.752,0
|
1142 |
L 408,306.736z M 104,0L 104,448 l 128,0 l0-176 l 176,0 l0-272 L 104,0 z" />
|
1143 |
+
<glyph unicode="" d="M 511.728,364c 0.496,3.072, 0.088,6.24-1.24,9.136C 506.456,390.856, 493.648,400, 472,400L 56,400 c-19.040,0-39.552-7-49.64-20.736
|
1144 |
c-0.872-0.664-1.704-1.416-2.456-2.288c-3.224-3.72-4.352-8.504-3.632-13.016C 0.128,362.664,0,361.36,0,360l0-256 c0-26.512, 29.496-56, 56-56
|
1145 |
l 416,0 c 26.512,0, 40,29.488, 40,56L 512,360 C 512,361.416, 511.816,362.656, 511.728,364z M 56,368l 416,0 c 0.096,0, 0.144,0, 0.216,0L 256,195.672L 40.656,367.296
|
1146 |
C 45.552,368.2, 51.576,368, 56,368z M 472,80L 56,80 c-8.824,0-24,15.168-24,24L 32,333.224 L 245.52,162.4c 3.008-2.6, 6.744-3.896, 10.48-3.896
|
1147 |
s 7.472,1.296, 10.488,3.896L 480,333.216L 480,104 C 480,95.168, 480.832,80, 472,80z" />
|
1148 |
+
<glyph unicode="" d="M 257.736,319.296c-53.016,0-96-42.984-96-96c0-53.008, 42.984-96, 96-96s 96,42.984, 96,96
|
1149 |
C 353.736,276.312, 310.752,319.296, 257.736,319.296z M 257.736,159.296c-35.288,0-64.736,29.408-64.736,64.696c0,35.288, 28.712,64, 64,64
|
1150 |
c 35.296,0, 64-28.712, 64-64C 321,188.704, 293.032,159.296, 257.736,159.296z M 511.84,227.712c-0.184,0.808-0.104,1.664-0.344,2.456
|
1151 |
c-0.104,0.336-0.312,0.528-0.432,0.824c-0.168,0.456-0.128,0.992-0.36,1.432C 464.168,338.976, 363.872,400.304, 256.992,400.304
|
1156 |
c 0.112,0.28, 0.328,0.488, 0.424,0.8c 0.248,0.784, 0.168,1.64, 0.344,2.456c 0.28,1.432, 0.544,2.832, 0.544,4.312
|
1157 |
C 512.392,224.872, 512.128,226.264, 511.84,227.712z M 256,79.704c-90.648,0-179.872,47.784-223.712,143.84
|
1158 |
c 43.424,95.736, 133.84,144.752, 224.712,144.752c 90.84,0, 179.248-49.072, 222.688-144.856C 436.28,127.736, 346.872,79.704, 256,79.704z" />
|
1159 |
+
<glyph unicode="" d="M 340,432.336c-80,0-101.328,48-202.656,48C 72,480.336, 32,430.992, 32,430.992l0-447.328
|
1160 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 64,187.6 c 16.88,10.888, 40.168,20.736, 69.344,20.736c 101.328,0, 130.656-48, 210.656-48s 136,48, 136,48l0,272
|
1161 |
C 480,480.336, 420,432.336, 340,432.336z M 448,224.64c-18.080-11.792-56.392-32.304-104-32.304c-31.456,0-52.92,8.632-80.112,19.568
|
1162 |
c-33.136,13.32-70.704,28.432-130.544,28.432c-27.344,0-50.536-6.88-69.344-16.080L 64,417.992 c 12.048,10.96, 38.312,30.344, 73.344,30.344
|
1163 |
c 47.056,0, 73.544-11.424, 101.592-23.504c 27.936-12.040, 56.832-24.496, 101.064-24.496c 42.624,0, 80.064,11.784, 108,24.456L 448,224.64 z" />
|
1164 |
+
<glyph unicode="" d="M 177.376,392l 39.312-38.624L 226.744,344L 240,344 l 240,0 l0-288 L 32,56 L 32,392 l 144,0 M 192,424L 32,424 c-17.672,0-32-14.328-32-32l0-336 c0-17.672, 14.328-32, 32-32l 448,0
|
1165 |
c 17.672,0, 32,14.328, 32,32L 512,344 c0,17.672-14.328,32-32,32L 240,376 L 192,424L 192,424z" />
|
1166 |
+
<glyph unicode="" d="M 143.992,422.92c 15.688,0, 44.048-7.504, 90.048-52.808l 22.808-22.456l 22.464,22.816C 311.248,402.92, 345.232,423.072, 368,423.072
|
1167 |
c 30.704,0, 54.904-10.504, 78.504-34.048c 22.232-22.184, 34.496-51.68, 34.496-83.056c 0.016-31.392-12.224-60.912-34.704-83.336
|
1168 |
c-1.832-1.856-98.496-106.152-179.48-193.552c-3.816-3.624-8.176-4.16-10.496-4.16c-2.288,0-6.6,0.512-10.4,4.048
|
1169 |
c-19.736,21.952-162.776,181-179.408,197.616C 44.248,248.792, 32,278.312, 32,309.696c 0.008,31.376, 12.256,60.864, 34.52,83.072
|
1171 |
c 16.712-16.72, 178.928-197.168, 178.928-197.168c 9.24-9.248, 21.376-13.84, 33.48-13.84c 12.112,0, 24.2,4.592, 33.456,13.84
|
1172 |
c0,0, 177.44,191.512, 179.328,193.424c 58.52,58.44, 58.52,153.12,0,211.504c-29.056,29-61.512,43.392-101.104,43.392
|
1173 |
c-37.824,0-80-30.16-111.504-62.16C 223.992,424.92, 183.12,454.92, 143.992,454.92L 143.992,454.92z" />
|
1174 |
+
<glyph unicode="" d="M 288,112l-16,0 L 272,255 c0,0.168-0.048,0.328-0.048,0.504S 272,255.832, 272,256c0,8.832-7.168,16-16,16l-32,0 c-8.832,0-16-7.168-16-16
|
1175 |
s 7.168-16, 16-16l 16,0 l0-128 l-16,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 c 8.832,0, 16,7.168, 16,16S 296.832,112, 288,112z M 256,304c 17.672,0, 32,14.328, 32,32
|
1176 |
s-14.328,32-32,32s-32-14.328-32-32S 238.328,304, 256,304z M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256c 141.392,0, 256,114.608, 256,256
|
1177 |
C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224S 379.512-0.504, 256-0.504z" />
|
1178 |
+
<glyph unicode="" d="M 327.848,480c-79.528,0-144-64.576-144-144.232c0-35.704, 13.016-68.312, 34.472-93.504
|
1179 |
c-4.416,0.272-8.92-1.216-12.296-4.592L 44.832,75.48c-6.24-6.248-6.24-16.384,0-22.624c 0.12-0.12, 0.256-0.192, 0.384-0.312
|
1180 |
c 0.040-0.040, 0.064-0.088, 0.104-0.128l 78.456-79.952c 6.24-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624l-67.736,69.032l 41.248,41.504
|
1181 |
l 67.864-69.16c 6.24-6.248, 16.376-6.248, 22.624,0s 6.24,16.384,0,22.624l-67.928,69.224l 86.192,86.736c 3.336,3.336, 4.832,7.768, 4.608,12.136
|
1182 |
c 25.312-22.144, 58.336-35.656, 94.584-35.656c 79.528,0, 144,64.576, 144,144.24C 471.848,415.424, 407.384,480, 327.848,480z M 327.848,224
|
1183 |
c-61.624,0-112,50.136-112,112c0,61.872, 50.376,112, 112,112s 112-50.128, 112-112C 439.848,274.136, 389.48,224, 327.848,224z" />
|
1184 |
+
<glyph unicode="" d="M 147.832,113.776c 3.128-3.128, 7.216-4.688, 11.312-4.688s 8.184,1.56, 11.312,4.688L 364.288,309.12
|
1185 |
c 6.248,6.248, 6.248,16.376,0,22.624s-16.376,6.248-22.624,0L 147.832,136.4C 141.576,130.152, 141.576,120.024, 147.832,113.776z M 237.936,147.848
|
1186 |
c 5.288-23.312-0.416-46.2-18.432-64.216l-64.624-62.624c-13.6-13.592-31.68-21.080-50.912-21.080s-37.312,7.488-50.904,21.080
|
1187 |
c-28.072,28.080-28.072,73.768-0.168,101.672l 63.128,65.128c 13.6,13.592, 31.68,21.088, 50.912,21.088c 6.576,0, 12.912-1.176, 19.088-2.872
|
1193 |
c 28.064-28.080, 28.064-73.768, 0.16-101.672l-64.624-64.624c-13.592-13.592-31.688-21.080-50.904-21.080c-4.904,0-9.216-0.496-13.92,0.464
|
1194 |
l-25.488-25.504c 12.736-5.296, 25.816-6.968, 39.408-6.968c 26.608,0, 53.216,10.152, 73.528,30.464l 64.472,64.472
|
1195 |
C 522.176,343.144, 522.176,408.984, 481.568,449.608z" />
|
1196 |
+
<glyph unicode="" d="M 400,288l-16,0 l0,61.064 C 384,422.488, 330.872,480, 255.408,480C 179.64,480, 128,421.264, 128,349.064L 128,288 l-16,0
|
1197 |
c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64L 464,224 C 464,259.296, 435.296,288, 400,288z M 160,349.064
|
1198 |
C 160,403.608, 197.28,448, 255.408,448C 312.936,448, 352,404.544, 352,349.064L 352,288 L 160,288 L 160,349.064 z M 432,32c0-17.64-14.36-32-32-32L 112,0 c-17.64,0-32,14.36-32,32L 80,224
|
1199 |
c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,32 z M 256,192c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56L 240,80 c0-8.832, 7.168-16, 16-16
|
1200 |
s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56C 288,177.672, 273.672,192, 256,192z" />
|
1201 |
+
<glyph unicode="" d="M 400,287.448L 171.52,287.448 l-8.28,37.136
|
1202 |
c-14.12,52.688, 10.408,105.216, 66.544,120.256c 55.568,14.888, 104.544-16.968, 118.912-70.56l 6.8-26.984c 2.288-8.536, 11.056-13.6, 19.6-11.312
|
1203 |
c 8.536,2.288, 13.6,11.056, 11.312,19.592l-6.808,26.984C 360.608,453.48, 294.408,495.28, 221.504,475.752C 148.32,456.144, 113.648,386.040, 132.336,316.296
|
1204 |
l 6.432-28.848L 112,287.448 c-35.296,0-64-28.704-64-64l0-192 c0-35.296, 28.704-64, 64-64l 288,0 c 35.296,0, 64,28.704, 64,64l0,192 C 464,258.744, 435.296,287.448, 400,287.448z
|
1205 |
M 432,31.448c0-17.64-14.36-32-32-32L 112-0.552 c-17.64,0-32,14.36-32,32l0,192 c0,17.64, 14.36,32, 32,32l 288,0 c 17.64,0, 32-14.36, 32-32L 432,31.448 z M 256,191.448
|
1206 |
c-17.672,0-32-14.328-32-32c0-11.816, 6.48-22.016, 16-27.56l0-52.44 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,52.44 c 9.52,5.544, 16,15.752, 16,27.56
|
1207 |
C 288,177.12, 273.672,191.448, 256,191.448z" />
|
1208 |
+
<glyph unicode="" d="M 507.32-4.52L 351.856,151.896c 28.976,34.704, 46.44,79.352, 46.44,128.104
|
1209 |
c0,110.456-89.544,200-200,200c-110.456,0-200-89.544-200-200c0-110.456, 89.544-200, 200-200c 50.184,0, 96.024,18.528, 131.144,49.072l 155.248-156.224
|
1210 |
c 6.248-6.248, 16.384-6.248, 22.632,0C 513.56-20.904, 513.56-10.776, 507.32-4.52z M 198.296,111.736
|
1211 |
C 105.368,111.736, 30.032,187.072, 30.032,280S 105.368,448.264, 198.296,448.264S 366.56,372.928, 366.56,280S 291.224,111.736, 198.296,111.736z" />
|
1212 |
+
<glyph unicode="" d="M 507.312-4.52L 365.8,137.864c 30.304,36.2, 48.544,82.88, 48.544,133.856
|
1213 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1214 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1215 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-64,0 l0,64 c0,8.832-7.168,16-16,16
|
1216 |
s-16-7.168-16-16l0-64 l-64,0 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 64,0 l0-64 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,64 l 64,0 c 8.832,0, 16,7.168, 16,16
|
1217 |
S 295.136,288, 286.296,288z" />
|
1218 |
+
<glyph unicode="" d="M 507.312-4.52L 365.8,137.864c 30.304,36.2, 48.544,82.88, 48.544,133.856
|
1219 |
C 414.344,386.752, 321.592,480, 206.568,480S-1.704,386.752-1.704,271.728c0-115.024, 93.248-208.272, 208.272-208.272
|
1220 |
c 52.504,0, 100.336,19.48, 136.848,51.536l 141.264-142.152c 6.248-6.248, 16.384-6.248, 22.624,0C 513.56-20.904, 513.56-10.776, 507.312-4.52z
|
1221 |
M 206.296,96c-96.776,0-176,79.224-176,176s 79.224,176, 176,176s 176-79.224, 176-176S 303.072,96, 206.296,96z M 286.296,288l-160,0 c-8.832,0-16-7.168-16-16
|
1222 |
s 7.168-16, 16-16l 160,0 c 8.832,0, 16,7.168, 16,16S 295.136,288, 286.296,288z" />
|
1223 |
+
<glyph unicode="" d="M 86.36-23.816c-21.704,0-42.544,8.984-59.152,25.608C-9.616,38.736-9.616,98.824, 27.2,135.744L 314.336,440.656
|
1224 |
c 44.8,44.872, 113.424,40.84, 163.504-9.304c 22.44-22.48, 35.032-54.888, 34.56-88.952c-0.472-33.704-13.64-65.96-36.144-88.504L 259.248,22.872
|
1225 |
c-6.040-6.472-16.168-6.768-22.616-0.696c-6.432,6.080-6.744,16.224-0.68,22.672l 217.336,231.376c 17,17.032, 26.752,41.192, 27.112,66.624
|
1226 |
c 0.36,25.448-8.832,49.44-25.184,65.832c-30.72,30.784-80.736,46.904-117.92,9.632L 50.168,113.4c-24.688-24.752-24.68-64.504-0.32-88.928
|
1229 |
c-6.44,6.064-6.736,16.224-0.68,22.656l 172.272,183.232c 13.544,13.608, 27.392,20.984, 41.488,22.248c 11,0.976, 27.36-1.368, 44.048-18.104
|
1230 |
c 24.768-24.816, 21.688-61.216-7.64-90.608L 153.592,6.64c-18.24-18.304-40.264-28.936-62.36-30.296
|
1231 |
C 89.608-23.768, 87.984-23.816, 86.36-23.816z" />
|
1232 |
+
<glyph unicode="" d="M 502.016,480c-3.048,0-6.76-0.864-11.048-2.68L 13.64,274.776c-17.184-7.288-18.272-21.344-2.416-31.224l 134.88-84.016
|
1233 |
c 15.856-9.872, 36.824-31.040, 46.592-47.024l 80.856-132.384c 4.64-7.592, 10.248-11.36, 15.64-11.36c 5.96,0, 11.64,4.576, 15.512,13.616
|
1234 |
L 508.832,459.256C 514.36,472.192, 511.208,480, 502.016,480z M 162.776,188.040L 53.448,256.144L 420.256,411.768L 184.16,171.672
|
1235 |
C 176.944,178.072, 169.616,183.784, 162.776,188.040z M 286.36,22.368l-65.216,106.76c-3.848,6.304-8.928,13.024-14.592,19.696l 237.192,241.192
|
1236 |
L 286.36,22.368z" />
|
1237 |
+
<glyph unicode="" d="M 256,480C 114.616,480,0,365.384,0,224c0-141.392, 114.616-256, 256-256
|
1238 |
c 141.392,0, 256,114.608, 256,256C 512,365.384, 397.392,480, 256,480z M 256-0.504C 132.488-0.504, 32,100.488, 32,224S 132.488,448, 256,448s 224-100.488, 224-224
|
1239 |
S 379.512-0.504, 256-0.504z M 368,240L 272,240 L 272,336 c0,8.832-7.168,16-16,16s-16-7.168-16-16l0-96 L 144,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 96,0 l0-96
|
1240 |
c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16L 272,208 l 96,0 c 8.832,0, 16,7.168, 16,16S 376.832,240, 368,240z" />
|
1241 |
+
<glyph unicode="" d="M 257.832,480.184C 152.88,480.184, 64,390.8, 64,284.912c0-110.88, 103.016-224.272, 172.312-303.968c 0.264-0.32, 11.464-12.76, 25.264-12.76
|
1242 |
l 1.224,0 c 13.8,0, 24.92,12.44, 25.2,12.76c 65.032,74.76, 160,198.024, 160,303.968C 448,390.8, 378.672,480.184, 257.832,480.184z M 264.248,2.408
|
1243 |
c-0.56-0.56-1.376-1.184-2.096-1.704c-0.736,0.504-1.536,1.144-2.128,1.704l-8.368,9.624C 185.96,87.4, 96,190.608, 96,284.912
|
1244 |
c0,88.504, 74.112,163.28, 161.832,163.28C 367.096,448.192, 416,366.192, 416,284.912C 416,213.32, 364.936,118.264, 264.248,2.408z M 256.56,383.296
|
1245 |
c-53.016,0-96-42.984-96-96s 42.984-96, 96-96s 96,42.984, 96,96S 309.576,383.296, 256.56,383.296z M 256.56,223.296
|
1246 |
c-35.288,0-64.736,29.408-64.736,64.704c0,35.288, 28.712,64, 64,64c 35.312,0, 64-28.712, 64-64C 319.84,252.704, 291.872,223.296, 256.56,223.296z" />
|
1247 |
+
<glyph unicode="" d="M 350.776,397.952c-8,3.728-17.512,0.296-21.264-7.712c-3.76-8-0.296-17.52, 7.704-21.272
|
1248 |
c 81.168-38, 125.248-125.976, 107.176-213.936c-21.456-104.44-123.832-171.904-228.28-150.512c-50.584,10.392-92.104,39.856-120.528,82.968
|
1249 |
c-28.432,43.128-38.368,94.752-27.976,145.336c 12.352,60.112, 51.312,109.664, 106.88,135.952c 7.984,3.776, 11.4,13.312, 7.616,21.304
|
1250 |
c-3.776,7.976-13.296,11.368-21.296,7.616C 96.056,367.064, 50.664,309.328, 36.264,239.264c-12.112-58.968-0.536-119.128, 32.592-169.392
|
1251 |
c 33.136-50.24, 81.848-84.584, 140.816-96.704c 15.216-3.128, 30.408-4.624, 45.376-4.624c 104.728,0, 198.824,73.56, 220.688,180.056
|
1252 |
C 496.792,251.104, 445.408,353.648, 350.776,397.952z M 256.008,272c 8.832,0, 16,7.168, 16,16L 272.008,464 c0,8.832-7.168,16-16,16c-8.832,0-16-7.168-16-16l0-176
|
1253 |
C 240.008,279.168, 247.176,272, 256.008,272z" />
|
1254 |
+
<glyph unicode="" d="M 248.704,30.72c-0.040,0.096-0.136,0.16-0.192,0.24l-45.96,71.832
|
1255 |
c-3.264,5.36-10.344,7.264-15.864,4.256l-4.096-2.52c-5.504-3-5.384-10.768-2.128-16.128l 29.464-45.704
|
1256 |
c-2.512,0.552-5.048,1-7.528,1.648c-51.592,13.496-95.248,48.416-119.768,95.8c-23.168,44.76-27.52,95.848-12.256,143.872
|
1257 |
c 15.256,48.024, 49.888,87.232, 94.648,110.392c 7.624,3.944, 10.6,13.32, 6.656,20.928c-3.936,7.632-13.32,10.616-20.928,6.664
|
1266 |
c 6.504-1, 12.984-2.208, 19.312-3.88c 51.616-13.52, 93.696-48.432, 118.2-95.784c 23.16-44.76, 27.512-95.848, 12.24-143.864
|
1267 |
c-15.256-48.024-48.328-87.224-93.088-110.408c-7.616-3.944-10.584-13.304-6.64-20.936c 2.76-5.32, 8.168-8.384, 13.8-8.384
|
1268 |
c 2.4,0, 4.832,0.56, 7.136,1.744c 52.136,26.968, 90.624,72.64, 108.408,128.56C 489.008,207.968, 483.936,267.48, 456.952,319.592z" />
|
1269 |
+
<glyph unicode="" d="M 255.64,480C 127.736,480, 23.68,375.936, 23.68,248.032
|
1270 |
c0-120.224, 92.648-220.768, 211.784-231.048l-45.928-23.28c-5.672-3.112-9.048-10.112-5.688-15.64l 1.624-4.2
|
1271 |
c 3.376-5.528, 10.688-7.488, 16.344-4.392l 76.656,39.248c 0.096,0.064, 0.2,0.048, 0.296,0.112l 5.144,2.816
|
1272 |
c 2.84,1.56, 4.72,4.112, 5.472,6.952c 0.784,2.84, 0.424,6-1.264,8.752l-3.048,5c-0.048,0.096-0.144,0.16-0.2,0.248
|
1274 |
c-0.152,0.008-0.288,0.064-0.432,0.072C 137.64,55.376, 55.68,143.032, 55.68,248.032C 55.68,358.296, 145.384,448, 255.64,448
|
1275 |
c 110.272,0, 200.48-89.704, 200.48-199.968c0-63.488-29.16-121.8-80-159.984c-7.064-5.312-8.488-15.344-3.184-22.408
|
1276 |
c 5.312-7.080, 15.344-8.488, 22.408-3.184c 58.968,44.296, 92.784,111.936, 92.784,185.576C 488.12,375.936, 383.552,480, 255.64,480z" />
|
1277 |
+
<glyph unicode="" d="M 480.248,272.472l-41.064,9.112c-3.2,10.24-7.392,20.040-12.2,29.464l 22.216,37.016c 8.296,13.256, 12.488,32.76,0,45.256l-22.64,22.624
|
1278 |
c-12.488,12.496-33.576,10.248-46.312,1.416l-36.016-22.944c-9.344,4.848-19.112,9-29.264,12.28l-9.216,41.56
|
1279 |
C 303,463.496, 289.672,480, 272,480l-32,0 c-17.672,0-28.504-16.752-32-32l-10.264-41.064c-10.84-3.456-21.248-7.872-31.168-13.104l-36.92,23.512
|
1280 |
c-12.728,8.832-33.824,11.080-46.312-1.416l-22.632-22.624c-12.496-12.504-8.304-32,0-45.256l 23.376-38.96
|
1298 |
c 3.576-0.664, 6.36-2.728, 6.952-3.848L 480.016,208.976z M 256.216,320.16c-53.136,0-96.368-43.144-96.368-96.16
|
1299 |
c0-53.008, 43.232-96.152, 96.368-96.152c 53.136,0, 96.368,43.144, 96.368,96.152C 352.584,277.016, 309.352,320.16, 256.216,320.16z M 256,160
|
1300 |
c-35.288,0-64,28.712-64,64c0,35.296, 28.712,64, 64,64c 35.296,0, 64-28.704, 64-64C 320,188.712, 291.288,160, 256,160z" />
|
1301 |
+
<glyph unicode="" d="M 256,441.256l 58.472-121.264l 10.264-21.28l 23.392-3.488l 132.912-19.744L 384.112,178.808l-16.28-16.248l 3.808-22.656l 22.64-135.080
|
1302 |
l-117.136,63l-21.168,11.392l-21.168-11.392L 117.68,4.792l 22.648,135.112l 3.792,22.656l-16.28,16.248L 30.952,275.496l 132.912,19.744
|
1303 |
l 23.384,3.488l 10.272,21.272L 256,441.256 M 255.992,472.224c-14.328,0-27.392-8.088-33.488-20.728l-57.952-120.32L 31.2,311.344
|
1304 |
c-13.696-2.048-25.072-11.4-29.488-24.192c-4.408-12.832-1.072-26.952, 8.6-36.576l 97.704-97.6l-22.664-135.328
|
1306 |
l 116.256-62.592c 5.592-2.992, 11.752-4.488, 17.888-4.488c 7.48,0, 14.952,2.208, 21.328,6.576c 11.552,7.976, 17.456,21.648, 15.16,35.288
|
1307 |
l-22.672,135.328l 97.752,97.6c 9.672,9.624, 12.984,23.752, 8.576,36.576c-4.424,12.808-15.8,22.16-29.488,24.192l-133.328,19.832l-57.984,120.32
|
1308 |
C 283.424,464.152, 270.352,472.224, 255.992,472.224L 255.992,472.224z" />
|
1309 |
+
<glyph unicode="" d="M 311.848,480.112c-110.456,0-200-89.536-200-200c0-49.256, 17.84-94.336, 47.368-129.184
|
1310 |
l-63.656-64.048l-67.632,68.272c-6.24,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 67.696-68.344l-68.176-68.592
|
1311 |
c-6.248-6.248-6.248-16.392,0-22.624c 6.24-6.248, 16.376-6.248, 22.624,0l 68.072,68.496l 68.232-68.88c 6.248-6.248, 16.376-6.248, 22.624,0
|
1312 |
s 6.248,16.376,0,22.624l-68.304,68.952l 63.704,64.096c 34.976-29.984, 80.384-48.144, 130.064-48.144c 110.456,0, 200,89.544, 200,200
|
1313 |
C 511.848,390.576, 422.304,480.112, 311.848,480.112z M 311.848,111.84c-92.928,0-168.264,75.344-168.264,168.272
|
1314 |
c0,92.928, 75.336,168.264, 168.264,168.264s 168.264-75.336, 168.264-168.264C 480.12,187.184, 404.784,111.84, 311.848,111.84z" />
|
1315 |
+
<glyph unicode="" d="M 511.648,468.672c 0.072,3.24-0.688,6.144-2.792,8.216
|
1316 |
c-2.072,2.088-4.976,3.36-8.2,3.264l-5.848-0.136c-0.112,0-0.192-0.040-0.32-0.056L 347.736,480.472
|
1317 |
c-6.464-0.144-11.808-5.496-11.96-11.96L 335.76,460.296c 0.984-7.624, 6.976-12.080, 13.44-11.936l 107.608-0.216L 328.736,320.848
|
1318 |
c-34.744,29.12-79.504,46.68-128.384,46.68c-110.464,0-200-89.536-200-200c0-110.456, 89.536-200, 200-200c 110.456,0, 200,89.544, 200,200
|
1320 |
c 6.48,0.152, 11.824,4, 11.96,10.464l 0.336,147.504c0,0.12-0.44,0.2-0.44,0.312L 511.648,468.672z M 368.616,167.528
|
1321 |
c0-92.928-75.336-168.264-168.272-168.264c-92.928,0-168.264,75.336-168.264,168.264s 75.336,168.264, 168.264,168.264
|
1322 |
C 293.28,335.8, 368.616,260.464, 368.616,167.528z" />
|
1323 |
+
<glyph unicode="" d="M 496,240l-48.72,0 C 439.584,333.264, 365.256,407.52, 272,415.232L 272,464 c0,8.832-7.168,16-16,16
|
1324 |
s-16-7.168-16-16l0-48.768 C 146.752,407.52, 72.416,333.264, 64.712,240L 16,240 c-8.832,0-16-7.168-16-16s 7.168-16, 16-16l 48.712,0
|
1325 |
C 72.416,114.744, 146.752,40.48, 240,32.768L 240-16 c0-8.832, 7.168-16, 16-16s 16,7.168, 16,16l0,48.768 C 365.256,40.48, 439.584,114.744, 447.28,208L 496,208
|
1326 |
c 8.832,0, 16,7.168, 16,16S 504.832,240, 496,240z M 240,383.208L 240,240 L 96.776,240 C 104.28,315.6, 164.4,375.704, 240,383.208z M 96.776,208L 240,208 l0-143.208
|
1327 |
C 164.4,72.296, 104.28,132.4, 96.776,208z M 272,64.792L 272,208 l 143.224,0 C 407.72,132.4, 347.6,72.296, 272,64.792z M 272,240L 272,383.208
|
1328 |
C 347.6,375.704, 407.72,315.6, 415.224,240L 272,240 z" />
|
1329 |
+
<glyph unicode="" d="M 327.384,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 150.384,320.144l-53.312-0.040c-27.256,0-49.44-19.328-49.44-43.2
|
1330 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1331 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 335.872,432.92 C 335.864,438.832, 332.6,444.264, 327.384,447.048z
|
1332 |
M 303.864,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 79.632,277.024
|
1334 |
c-8.856,1.464-16.968-4.432-18.424-13.152c-1.456-8.712, 4.44-16.96, 13.144-18.416c 25.16-4.2, 42.736-26.152, 42.736-53.376
|
1335 |
c0-25.92-18.184-48.344-43.248-53.344c-8.672-1.72-14.296-10.144-12.56-18.816c 1.512-7.608, 8.184-12.872, 15.672-12.872
|
1336 |
c 1.032,0, 2.096,0.096, 3.144,0.312c 39.984,7.952, 69,43.592, 69,84.72C 464.368,263.752, 435.152,299.472, 394.912,306.184z" />
|
1337 |
+
<glyph unicode="" d="M 287.248,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 110.248,320.144l-53.312-0.040c-27.256,0-49.44-19.328-49.44-43.2
|
1338 |
l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376c 2.688-1.816, 5.816-2.736, 8.952-2.736
|
1339 |
c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 295.736,432.92 C 295.736,438.832, 292.472,444.264, 287.248,447.048z
|
1340 |
M 263.736,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032c-10.272,0-17.44,5.856-17.44,11.232L 39.504,277.024
|
1346 |
c 48.264-18.008, 80.688-64.952, 80.688-116.816c0-51.888-32.424-98.92-80.656-117c-8.28-3.112-12.472-12.328-9.376-20.592
|
1347 |
c 2.408-6.44, 8.504-10.392, 14.984-10.392c 1.872,0, 3.768,0.328, 5.608,1.016c 60.672,22.752, 101.44,81.816, 101.44,146.968
|
1348 |
C 504.504,286.4, 463.704,345.392, 403,368.048z" />
|
1349 |
+
<glyph unicode="" d="M 287.768,447.048c-5.216,2.776-11.544,2.464-16.456-0.848L 110.76,320.144l-53.312-0.040
|
1350 |
c-27.256,0-49.44-19.328-49.44-43.2l 0.856-105.568c0-23.768, 22.176-43.112, 49.432-43.112l 53.296-0.032l 159.696-126.376
|
1351 |
c 2.688-1.816, 5.816-2.736, 8.952-2.736c 2.576,0, 5.16,0.624, 7.504,1.872c 5.232,2.768, 8.504,8.2, 8.504,14.128L 296.248,432.92
|
1352 |
C 296.248,438.832, 292.984,444.264, 287.768,447.048z M 264.248,45.184l-138.8,112.264c-2.64,1.784-5.76,2.736-8.944,2.736l-58.192,0.032
|
1354 |
l 139.664,112L 264.248,45.184 z M 447,223.744l 52.296,52.92c 6.248,6.248, 6.248,16.376,0,22.624c-6.232,6.248-16.376,6.248-22.624,0l-52.168-52.784
|
1355 |
l-52.168,52.784c-6.232,6.248-16.376,6.248-22.624,0s-6.248-16.376,0-22.624l 52.296-52.92l-51.8-52.408c-6.232-6.24-6.248-16.376,0-22.624
|
1356 |
s 16.392-6.248, 22.64,0l 51.656,52.272l 51.656-52.272c 6.248-6.248, 16.376-6.248, 22.624,0s 6.248,16.384,0,22.624L 447,223.744z" />
|
1357 |
+
<glyph unicode="" d="M 373,62.36L 272.264,118.16c 37.44,29.456, 47.608,87.344, 47.608,119.8l0,67.56 c0,44.736-59.44,94.56-119.144,94.56
|
1358 |
c-59.688,0-120.704-49.832-120.704-94.56l0-67.56 c0-29.512, 12.488-89.216, 50.312-119.544L 27,62.36c0,0-27-12.032-27-27.032l0-40.544
|
1359 |
c0-14.92, 12.112-27.032, 27-27.032l 346,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.544 C 400.016,51.232, 373,62.36, 373,62.36z
|
1360 |
M 368.016-0.248L 32-0.248 l0,28.608 c 2.296,1.672, 5.504,3.608, 8.032,4.768c 0.752,0.344, 1.504,0.704, 2.216,1.112l 103.344,56.048
|
1367 |
c-8.456-6.656-13-17.112-12.112-27.832c 0.904-10.72, 7.128-20.264, 16.56-25.424l 102.232-55.8c 0.888-0.488, 2.016-1.016, 2.952-1.424
|
1368 |
c 2.36-1, 5.264-2.672, 7.392-4.144l0-28.456 l-64.592,0 c 9.752-7.36, 12.704-17.888, 16.488-32l 53.096,0 c 14.904,0, 27.016,12.112, 27.016,27.032l0,40.048
|
1369 |
C 512,130.904, 484.984,142.032, 484.984,142.032z" />
|
1370 |
+
<glyph unicode=" " horiz-adv-x="256" />
|
1371 |
</font>
|
1372 |
</defs>
|
1373 |
</svg>
|
assets/global/plugins/icons/icons-lte-ie7.js
CHANGED
@@ -169,21 +169,21 @@ window.onload = function () {
|
|
169 |
'icon-volume-2': '',
|
170 |
'icon-volume-off': ''
|
171 |
},
|
172 |
-
|
173 |
-
|
174 |
for (i = 0; ; i += 1) {
|
175 |
el = els[i];
|
176 |
if (!el) {
|
177 |
-
|
178 |
}
|
179 |
attr = el.getAttribute('data-icon');
|
180 |
if (attr) {
|
181 |
-
|
182 |
}
|
183 |
c = el.className;
|
184 |
c = c.match(/icon-[^\s'"]+/);
|
185 |
if (c && icons[c[0]]) {
|
186 |
-
|
187 |
}
|
188 |
}
|
189 |
};
|
169 |
'icon-volume-2': '',
|
170 |
'icon-volume-off': ''
|
171 |
},
|
172 |
+
els = document.getElementsByTagName('*'),
|
173 |
+
i, attr, c, el;
|
174 |
for (i = 0; ; i += 1) {
|
175 |
el = els[i];
|
176 |
if (!el) {
|
177 |
+
break;
|
178 |
}
|
179 |
attr = el.getAttribute('data-icon');
|
180 |
if (attr) {
|
181 |
+
addIcon(el, attr);
|
182 |
}
|
183 |
c = el.className;
|
184 |
c = c.match(/icon-[^\s'"]+/);
|
185 |
if (c && icons[c[0]]) {
|
186 |
+
addIcon(el, icons[c[0]]);
|
187 |
}
|
188 |
}
|
189 |
};
|
assets/global/plugins/toastr/toastr.css
CHANGED
@@ -140,15 +140,15 @@ button.toast-close-button
|
|
140 |
#toast-container>.toast-custom-error
|
141 |
{
|
142 |
/*background-image:
|
143 |
-
|
144 |
-
|
145 |
background-image: url("../../img/error.png") !important;
|
146 |
}
|
147 |
#toast-container>.toast-custom-success
|
148 |
{
|
149 |
/*background-image:
|
150 |
-
|
151 |
-
|
152 |
background-image: url("../../img/success.png") !important
|
153 |
}
|
154 |
#toast-container>.toast-warning
|
140 |
#toast-container>.toast-custom-error
|
141 |
{
|
142 |
/*background-image:
|
143 |
+
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=")
|
144 |
+
!important*/
|
145 |
background-image: url("../../img/error.png") !important;
|
146 |
}
|
147 |
#toast-container>.toast-custom-success
|
148 |
{
|
149 |
/*background-image:
|
150 |
+
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==")
|
151 |
+
!important*/
|
152 |
background-image: url("../../img/success.png") !important
|
153 |
}
|
154 |
#toast-container>.toast-warning
|
assets/global/plugins/toastr/toastr.js
CHANGED
@@ -2,344 +2,344 @@
|
|
2 |
(function (define) {
|
3 |
define(['jquery'], function ($) {
|
4 |
return (function () {
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
|
344 |
})();
|
345 |
});
|
2 |
(function (define) {
|
3 |
define(['jquery'], function ($) {
|
4 |
return (function () {
|
5 |
+
var $container;
|
6 |
+
var listener;
|
7 |
+
var toastId = 0;
|
8 |
+
var toastType = {
|
9 |
+
error: 'error',
|
10 |
+
info: 'info',
|
11 |
+
success: 'success',
|
12 |
+
warning: 'warning'
|
13 |
+
};
|
14 |
+
|
15 |
+
var toastr = {
|
16 |
+
clear: clear,
|
17 |
+
remove: remove,
|
18 |
+
error: error,
|
19 |
+
getContainer: getContainer,
|
20 |
+
info: info,
|
21 |
+
options: {},
|
22 |
+
subscribe: subscribe,
|
23 |
+
success: success,
|
24 |
+
version: '2.1.0',
|
25 |
+
warning: warning
|
26 |
+
};
|
27 |
+
|
28 |
+
var previousToast;
|
29 |
+
|
30 |
+
return toastr;
|
31 |
+
|
32 |
+
//#region Accessible Methods
|
33 |
+
function error(message, title, optionsOverride) {
|
34 |
+
return notify({
|
35 |
+
type: toastType.error,
|
36 |
+
iconClass: getOptions().iconClasses.error,
|
37 |
+
message: message,
|
38 |
+
optionsOverride: optionsOverride,
|
39 |
+
title: title
|
40 |
+
});
|
41 |
+
}
|
42 |
+
|
43 |
+
function getContainer(options, create) {
|
44 |
+
if (!options) {
|
45 |
+
options = getOptions();
|
46 |
+
}
|
47 |
+
$container = $('#' + options.containerId);
|
48 |
+
if ($container.length) {
|
49 |
+
return $container;
|
50 |
+
}
|
51 |
+
if (create) {
|
52 |
+
$container = createContainer(options);
|
53 |
+
}
|
54 |
+
return $container;
|
55 |
+
}
|
56 |
+
|
57 |
+
function info(message, title, optionsOverride) {
|
58 |
+
return notify({
|
59 |
+
type: toastType.info,
|
60 |
+
iconClass: getOptions().iconClasses.info,
|
61 |
+
message: message,
|
62 |
+
optionsOverride: optionsOverride,
|
63 |
+
title: title
|
64 |
+
});
|
65 |
+
}
|
66 |
+
|
67 |
+
function subscribe(callback) {
|
68 |
+
listener = callback;
|
69 |
+
}
|
70 |
+
|
71 |
+
function success(message, title, optionsOverride) {
|
72 |
+
return notify({
|
73 |
+
type: toastType.success,
|
74 |
+
iconClass: getOptions().iconClasses.success,
|
75 |
+
message: message,
|
76 |
+
optionsOverride: optionsOverride,
|
77 |
+
title: title
|
78 |
+
});
|
79 |
+
}
|
80 |
+
|
81 |
+
function warning(message, title, optionsOverride) {
|
82 |
+
return notify({
|
83 |
+
type: toastType.warning,
|
84 |
+
iconClass: getOptions().iconClasses.warning,
|
85 |
+
message: message,
|
86 |
+
optionsOverride: optionsOverride,
|
87 |
+
title: title
|
88 |
+
});
|
89 |
+
}
|
90 |
+
|
91 |
+
function clear($toastElement) {
|
92 |
+
var options = getOptions();
|
93 |
+
if (!$container) {
|
94 |
+
getContainer(options);
|
95 |
+
}
|
96 |
+
if (!clearToast($toastElement, options)) {
|
97 |
+
clearContainer(options);
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
function remove($toastElement) {
|
102 |
+
var options = getOptions();
|
103 |
+
if (!$container) {
|
104 |
+
getContainer(options);
|
105 |
+
}
|
106 |
+
if ($toastElement && $(':focus', $toastElement).length === 0) {
|
107 |
+
removeToast($toastElement);
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
if ($container.children().length) {
|
111 |
+
$container.remove();
|
112 |
+
}
|
113 |
+
}
|
114 |
+
//#endregion
|
115 |
+
|
116 |
+
//#region Internal Methods
|
117 |
+
|
118 |
+
function clearContainer(options) {
|
119 |
+
var toastsToClear = $container.children();
|
120 |
+
for (var i = toastsToClear.length - 1; i >= 0; i--) {
|
121 |
+
clearToast($(toastsToClear[i]), options);
|
122 |
+
}
|
123 |
+
;
|
124 |
+
}
|
125 |
+
|
126 |
+
function clearToast($toastElement, options) {
|
127 |
+
if ($toastElement && $(':focus', $toastElement).length === 0) {
|
128 |
+
$toastElement[options.hideMethod]({
|
129 |
+
duration: options.hideDuration,
|
130 |
+
easing: options.hideEasing,
|
131 |
+
complete: function () {
|
132 |
+
removeToast($toastElement);
|
133 |
+
}
|
134 |
+
});
|
135 |
+
return true;
|
136 |
+
}
|
137 |
+
return false;
|
138 |
+
}
|
139 |
+
|
140 |
+
function createContainer(options) {
|
141 |
+
$container = $('<div/>')
|
142 |
+
.attr('id', options.containerId)
|
143 |
+
.addClass(options.positionClass)
|
144 |
+
.attr('aria-live', 'polite')
|
145 |
+
.attr('role', 'alert');
|
146 |
+
|
147 |
+
$container.appendTo($(options.target));
|
148 |
+
return $container;
|
149 |
+
}
|
150 |
+
|
151 |
+
function getDefaults() {
|
152 |
+
return {
|
153 |
+
tapToDismiss: true,
|
154 |
+
toastClass: 'toast',
|
155 |
+
containerId: 'toast-container',
|
156 |
+
debug: false,
|
157 |
+
|
158 |
+
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
|
159 |
+
showDuration: 300,
|
160 |
+
showEasing: 'swing', //swing and linear are built into jQuery
|
161 |
+
onShown: undefined,
|
162 |
+
hideMethod: 'fadeOut',
|
163 |
+
hideDuration: 1000,
|
164 |
+
hideEasing: 'swing',
|
165 |
+
onHidden: undefined,
|
166 |
+
|
167 |
+
extendedTimeOut: 1000,
|
168 |
+
iconClasses: {
|
169 |
+
error: 'toast-custom-error',
|
170 |
+
info: 'toast-info',
|
171 |
+
success: 'toast-custom-success',
|
172 |
+
warning: 'toast-warning'
|
173 |
+
},
|
174 |
+
iconClass: 'toast-info',
|
175 |
+
positionClass: 'toast-top-right',
|
176 |
+
timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
|
177 |
+
titleClass: 'toast-title',
|
178 |
+
messageClass: 'toast-message',
|
179 |
+
target: 'body',
|
180 |
+
closeHtml: '<button>×</button>',
|
181 |
+
newestOnTop: true,
|
182 |
+
preventDuplicates: false
|
183 |
+
};
|
184 |
+
}
|
185 |
+
|
186 |
+
function publish(args) {
|
187 |
+
if (!listener) {
|
188 |
+
return;
|
189 |
+
}
|
190 |
+
listener(args);
|
191 |
+
}
|
192 |
+
|
193 |
+
function notify(map) {
|
194 |
+
var options = getOptions(),
|
195 |
+
iconClass = map.iconClass || options.iconClass;
|
196 |
+
|
197 |
+
if (options.preventDuplicates) {
|
198 |
+
if (map.message === previousToast) {
|
199 |
+
return;
|
200 |
+
} else {
|
201 |
+
previousToast = map.message;
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
+
if (typeof (map.optionsOverride) !== 'undefined') {
|
206 |
+
options = $.extend(options, map.optionsOverride);
|
207 |
+
iconClass = map.optionsOverride.iconClass || iconClass;
|
208 |
+
}
|
209 |
+
|
210 |
+
toastId++;
|
211 |
+
|
212 |
+
$container = getContainer(options, true);
|
213 |
+
var intervalId = null,
|
214 |
+
$toastElement = $('<div/>'),
|
215 |
+
$titleElement = $('<div/>'),
|
216 |
+
$messageElement = $('<div/>'),
|
217 |
+
$closeElement = $(options.closeHtml),
|
218 |
+
response = {
|
219 |
+
toastId: toastId,
|
220 |
+
state: 'visible',
|
221 |
+
startTime: new Date(),
|
222 |
+
options: options,
|
223 |
+
map: map
|
224 |
+
};
|
225 |
+
|
226 |
+
if (map.iconClass) {
|
227 |
+
$toastElement.addClass(options.toastClass).addClass(iconClass);
|
228 |
+
}
|
229 |
+
|
230 |
+
if (map.title) {
|
231 |
+
$titleElement.append(map.title).addClass(options.titleClass);
|
232 |
+
$toastElement.append($titleElement);
|
233 |
+
}
|
234 |
+
|
235 |
+
if (map.message) {
|
236 |
+
$messageElement.append(map.message).addClass(options.messageClass);
|
237 |
+
$toastElement.append($messageElement);
|
238 |
+
}
|
239 |
+
|
240 |
+
if (options.closeButton) {
|
241 |
+
$closeElement.addClass('toast-close-button').attr("role", "button");
|
242 |
+
$toastElement.prepend($closeElement);
|
243 |
+
}
|
244 |
+
|
245 |
+
$toastElement.hide();
|
246 |
+
if (options.newestOnTop) {
|
247 |
+
$container.prepend($toastElement);
|
248 |
+
} else {
|
249 |
+
$container.append($toastElement);
|
250 |
+
}
|
251 |
+
|
252 |
+
|
253 |
+
$toastElement[options.showMethod](
|
254 |
+
{duration: options.showDuration, easing: options.showEasing, complete: options.onShown}
|
255 |
+
);
|
256 |
+
|
257 |
+
if (options.timeOut > 0) {
|
258 |
+
intervalId = setTimeout(hideToast, options.timeOut);
|
259 |
+
}
|
260 |
+
|
261 |
+
$toastElement.hover(stickAround, delayedHideToast);
|
262 |
+
if (!options.onclick && options.tapToDismiss) {
|
263 |
+
$toastElement.click(hideToast);
|
264 |
+
}
|
265 |
+
|
266 |
+
if (options.closeButton && $closeElement) {
|
267 |
+
$closeElement.click(function (event) {
|
268 |
+
if (event.stopPropagation) {
|
269 |
+
event.stopPropagation();
|
270 |
+
} else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {
|
271 |
+
event.cancelBubble = true;
|
272 |
+
}
|
273 |
+
hideToast(true);
|
274 |
+
});
|
275 |
+
}
|
276 |
+
|
277 |
+
if (options.onclick) {
|
278 |
+
$toastElement.click(function () {
|
279 |
+
options.onclick();
|
280 |
+
hideToast();
|
281 |
+
});
|
282 |
+
}
|
283 |
+
|
284 |
+
publish(response);
|
285 |
+
|
286 |
+
if (options.debug && console) {
|
287 |
+
console.log(response);
|
288 |
+
}
|
289 |
+
|
290 |
+
return $toastElement;
|
291 |
+
|
292 |
+
function hideToast(override) {
|
293 |
+
if ($(':focus', $toastElement).length && !override) {
|
294 |
+
return;
|
295 |
+
}
|
296 |
+
return $toastElement[options.hideMethod]({
|
297 |
+
duration: options.hideDuration,
|
298 |
+
easing: options.hideEasing,
|
299 |
+
complete: function () {
|
300 |
+
removeToast($toastElement);
|
301 |
+
if (options.onHidden && response.state !== 'hidden') {
|
302 |
+
options.onHidden();
|
303 |
+
}
|
304 |
+
response.state = 'hidden';
|
305 |
+
response.endTime = new Date();
|
306 |
+
publish(response);
|
307 |
+
}
|
308 |
+
});
|
309 |
+
}
|
310 |
+
|
311 |
+
function delayedHideToast() {
|
312 |
+
if (options.timeOut > 0 || options.extendedTimeOut > 0) {
|
313 |
+
intervalId = setTimeout(hideToast, options.extendedTimeOut);
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
function stickAround() {
|
318 |
+
clearTimeout(intervalId);
|
319 |
+
$toastElement.stop(true, true)[options.showMethod](
|
320 |
+
{duration: options.showDuration, easing: options.showEasing}
|
321 |
+
);
|
322 |
+
}
|
323 |
+
}
|
324 |
+
|
325 |
+
function getOptions() {
|
326 |
+
return $.extend({}, getDefaults(), toastr.options);
|
327 |
+
}
|
328 |
+
|
329 |
+
function removeToast($toastElement) {
|
330 |
+
if (!$container) {
|
331 |
+
$container = getContainer();
|
332 |
+
}
|
333 |
+
if ($toastElement.is(':visible')) {
|
334 |
+
return;
|
335 |
+
}
|
336 |
+
$toastElement.remove();
|
337 |
+
$toastElement = null;
|
338 |
+
if ($container.children().length === 0) {
|
339 |
+
$container.remove();
|
340 |
+
}
|
341 |
+
}
|
342 |
+
//#endregion
|
343 |
|
344 |
})();
|
345 |
});
|
assets/global/plugins/validation/jquery.validate.js
CHANGED
@@ -15,195 +15,195 @@
|
|
15 |
$.extend($.fn, {
|
16 |
validate: function (options) {
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
},
|
106 |
valid: function () {
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
},
|
125 |
rules: function (command, argument) {
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
}
|
193 |
});
|
194 |
|
195 |
// Custom selectors
|
196 |
$.extend($.expr[ ":" ], {
|
197 |
blank: function (a) {
|
198 |
-
|
199 |
},
|
200 |
filled: function (a) {
|
201 |
-
|
202 |
-
|
203 |
},
|
204 |
|
205 |
unchecked: function (a) {
|
206 |
-
|
207 |
}
|
208 |
});
|
209 |
|
@@ -216,25 +216,25 @@
|
|
216 |
|
217 |
$.validator.format = function (source, params) {
|
218 |
if (arguments.length === 1) {
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
}
|
225 |
if (params === undefined) {
|
226 |
-
|
227 |
}
|
228 |
if (arguments.length > 2 && params.constructor !== Array) {
|
229 |
-
|
230 |
}
|
231 |
if (params.constructor !== Array) {
|
232 |
-
|
233 |
}
|
234 |
$.each(params, function (i, n) {
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
});
|
239 |
return source;
|
240 |
};
|
@@ -242,1093 +242,1093 @@
|
|
242 |
$.extend($.validator, {
|
243 |
|
244 |
defaults: {
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
},
|
311 |
setDefaults: function (settings) {
|
312 |
-
|
313 |
},
|
314 |
|
315 |
messages: {
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
},
|
333 |
|
334 |
autoCreateRanges: false,
|
335 |
|
336 |
prototype: {
|
337 |
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
},
|
1003 |
classRuleSettings: {
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
},
|
1013 |
|
1014 |
addClassRules: function (className, rules) {
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
},
|
1021 |
|
1022 |
classRules: function (element) {
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
},
|
1035 |
|
1036 |
normalizeAttributeRule: function (rules, type, method, value) {
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
},
|
1050 |
|
1051 |
attributeRules: function (element) {
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
},
|
1075 |
|
1076 |
dataRules: function (element) {
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
},
|
1088 |
|
1089 |
staticRules: function (element) {
|
1090 |
-
|
1091 |
-
|
1092 |
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
},
|
1098 |
|
1099 |
normalizeRules: function (rules, element) {
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
},
|
1156 |
normalizeRule: function (data) {
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
},
|
1166 |
addMethod: function (name, method, message) {
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
},
|
1173 |
methods: {
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
}
|
1306 |
});
|
1307 |
var pendingRequests = {},
|
1308 |
-
|
1309 |
if ($.ajaxPrefilter) {
|
1310 |
$.ajaxPrefilter(function (settings, _, xhr) {
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
});
|
1319 |
} else {
|
1320 |
ajax = $.ajax;
|
1321 |
$.ajax = function (settings) {
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
};
|
1333 |
}
|
1334 |
}));
|
15 |
$.extend($.fn, {
|
16 |
validate: function (options) {
|
17 |
|
18 |
+
// If nothing is selected, return nothing; can't chain anyway
|
19 |
+
if (!this.length) {
|
20 |
+
if (options && options.debug && window.console) {
|
21 |
+
console.warn("Nothing selected, can't validate, returning nothing.");
|
22 |
+
}
|
23 |
+
return;
|
24 |
+
}
|
25 |
+
|
26 |
+
// Check if a validator for this form was already created
|
27 |
+
var validator = $.data(this[ 0 ], "validator");
|
28 |
+
if (validator) {
|
29 |
+
return validator;
|
30 |
+
}
|
31 |
+
|
32 |
+
// Add novalidate tag if HTML5.
|
33 |
+
this.attr("novalidate", "novalidate");
|
34 |
+
|
35 |
+
validator = new $.validator(options, this[ 0 ]);
|
36 |
+
$.data(this[ 0 ], "validator", validator);
|
37 |
+
|
38 |
+
if (validator.settings.onsubmit) {
|
39 |
+
|
40 |
+
this.on("click.validate", ":submit", function (event) {
|
41 |
+
if (validator.settings.submitHandler) {
|
42 |
+
validator.submitButton = event.target;
|
43 |
+
}
|
44 |
+
|
45 |
+
// Allow suppressing validation by adding a cancel class to the submit button
|
46 |
+
if ($(this).hasClass("cancel")) {
|
47 |
+
validator.cancelSubmit = true;
|
48 |
+
}
|
49 |
+
|
50 |
+
// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
|
51 |
+
if ($(this).attr("formnovalidate") !== undefined) {
|
52 |
+
validator.cancelSubmit = true;
|
53 |
+
}
|
54 |
+
});
|
55 |
+
|
56 |
+
// Validate the form on submit
|
57 |
+
this.on("submit.validate", function (event) {
|
58 |
+
if (validator.settings.debug) {
|
59 |
+
|
60 |
+
// Prevent form submit to be able to see console output
|
61 |
+
event.preventDefault();
|
62 |
+
}
|
63 |
+
function handle() {
|
64 |
+
var hidden, result;
|
65 |
+
if (validator.settings.submitHandler) {
|
66 |
+
if (validator.submitButton) {
|
67 |
+
|
68 |
+
// Insert a hidden input as a replacement for the missing submit button
|
69 |
+
hidden = $("<input type='hidden'/>")
|
70 |
+
.attr("name", validator.submitButton.name)
|
71 |
+
.val($(validator.submitButton).val())
|
72 |
+
.appendTo(validator.currentForm);
|
73 |
+
}
|
74 |
+
result = validator.settings.submitHandler.call(validator, validator.currentForm, event);
|
75 |
+
if (validator.submitButton) {
|
76 |
+
|
77 |
+
// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
|
78 |
+
hidden.remove();
|
79 |
+
}
|
80 |
+
if (result !== undefined) {
|
81 |
+
return result;
|
82 |
+
}
|
83 |
+
return false;
|
84 |
+
}
|
85 |
+
return true;
|
86 |
+
}
|
87 |
+
if (validator.cancelSubmit) {
|
88 |
+
validator.cancelSubmit = false;
|
89 |
+
return handle();
|
90 |
+
}
|
91 |
+
if (validator.form()) {
|
92 |
+
if (validator.pendingRequest) {
|
93 |
+
validator.formSubmitted = true;
|
94 |
+
return false;
|
95 |
+
}
|
96 |
+
return handle();
|
97 |
+
} else {
|
98 |
+
validator.focusInvalid();
|
99 |
+
return false;
|
100 |
+
}
|
101 |
+
});
|
102 |
+
}
|
103 |
+
|
104 |
+
return validator;
|
105 |
},
|
106 |
valid: function () {
|
107 |
+
var valid, validator, errorList;
|
108 |
+
|
109 |
+
if ($(this[ 0 ]).is("form")) {
|
110 |
+
valid = this.validate().form();
|
111 |
+
} else {
|
112 |
+
errorList = [];
|
113 |
+
valid = true;
|
114 |
+
validator = $(this[ 0 ].form).validate();
|
115 |
+
this.each(function () {
|
116 |
+
valid = validator.element(this) && valid;
|
117 |
+
if (!valid) {
|
118 |
+
errorList = errorList.concat(validator.errorList);
|
119 |
+
}
|
120 |
+
});
|
121 |
+
validator.errorList = errorList;
|
122 |
+
}
|
123 |
+
return valid;
|
124 |
},
|
125 |
rules: function (command, argument) {
|
126 |
|
127 |
+
// If nothing is selected, return nothing; can't chain anyway
|
128 |
+
if (!this.length) {
|
129 |
+
return;
|
130 |
+
}
|
131 |
+
|
132 |
+
var element = this[ 0 ],
|
133 |
+
settings, staticRules, existingRules, data, param, filtered;
|
134 |
+
|
135 |
+
if (command) {
|
136 |
+
settings = $.data(element.form, "validator").settings;
|
137 |
+
staticRules = settings.rules;
|
138 |
+
existingRules = $.validator.staticRules(element);
|
139 |
+
switch (command) {
|
140 |
+
case "add":
|
141 |
+
$.extend(existingRules, $.validator.normalizeRule(argument));
|
142 |
+
|
143 |
+
// Remove messages from rules, but allow them to be set separately
|
144 |
+
delete existingRules.messages;
|
145 |
+
staticRules[ element.name ] = existingRules;
|
146 |
+
if (argument.messages) {
|
147 |
+
settings.messages[ element.name ] = $.extend(settings.messages[ element.name ], argument.messages);
|
148 |
+
}
|
149 |
+
break;
|
150 |
+
case "remove":
|
151 |
+
if (!argument) {
|
152 |
+
delete staticRules[ element.name ];
|
153 |
+
return existingRules;
|
154 |
+
}
|
155 |
+
filtered = {};
|
156 |
+
$.each(argument.split(/\s/), function (index, method) {
|
157 |
+
filtered[ method ] = existingRules[ method ];
|
158 |
+
delete existingRules[ method ];
|
159 |
+
if (method === "required") {
|
160 |
+
$(element).removeAttr("aria-required");
|
161 |
+
}
|
162 |
+
});
|
163 |
+
return filtered;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
data = $.validator.normalizeRules(
|
168 |
+
$.extend(
|
169 |
+
{},
|
170 |
+
$.validator.classRules(element),
|
171 |
+
$.validator.attributeRules(element),
|
172 |
+
$.validator.dataRules(element),
|
173 |
+
$.validator.staticRules(element)
|
174 |
+
), element);
|
175 |
+
|
176 |
+
// Make sure required is at front
|
177 |
+
if (data.required) {
|
178 |
+
param = data.required;
|
179 |
+
delete data.required;
|
180 |
+
data = $.extend({required: param}, data);
|
181 |
+
$(element).attr("aria-required", "true");
|
182 |
+
}
|
183 |
+
|
184 |
+
// Make sure remote is at back
|
185 |
+
if (data.remote) {
|
186 |
+
param = data.remote;
|
187 |
+
delete data.remote;
|
188 |
+
data = $.extend(data, {remote: param});
|
189 |
+
}
|
190 |
+
|
191 |
+
return data;
|
192 |
}
|
193 |
});
|
194 |
|
195 |
// Custom selectors
|
196 |
$.extend($.expr[ ":" ], {
|
197 |
blank: function (a) {
|
198 |
+
return !$.trim("" + $(a).val());
|
199 |
},
|
200 |
filled: function (a) {
|
201 |
+
var val = $(a).val();
|
202 |
+
return val !== null && !!$.trim("" + val);
|
203 |
},
|
204 |
|
205 |
unchecked: function (a) {
|
206 |
+
return !$(a).prop("checked");
|
207 |
}
|
208 |
});
|
209 |
|
216 |
|
217 |
$.validator.format = function (source, params) {
|
218 |
if (arguments.length === 1) {
|
219 |
+
return function () {
|
220 |
+
var args = $.makeArray(arguments);
|
221 |
+
args.unshift(source);
|
222 |
+
return $.validator.format.apply(this, args);
|
223 |
+
};
|
224 |
}
|
225 |
if (params === undefined) {
|
226 |
+
return source;
|
227 |
}
|
228 |
if (arguments.length > 2 && params.constructor !== Array) {
|
229 |
+
params = $.makeArray(arguments).slice(1);
|
230 |
}
|
231 |
if (params.constructor !== Array) {
|
232 |
+
params = [params];
|
233 |
}
|
234 |
$.each(params, function (i, n) {
|
235 |
+
source = source.replace(new RegExp("\\{" + i + "\\}", "g"), function () {
|
236 |
+
return n;
|
237 |
+
});
|
238 |
});
|
239 |
return source;
|
240 |
};
|
242 |
$.extend($.validator, {
|
243 |
|
244 |
defaults: {
|
245 |
+
messages: {},
|
246 |
+
groups: {},
|
247 |
+
rules: {},
|
248 |
+
errorClass: "error",
|
249 |
+
pendingClass: "pending",
|
250 |
+
validClass: "valid",
|
251 |
+
errorElement: "label",
|
252 |
+
focusCleanup: false,
|
253 |
+
focusInvalid: true,
|
254 |
+
errorContainer: $([]),
|
255 |
+
errorLabelContainer: $([]),
|
256 |
+
onsubmit: true,
|
257 |
+
ignore: ":hidden",
|
258 |
+
ignoreTitle: false,
|
259 |
+
onfocusin: function (element) {
|
260 |
+
this.lastActive = element;
|
261 |
+
if (this.settings.focusCleanup) {
|
262 |
+
if (this.settings.unhighlight) {
|
263 |
+
this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass);
|
264 |
+
}
|
265 |
+
this.hideThese(this.errorsFor(element));
|
266 |
+
}
|
267 |
+
},
|
268 |
+
onfocusout: function (element) {
|
269 |
+
if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
|
270 |
+
this.element(element);
|
271 |
+
}
|
272 |
+
},
|
273 |
+
onkeyup: function (element, event) {
|
274 |
+
var excludedKeys = [
|
275 |
+
16, 17, 18, 20, 35, 36, 37,
|
276 |
+
38, 39, 40, 45, 144, 225
|
277 |
+
];
|
278 |
+
|
279 |
+
if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1) {
|
280 |
+
return;
|
281 |
+
} else if (element.name in this.submitted || element.name in this.invalid) {
|
282 |
+
this.element(element);
|
283 |
+
}
|
284 |
+
},
|
285 |
+
onclick: function (element) {
|
286 |
+
|
287 |
+
// Click on selects, radiobuttons and checkboxes
|
288 |
+
if (element.name in this.submitted) {
|
289 |
+
this.element(element);
|
290 |
+
|
291 |
+
// Or option elements, check parent select in that case
|
292 |
+
} else if (element.parentNode.name in this.submitted) {
|
293 |
+
this.element(element.parentNode);
|
294 |
+
}
|
295 |
+
},
|
296 |
+
highlight: function (element, errorClass, validClass) {
|
297 |
+
if (element.type === "radio") {
|
298 |
+
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
|
299 |
+
} else {
|
300 |
+
$(element).addClass(errorClass).removeClass(validClass);
|
301 |
+
}
|
302 |
+
},
|
303 |
+
unhighlight: function (element, errorClass, validClass) {
|
304 |
+
if (element.type === "radio") {
|
305 |
+
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
|
306 |
+
} else {
|
307 |
+
$(element).removeClass(errorClass).addClass(validClass);
|
308 |
+
}
|
309 |
+
}
|
310 |
},
|
311 |
setDefaults: function (settings) {
|
312 |
+
$.extend($.validator.defaults, settings);
|
313 |
},
|
314 |
|
315 |
messages: {
|
316 |
+
required: "This field is required.",
|
317 |
+
remote: "Please fix this field.",
|
318 |
+
email: "Please enter a valid email address.",
|
319 |
+
url: "Please enter a valid URL.",
|
320 |
+
date: "Please enter a valid date.",
|
321 |
+
dateISO: "Please enter a valid date ( ISO ).",
|
322 |
+
number: "Please enter a valid number.",
|
323 |
+
digits: "Please enter only digits.",
|
324 |
+
equalTo: "Please enter the same value again.",
|
325 |
+
maxlength: $.validator.format("Please enter no more than {0} characters."),
|
326 |
+
minlength: $.validator.format("Please enter at least {0} characters."),
|
327 |
+
rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
|
328 |
+
range: $.validator.format("Please enter a value between {0} and {1}."),
|
329 |
+
max: $.validator.format("Please enter a value less than or equal to {0}."),
|
330 |
+
min: $.validator.format("Please enter a value greater than or equal to {0}."),
|
331 |
+
step: $.validator.format("Please enter a multiple of {0}.")
|
332 |
},
|
333 |
|
334 |
autoCreateRanges: false,
|
335 |
|
336 |
prototype: {
|
337 |
|
338 |
+
init: function () {
|
339 |
+
this.labelContainer = $(this.settings.errorLabelContainer);
|
340 |
+
this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
|
341 |
+
this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
|
342 |
+
this.submitted = {};
|
343 |
+
this.valueCache = {};
|
344 |
+
this.pendingRequest = 0;
|
345 |
+
this.pending = {};
|
346 |
+
this.invalid = {};
|
347 |
+
this.reset();
|
348 |
+
|
349 |
+
var groups = (this.groups = {}),
|
350 |
+
rules;
|
351 |
+
$.each(this.settings.groups, function (key, value) {
|
352 |
+
if (typeof value === "string") {
|
353 |
+
value = value.split(/\s/);
|
354 |
+
}
|
355 |
+
$.each(value, function (index, name) {
|
356 |
+
groups[ name ] = key;
|
357 |
+
});
|
358 |
+
});
|
359 |
+
rules = this.settings.rules;
|
360 |
+
$.each(rules, function (key, value) {
|
361 |
+
rules[ key ] = $.validator.normalizeRule(value);
|
362 |
+
});
|
363 |
+
|
364 |
+
function delegate(event) {
|
365 |
+
var validator = $.data(this.form, "validator"),
|
366 |
+
eventType = "on" + event.type.replace(/^validate/, ""),
|
367 |
+
settings = validator.settings;
|
368 |
+
if (settings[ eventType ] && !$(this).is(settings.ignore)) {
|
369 |
+
settings[ eventType ].call(validator, this, event);
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
$(this.currentForm)
|
374 |
+
.on("focusin.validate focusout.validate keyup.validate",
|
375 |
+
":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
|
376 |
+
"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
|
377 |
+
"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
|
378 |
+
"[type='radio'], [type='checkbox'], [contenteditable]", delegate)
|
379 |
+
.on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate);
|
380 |
+
|
381 |
+
if (this.settings.invalidHandler) {
|
382 |
+
$(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler);
|
383 |
+
}
|
384 |
+
|
385 |
+
// Add aria-required to any Static/Data/Class required fields before first validation
|
386 |
+
// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html
|
387 |
+
$(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true");
|
388 |
+
},
|
389 |
+
|
390 |
+
form: function () {
|
391 |
+
this.checkForm();
|
392 |
+
$.extend(this.submitted, this.errorMap);
|
393 |
+
this.invalid = $.extend({}, this.errorMap);
|
394 |
+
if (!this.valid()) {
|
395 |
+
$(this.currentForm).triggerHandler("invalid-form", [this]);
|
396 |
+
}
|
397 |
+
this.showErrors();
|
398 |
+
return this.valid();
|
399 |
+
},
|
400 |
+
|
401 |
+
checkForm: function () {
|
402 |
+
this.prepareForm();
|
403 |
+
for (var i = 0, elements = (this.currentElements = this.elements()); elements[ i ]; i++) {
|
404 |
+
this.check(elements[ i ]);
|
405 |
+
}
|
406 |
+
return this.valid();
|
407 |
+
},
|
408 |
+
element: function (element) {
|
409 |
+
var cleanElement = this.clean(element),
|
410 |
+
checkElement = this.validationTargetFor(cleanElement),
|
411 |
+
v = this,
|
412 |
+
result = true,
|
413 |
+
rs, group;
|
414 |
+
|
415 |
+
if (checkElement === undefined) {
|
416 |
+
delete this.invalid[ cleanElement.name ];
|
417 |
+
} else {
|
418 |
+
this.prepareElement(checkElement);
|
419 |
+
this.currentElements = $(checkElement);
|
420 |
+
|
421 |
+
// If this element is grouped, then validate all group elements already
|
422 |
+
// containing a value
|
423 |
+
group = this.groups[ checkElement.name ];
|
424 |
+
if (group) {
|
425 |
+
$.each(this.groups, function (name, testgroup) {
|
426 |
+
if (testgroup === group && name !== checkElement.name) {
|
427 |
+
cleanElement = v.validationTargetFor(v.clean(v.findByName(name)));
|
428 |
+
if (cleanElement && cleanElement.name in v.invalid) {
|
429 |
+
v.currentElements.push(cleanElement);
|
430 |
+
result = result && v.check(cleanElement);
|
431 |
+
}
|
432 |
+
}
|
433 |
+
});
|
434 |
+
}
|
435 |
+
|
436 |
+
rs = this.check(checkElement) !== false;
|
437 |
+
result = result && rs;
|
438 |
+
if (rs) {
|
439 |
+
this.invalid[ checkElement.name ] = false;
|
440 |
+
} else {
|
441 |
+
this.invalid[ checkElement.name ] = true;
|
442 |
+
}
|
443 |
+
|
444 |
+
if (!this.numberOfInvalids()) {
|
445 |
+
|
446 |
+
// Hide error containers on last error
|
447 |
+
this.toHide = this.toHide.add(this.containers);
|
448 |
+
}
|
449 |
+
this.showErrors();
|
450 |
+
|
451 |
+
// Add aria-invalid status for screen readers
|
452 |
+
$(element).attr("aria-invalid", !rs);
|
453 |
+
}
|
454 |
+
|
455 |
+
return result;
|
456 |
+
},
|
457 |
+
showErrors: function (errors) {
|
458 |
+
if (errors) {
|
459 |
+
var validator = this;
|
460 |
+
|
461 |
+
// Add items to error list and map
|
462 |
+
$.extend(this.errorMap, errors);
|
463 |
+
this.errorList = $.map(this.errorMap, function (message, name) {
|
464 |
+
return {
|
465 |
+
message: message,
|
466 |
+
element: validator.findByName(name)[ 0 ]
|
467 |
+
};
|
468 |
+
});
|
469 |
+
|
470 |
+
// Remove items from success list
|
471 |
+
this.successList = $.grep(this.successList, function (element) {
|
472 |
+
return !(element.name in errors);
|
473 |
+
});
|
474 |
+
}
|
475 |
+
if (this.settings.showErrors) {
|
476 |
+
this.settings.showErrors.call(this, this.errorMap, this.errorList);
|
477 |
+
} else {
|
478 |
+
this.defaultShowErrors();
|
479 |
+
}
|
480 |
+
},
|
481 |
+
resetForm: function () {
|
482 |
+
if ($.fn.resetForm) {
|
483 |
+
$(this.currentForm).resetForm();
|
484 |
+
}
|
485 |
+
this.invalid = {};
|
486 |
+
this.submitted = {};
|
487 |
+
this.prepareForm();
|
488 |
+
this.hideErrors();
|
489 |
+
var elements = this.elements()
|
490 |
+
.removeData("previousValue")
|
491 |
+
.removeAttr("aria-invalid");
|
492 |
+
|
493 |
+
this.resetElements(elements);
|
494 |
+
},
|
495 |
+
|
496 |
+
resetElements: function (elements) {
|
497 |
+
var i;
|
498 |
+
|
499 |
+
if (this.settings.unhighlight) {
|
500 |
+
for (i = 0; elements[ i ]; i++) {
|
501 |
+
this.settings.unhighlight.call(this, elements[ i ],
|
502 |
+
this.settings.errorClass, "");
|
503 |
+
this.findByName(elements[ i ].name).removeClass(this.settings.validClass);
|
504 |
+
}
|
505 |
+
} else {
|
506 |
+
elements
|
507 |
+
.removeClass(this.settings.errorClass)
|
508 |
+
.removeClass(this.settings.validClass);
|
509 |
+
}
|
510 |
+
},
|
511 |
+
|
512 |
+
numberOfInvalids: function () {
|
513 |
+
return this.objectLength(this.invalid);
|
514 |
+
},
|
515 |
+
|
516 |
+
objectLength: function (obj) {
|
517 |
+
/* jshint unused: false */
|
518 |
+
var count = 0,
|
519 |
+
i;
|
520 |
+
for (i in obj) {
|
521 |
+
if (obj[ i ]) {
|
522 |
+
count++;
|
523 |
+
}
|
524 |
+
}
|
525 |
+
return count;
|
526 |
+
},
|
527 |
+
|
528 |
+
hideErrors: function () {
|
529 |
+
this.hideThese(this.toHide);
|
530 |
+
},
|
531 |
+
|
532 |
+
hideThese: function (errors) {
|
533 |
+
errors.not(this.containers).text("");
|
534 |
+
this.addWrapper(errors).hide();
|
535 |
+
},
|
536 |
+
|
537 |
+
valid: function () {
|
538 |
+
return this.size() === 0;
|
539 |
+
},
|
540 |
+
|
541 |
+
size: function () {
|
542 |
+
return this.errorList.length;
|
543 |
+
},
|
544 |
+
|
545 |
+
focusInvalid: function () {
|
546 |
+
if (this.settings.focusInvalid) {
|
547 |
+
try {
|
548 |
+
$(this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [])
|
549 |
+
.filter(":visible")
|
550 |
+
.focus()
|
551 |
+
|
552 |
+
// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
|
553 |
+
.trigger("focusin");
|
554 |
+
} catch (e) {
|
555 |
+
}
|
556 |
+
}
|
557 |
+
},
|
558 |
+
|
559 |
+
findLastActive: function () {
|
560 |
+
var lastActive = this.lastActive;
|
561 |
+
return lastActive && $.grep(this.errorList, function (n) {
|
562 |
+
return n.element.name === lastActive.name;
|
563 |
+
}).length === 1 && lastActive;
|
564 |
+
},
|
565 |
+
|
566 |
+
elements: function () {
|
567 |
+
var validator = this,
|
568 |
+
rulesCache = {};
|
569 |
+
|
570 |
+
// Select all valid inputs inside the form (no submit or reset buttons)
|
571 |
+
return $(this.currentForm)
|
572 |
+
.find("input, select, textarea, [contenteditable]")
|
573 |
+
.not(":submit, :reset, :image, :disabled")
|
574 |
+
.not(this.settings.ignore)
|
575 |
+
.filter(function () {
|
576 |
+
var name = this.name || $(this).attr("name"); // For contenteditable
|
577 |
+
if (!name && validator.settings.debug && window.console) {
|
578 |
+
console.error("%o has no name assigned", this);
|
579 |
+
}
|
580 |
+
|
581 |
+
if (this.hasAttribute("contenteditable")) {
|
582 |
+
this.form = $(this).closest("form")[ 0 ];
|
583 |
+
}
|
584 |
+
|
585 |
+
// Select only the first element for each name, and only those with rules specified
|
586 |
+
if (name in rulesCache || !validator.objectLength($(this).rules())) {
|
587 |
+
return false;
|
588 |
+
}
|
589 |
+
|
590 |
+
rulesCache[ name ] = true;
|
591 |
+
return true;
|
592 |
+
});
|
593 |
+
},
|
594 |
+
|
595 |
+
clean: function (selector) {
|
596 |
+
return $(selector)[ 0 ];
|
597 |
+
},
|
598 |
+
|
599 |
+
errors: function () {
|
600 |
+
var errorClass = this.settings.errorClass.split(" ").join(".");
|
601 |
+
return $(this.settings.errorElement + "." + errorClass, this.errorContext);
|
602 |
+
},
|
603 |
+
|
604 |
+
resetInternals: function () {
|
605 |
+
this.successList = [];
|
606 |
+
this.errorList = [];
|
607 |
+
this.errorMap = {};
|
608 |
+
this.toShow = $([]);
|
609 |
+
this.toHide = $([]);
|
610 |
+
},
|
611 |
+
|
612 |
+
reset: function () {
|
613 |
+
this.resetInternals();
|
614 |
+
this.currentElements = $([]);
|
615 |
+
},
|
616 |
+
|
617 |
+
prepareForm: function () {
|
618 |
+
this.reset();
|
619 |
+
this.toHide = this.errors().add(this.containers);
|
620 |
+
},
|
621 |
+
|
622 |
+
prepareElement: function (element) {
|
623 |
+
this.reset();
|
624 |
+
this.toHide = this.errorsFor(element);
|
625 |
+
},
|
626 |
+
|
627 |
+
elementValue: function (element) {
|
628 |
+
var $element = $(element),
|
629 |
+
type = element.type,
|
630 |
+
val, idx;
|
631 |
+
|
632 |
+
if (type === "radio" || type === "checkbox") {
|
633 |
+
return this.findByName(element.name).filter(":checked").val();
|
634 |
+
} else if (type === "number" && typeof element.validity !== "undefined") {
|
635 |
+
return element.validity.badInput ? "NaN" : $element.val();
|
636 |
+
}
|
637 |
+
|
638 |
+
if (element.hasAttribute("contenteditable")) {
|
639 |
+
val = $element.text();
|
640 |
+
} else {
|
641 |
+
val = $element.val();
|
642 |
+
}
|
643 |
+
|
644 |
+
if (type === "file") {
|
645 |
+
|
646 |
+
// Modern browser (chrome & safari)
|
647 |
+
if (val.substr(0, 12) === "C:\\fakepath\\") {
|
648 |
+
return val.substr(12);
|
649 |
+
}
|
650 |
+
|
651 |
+
idx = val.lastIndexOf("/");
|
652 |
+
if (idx >= 0) {
|
653 |
+
return val.substr(idx + 1);
|
654 |
+
}
|
655 |
+
|
656 |
+
// Windows-based path
|
657 |
+
idx = val.lastIndexOf("\\");
|
658 |
+
if (idx >= 0) {
|
659 |
+
return val.substr(idx + 1);
|
660 |
+
}
|
661 |
+
|
662 |
+
// Just the file name
|
663 |
+
return val;
|
664 |
+
}
|
665 |
+
|
666 |
+
if (typeof val === "string") {
|
667 |
+
return val.replace(/\r/g, "");
|
668 |
+
}
|
669 |
+
return val;
|
670 |
+
},
|
671 |
+
|
672 |
+
check: function (element) {
|
673 |
+
element = this.validationTargetFor(this.clean(element));
|
674 |
+
|
675 |
+
var rules = $(element).rules(),
|
676 |
+
rulesCount = $.map(rules, function (n, i) {
|
677 |
+
return i;
|
678 |
+
}).length,
|
679 |
+
dependencyMismatch = false,
|
680 |
+
val = this.elementValue(element),
|
681 |
+
result, method, rule;
|
682 |
+
if (typeof rules.normalizer === "function") {
|
683 |
+
val = rules.normalizer.call(element, val);
|
684 |
+
|
685 |
+
if (typeof val !== "string") {
|
686 |
+
throw new TypeError("The normalizer should return a string value.");
|
687 |
+
}
|
688 |
+
delete rules.normalizer;
|
689 |
+
}
|
690 |
+
|
691 |
+
for (method in rules) {
|
692 |
+
rule = {method: method, parameters: rules[ method ]};
|
693 |
+
try {
|
694 |
+
result = $.validator.methods[ method ].call(this, val, element, rule.parameters);
|
695 |
+
if (result === "dependency-mismatch" && rulesCount === 1) {
|
696 |
+
dependencyMismatch = true;
|
697 |
+
continue;
|
698 |
+
}
|
699 |
+
dependencyMismatch = false;
|
700 |
+
|
701 |
+
if (result === "pending") {
|
702 |
+
this.toHide = this.toHide.not(this.errorsFor(element));
|
703 |
+
return;
|
704 |
+
}
|
705 |
+
|
706 |
+
if (!result) {
|
707 |
+
this.formatAndAdd(element, rule);
|
708 |
+
return false;
|
709 |
+
}
|
710 |
+
} catch (e) {
|
711 |
+
if (this.settings.debug && window.console) {
|
712 |
+
console.log("Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e);
|
713 |
+
}
|
714 |
+
if (e instanceof TypeError) {
|
715 |
+
e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
|
716 |
+
}
|
717 |
+
|
718 |
+
throw e;
|
719 |
+
}
|
720 |
+
}
|
721 |
+
if (dependencyMismatch) {
|
722 |
+
return;
|
723 |
+
}
|
724 |
+
if (this.objectLength(rules)) {
|
725 |
+
this.successList.push(element);
|
726 |
+
}
|
727 |
+
return true;
|
728 |
+
},
|
729 |
+
|
730 |
+
customDataMessage: function (element, method) {
|
731 |
+
return $(element).data("msg" + method.charAt(0).toUpperCase() +
|
732 |
+
method.substring(1).toLowerCase()) || $(element).data("msg");
|
733 |
+
},
|
734 |
+
|
735 |
+
// Return the custom message for the given element name and validation method
|
736 |
+
customMessage: function (name, method) {
|
737 |
+
var m = this.settings.messages[ name ];
|
738 |
+
return m && (m.constructor === String ? m : m[ method ]);
|
739 |
+
},
|
740 |
+
|
741 |
+
// Return the first defined argument, allowing empty strings
|
742 |
+
findDefined: function () {
|
743 |
+
for (var i = 0; i < arguments.length; i++) {
|
744 |
+
if (arguments[ i ] !== undefined) {
|
745 |
+
return arguments[ i ];
|
746 |
+
}
|
747 |
+
}
|
748 |
+
return undefined;
|
749 |
+
},
|
750 |
+
|
751 |
+
defaultMessage: function (element, rule) {
|
752 |
+
var message = this.findDefined(
|
753 |
+
this.customMessage(element.name, rule.method),
|
754 |
+
this.customDataMessage(element, rule.method),
|
755 |
+
// 'title' is never undefined, so handle empty string as undefined
|
756 |
+
!this.settings.ignoreTitle && element.title || undefined,
|
757 |
+
$.validator.messages[ rule.method ],
|
758 |
+
"<strong>Warning: No message defined for " + element.name + "</strong>"
|
759 |
+
),
|
760 |
+
theregex = /\$?\{(\d+)\}/g;
|
761 |
+
if (typeof message === "function") {
|
762 |
+
message = message.call(this, rule.parameters, element);
|
763 |
+
} else if (theregex.test(message)) {
|
764 |
+
message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters);
|
765 |
+
}
|
766 |
+
|
767 |
+
return message;
|
768 |
+
},
|
769 |
+
|
770 |
+
formatAndAdd: function (element, rule) {
|
771 |
+
var message = this.defaultMessage(element, rule);
|
772 |
+
|
773 |
+
this.errorList.push({
|
774 |
+
message: message,
|
775 |
+
element: element,
|
776 |
+
method: rule.method
|
777 |
+
});
|
778 |
+
|
779 |
+
this.errorMap[ element.name ] = message;
|
780 |
+
this.submitted[ element.name ] = message;
|
781 |
+
},
|
782 |
+
|
783 |
+
addWrapper: function (toToggle) {
|
784 |
+
if (this.settings.wrapper) {
|
785 |
+
toToggle = toToggle.add(toToggle.parent(this.settings.wrapper));
|
786 |
+
}
|
787 |
+
return toToggle;
|
788 |
+
},
|
789 |
+
|
790 |
+
defaultShowErrors: function () {
|
791 |
+
var i, elements, error;
|
792 |
+
for (i = 0; this.errorList[ i ]; i++) {
|
793 |
+
error = this.errorList[ i ];
|
794 |
+
if (this.settings.highlight) {
|
795 |
+
this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
|
796 |
+
}
|
797 |
+
this.showLabel(error.element, error.message);
|
798 |
+
}
|
799 |
+
if (this.errorList.length) {
|
800 |
+
this.toShow = this.toShow.add(this.containers);
|
801 |
+
}
|
802 |
+
if (this.settings.success) {
|
803 |
+
for (i = 0; this.successList[ i ]; i++) {
|
804 |
+
this.showLabel(this.successList[ i ]);
|
805 |
+
}
|
806 |
+
}
|
807 |
+
if (this.settings.unhighlight) {
|
808 |
+
for (i = 0, elements = this.validElements(); elements[ i ]; i++) {
|
809 |
+
this.settings.unhighlight.call(this, elements[ i ], this.settings.errorClass, this.settings.validClass);
|
810 |
+
}
|
811 |
+
}
|
812 |
+
this.toHide = this.toHide.not(this.toShow);
|
813 |
+
this.hideErrors();
|
814 |
+
this.addWrapper(this.toShow).show();
|
815 |
+
},
|
816 |
+
|
817 |
+
validElements: function () {
|
818 |
+
return this.currentElements.not(this.invalidElements());
|
819 |
+
},
|
820 |
+
|
821 |
+
invalidElements: function () {
|
822 |
+
return $(this.errorList).map(function () {
|
823 |
+
return this.element;
|
824 |
+
});
|
825 |
+
},
|
826 |
+
|
827 |
+
showLabel: function (element, message) {
|
828 |
+
var place, group, errorID, v,
|
829 |
+
error = this.errorsFor(element),
|
830 |
+
elementID = this.idOrName(element),
|
831 |
+
describedBy = $(element).attr("aria-describedby");
|
832 |
+
|
833 |
+
if (error.length) {
|
834 |
+
|
835 |
+
// Refresh error/success class
|
836 |
+
error.removeClass(this.settings.validClass).addClass(this.settings.errorClass);
|
837 |
+
|
838 |
+
// Replace message on existing label
|
839 |
+
error.html(message);
|
840 |
+
} else {
|
841 |
+
|
842 |
+
// Create error element
|
843 |
+
error = $("<" + this.settings.errorElement + ">")
|
844 |
+
.attr("id", elementID + "-error")
|
845 |
+
.addClass(this.settings.errorClass)
|
846 |
+
.html(message || "");
|
847 |
+
|
848 |
+
// Maintain reference to the element to be placed into the DOM
|
849 |
+
place = error;
|
850 |
+
if (this.settings.wrapper) {
|
851 |
+
place = error.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
|
852 |
+
}
|
853 |
+
if (this.labelContainer.length) {
|
854 |
+
this.labelContainer.append(place);
|
855 |
+
} else if (this.settings.errorPlacement) {
|
856 |
+
this.settings.errorPlacement(place, $(element));
|
857 |
+
} else {
|
858 |
+
place.insertAfter(element);
|
859 |
+
}
|
860 |
+
|
861 |
+
if (error.is("label")) {
|
862 |
+
error.attr("for", elementID);
|
863 |
+
} else if (error.parents("label[for='" + this.escapeCssMeta(elementID) + "']").length === 0) {
|
864 |
+
errorID = error.attr("id");
|
865 |
+
if (!describedBy) {
|
866 |
+
describedBy = errorID;
|
867 |
+
} else if (!describedBy.match(new RegExp("\\b" + this.escapeCssMeta(errorID) + "\\b"))) {
|
868 |
+
describedBy += " " + errorID;
|
869 |
+
}
|
870 |
+
$(element).attr("aria-describedby", describedBy);
|
871 |
+
group = this.groups[ element.name ];
|
872 |
+
if (group) {
|
873 |
+
v = this;
|
874 |
+
$.each(v.groups, function (name, testgroup) {
|
875 |
+
if (testgroup === group) {
|
876 |
+
$("[name='" + v.escapeCssMeta(name) + "']", v.currentForm)
|
877 |
+
.attr("aria-describedby", error.attr("id"));
|
878 |
+
}
|
879 |
+
});
|
880 |
+
}
|
881 |
+
}
|
882 |
+
}
|
883 |
+
if (!message && this.settings.success) {
|
884 |
+
error.text("");
|
885 |
+
if (typeof this.settings.success === "string") {
|
886 |
+
error.addClass(this.settings.success);
|
887 |
+
} else {
|
888 |
+
this.settings.success(error, element);
|
889 |
+
}
|
890 |
+
}
|
891 |
+
this.toShow = this.toShow.add(error);
|
892 |
+
},
|
893 |
+
|
894 |
+
errorsFor: function (element) {
|
895 |
+
var name = this.escapeCssMeta(this.idOrName(element)),
|
896 |
+
describer = $(element).attr("aria-describedby"),
|
897 |
+
selector = "label[for='" + name + "'], label[for='" + name + "'] *";
|
898 |
+
if (describer) {
|
899 |
+
selector = selector + ", #" + this.escapeCssMeta(describer)
|
900 |
+
.replace(/\s+/g, ", #");
|
901 |
+
}
|
902 |
+
|
903 |
+
return this
|
904 |
+
.errors()
|
905 |
+
.filter(selector);
|
906 |
+
},
|
907 |
+
escapeCssMeta: function (string) {
|
908 |
+
return string.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1");
|
909 |
+
},
|
910 |
+
|
911 |
+
idOrName: function (element) {
|
912 |
+
return this.groups[ element.name ] || (this.checkable(element) ? element.name : element.id || element.name);
|
913 |
+
},
|
914 |
+
|
915 |
+
validationTargetFor: function (element) {
|
916 |
+
|
917 |
+
if (this.checkable(element)) {
|
918 |
+
element = this.findByName(element.name);
|
919 |
+
}
|
920 |
+
return $(element).not(this.settings.ignore)[ 0 ];
|
921 |
+
},
|
922 |
+
|
923 |
+
checkable: function (element) {
|
924 |
+
return (/radio|checkbox/i).test(element.type);
|
925 |
+
},
|
926 |
+
|
927 |
+
findByName: function (name) {
|
928 |
+
return $(this.currentForm).find("[name='" + this.escapeCssMeta(name) + "']");
|
929 |
+
},
|
930 |
+
|
931 |
+
getLength: function (value, element) {
|
932 |
+
switch (element.nodeName.toLowerCase()) {
|
933 |
+
case "select":
|
934 |
+
return $("option:selected", element).length;
|
935 |
+
case "input":
|
936 |
+
if (this.checkable(element)) {
|
937 |
+
return this.findByName(element.name).filter(":checked").length;
|
938 |
+
}
|
939 |
+
}
|
940 |
+
return value.length;
|
941 |
+
},
|
942 |
+
|
943 |
+
depend: function (param, element) {
|
944 |
+
return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ](param, element) : true;
|
945 |
+
},
|
946 |
+
|
947 |
+
dependTypes: {
|
948 |
+
"boolean": function (param) {
|
949 |
+
return param;
|
950 |
+
},
|
951 |
+
"string": function (param, element) {
|
952 |
+
return !!$(param, element.form).length;
|
953 |
+
},
|
954 |
+
"function": function (param, element) {
|
955 |
+
return param(element);
|
956 |
+
}
|
957 |
+
},
|
958 |
+
|
959 |
+
optional: function (element) {
|
960 |
+
var val = this.elementValue(element);
|
961 |
+
return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch";
|
962 |
+
},
|
963 |
+
|
964 |
+
startRequest: function (element) {
|
965 |
+
if (!this.pending[ element.name ]) {
|
966 |
+
this.pendingRequest++;
|
967 |
+
$(element).addClass(this.settings.pendingClass);
|
968 |
+
this.pending[ element.name ] = true;
|
969 |
+
}
|
970 |
+
},
|
971 |
+
stopRequest: function (element, valid) {
|
972 |
+
this.pendingRequest--;
|
973 |
+
if (this.pendingRequest < 0) {
|
974 |
+
this.pendingRequest = 0;
|
975 |
+
}
|
976 |
+
delete this.pending[ element.name ];
|
977 |
+
$(element).removeClass(this.settings.pendingClass);
|
978 |
+
if (valid && this.pendingRequest === 0 && this.formSubmitted && this.form()) {
|
979 |
+
$(this.currentForm).submit();
|
980 |
+
this.formSubmitted = false;
|
981 |
+
} else if (!valid && this.pendingRequest === 0 && this.formSubmitted) {
|
982 |
+
$(this.currentForm).triggerHandler("invalid-form", [this]);
|
983 |
+
this.formSubmitted = false;
|
984 |
+
}
|
985 |
+
},
|
986 |
+
previousValue: function (element, method) {
|
987 |
+
return $.data(element, "previousValue") || $.data(element, "previousValue", {
|
988 |
+
old: null,
|
989 |
+
valid: true,
|
990 |
+
message: this.defaultMessage(element, {method: method})
|
991 |
+
});
|
992 |
+
},
|
993 |
+
destroy: function () {
|
994 |
+
this.resetForm();
|
995 |
+
$(this.currentForm)
|
996 |
+
.off(".validate")
|
997 |
+
.removeData("validator")
|
998 |
+
.find(".validate-equalTo-blur")
|
999 |
+
.off(".validate-equalTo")
|
1000 |
+
.removeClass("validate-equalTo-blur");
|
1001 |
+
}
|
1002 |
},
|
1003 |
classRuleSettings: {
|
1004 |
+
required: {required: true},
|
1005 |
+
email: {email: true},
|
1006 |
+
url: {url: true},
|
1007 |
+
date: {date: true},
|
1008 |
+
dateISO: {dateISO: true},
|
1009 |
+
number: {number: true},
|
1010 |
+
digits: {digits: true},
|
1011 |
+
creditcard: {creditcard: true}
|
1012 |
},
|
1013 |
|
1014 |
addClassRules: function (className, rules) {
|
1015 |
+
if (className.constructor === String) {
|
1016 |
+
this.classRuleSettings[ className ] = rules;
|
1017 |
+
} else {
|
1018 |
+
$.extend(this.classRuleSettings, className);
|
1019 |
+
}
|
1020 |
},
|
1021 |
|
1022 |
classRules: function (element) {
|
1023 |
+
var rules = {},
|
1024 |
+
classes = $(element).attr("class");
|
1025 |
+
|
1026 |
+
if (classes) {
|
1027 |
+
$.each(classes.split(" "), function () {
|
1028 |
+
if (this in $.validator.classRuleSettings) {
|
1029 |
+
$.extend(rules, $.validator.classRuleSettings[ this ]);
|
1030 |
+
}
|
1031 |
+
});
|
1032 |
+
}
|
1033 |
+
return rules;
|
1034 |
},
|
1035 |
|
1036 |
normalizeAttributeRule: function (rules, type, method, value) {
|
1037 |
+
if (/min|max|step/.test(method) && (type === null || /number|range|text/.test(type))) {
|
1038 |
+
value = Number(value);
|
1039 |
+
if (isNaN(value)) {
|
1040 |
+
value = undefined;
|
1041 |
+
}
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
if (value || value === 0) {
|
1045 |
+
rules[ method ] = value;
|
1046 |
+
} else if (type === method && type !== "range") {
|
1047 |
+
rules[ method ] = true;
|
1048 |
+
}
|
1049 |
},
|
1050 |
|
1051 |
attributeRules: function (element) {
|
1052 |
+
var rules = {},
|
1053 |
+
$element = $(element),
|
1054 |
+
type = element.getAttribute("type"),
|
1055 |
+
method, value;
|
1056 |
+
|
1057 |
+
for (method in $.validator.methods) {
|
1058 |
+
if (method === "required") {
|
1059 |
+
value = element.getAttribute(method);
|
1060 |
+
if (value === "") {
|
1061 |
+
value = true;
|
1062 |
+
}
|
1063 |
+
value = !!value;
|
1064 |
+
} else {
|
1065 |
+
value = $element.attr(method);
|
1066 |
+
}
|
1067 |
+
this.normalizeAttributeRule(rules, type, method, value);
|
1068 |
+
}
|
1069 |
+
if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
|
1070 |
+
delete rules.maxlength;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
return rules;
|
1074 |
},
|
1075 |
|
1076 |
dataRules: function (element) {
|
1077 |
+
var rules = {},
|
1078 |
+
$element = $(element),
|
1079 |
+
type = element.getAttribute("type"),
|
1080 |
+
method, value;
|
1081 |
+
|
1082 |
+
for (method in $.validator.methods) {
|
1083 |
+
value = $element.data("rule" + method.charAt(0).toUpperCase() + method.substring(1).toLowerCase());
|
1084 |
+
this.normalizeAttributeRule(rules, type, method, value);
|
1085 |
+
}
|
1086 |
+
return rules;
|
1087 |
},
|
1088 |
|
1089 |
staticRules: function (element) {
|
1090 |
+
var rules = {},
|
1091 |
+
validator = $.data(element.form, "validator");
|
1092 |
|
1093 |
+
if (validator.settings.rules) {
|
1094 |
+
rules = $.validator.normalizeRule(validator.settings.rules[ element.name ]) || {};
|
1095 |
+
}
|
1096 |
+
return rules;
|
1097 |
},
|
1098 |
|
1099 |
normalizeRules: function (rules, element) {
|
1100 |
+
$.each(rules, function (prop, val) {
|
1101 |
+
if (val === false) {
|
1102 |
+
delete rules[ prop ];
|
1103 |
+
return;
|
1104 |
+
}
|
1105 |
+
if (val.param || val.depends) {
|
1106 |
+
var keepRule = true;
|
1107 |
+
switch (typeof val.depends) {
|
1108 |
+
case "string":
|
1109 |
+
keepRule = !!$(val.depends, element.form).length;
|
1110 |
+
break;
|
1111 |
+
case "function":
|
1112 |
+
keepRule = val.depends.call(element, element);
|
1113 |
+
break;
|
1114 |
+
}
|
1115 |
+
if (keepRule) {
|
1116 |
+
rules[ prop ] = val.param !== undefined ? val.param : true;
|
1117 |
+
} else {
|
1118 |
+
$.data(element.form, "validator").resetElements($(element));
|
1119 |
+
delete rules[ prop ];
|
1120 |
+
}
|
1121 |
+
}
|
1122 |
+
});
|
1123 |
+
$.each(rules, function (rule, parameter) {
|
1124 |
+
rules[ rule ] = $.isFunction(parameter) && rule !== "normalizer" ? parameter(element) : parameter;
|
1125 |
+
});
|
1126 |
+
$.each(["minlength", "maxlength"], function () {
|
1127 |
+
if (rules[ this ]) {
|
1128 |
+
rules[ this ] = Number(rules[ this ]);
|
1129 |
+
}
|
1130 |
+
});
|
1131 |
+
$.each(["rangelength", "range"], function () {
|
1132 |
+
var parts;
|
1133 |
+
if (rules[ this ]) {
|
1134 |
+
if ($.isArray(rules[ this ])) {
|
1135 |
+
rules[ this ] = [Number(rules[ this ][ 0 ]), Number(rules[ this ][ 1 ])];
|
1136 |
+
} else if (typeof rules[ this ] === "string") {
|
1137 |
+
parts = rules[ this ].replace(/[\[\]]/g, "").split(/[\s,]+/);
|
1138 |
+
rules[ this ] = [Number(parts[ 0 ]), Number(parts[ 1 ])];
|
1139 |
+
}
|
1140 |
+
}
|
1141 |
+
});
|
1142 |
+
if ($.validator.autoCreateRanges) {
|
1143 |
+
if (rules.min != null && rules.max != null) {
|
1144 |
+
rules.range = [rules.min, rules.max];
|
1145 |
+
delete rules.min;
|
1146 |
+
delete rules.max;
|
1147 |
+
}
|
1148 |
+
if (rules.minlength != null && rules.maxlength != null) {
|
1149 |
+
rules.rangelength = [rules.minlength, rules.maxlength];
|
1150 |
+
delete rules.minlength;
|
1151 |
+
delete rules.maxlength;
|
1152 |
+
}
|
1153 |
+
}
|
1154 |
+
return rules;
|
1155 |
},
|
1156 |
normalizeRule: function (data) {
|
1157 |
+
if (typeof data === "string") {
|
1158 |
+
var transformed = {};
|
1159 |
+
$.each(data.split(/\s/), function () {
|
1160 |
+
transformed[ this ] = true;
|
1161 |
+
});
|
1162 |
+
data = transformed;
|
1163 |
+
}
|
1164 |
+
return data;
|
1165 |
},
|
1166 |
addMethod: function (name, method, message) {
|
1167 |
+
$.validator.methods[ name ] = method;
|
1168 |
+
$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
|
1169 |
+
if (method.length < 3) {
|
1170 |
+
$.validator.addClassRules(name, $.validator.normalizeRule(name));
|
1171 |
+
}
|
1172 |
},
|
1173 |
methods: {
|
1174 |
+
required: function (value, element, param) {
|
1175 |
+
if (!this.depend(param, element)) {
|
1176 |
+
return "dependency-mismatch";
|
1177 |
+
}
|
1178 |
+
if (element.nodeName.toLowerCase() === "select") {
|
1179 |
+
var val = $(element).val();
|
1180 |
+
return val && val.length > 0;
|
1181 |
+
}
|
1182 |
+
if (this.checkable(element)) {
|
1183 |
+
return this.getLength(value, element) > 0;
|
1184 |
+
}
|
1185 |
+
return value.length > 0;
|
1186 |
+
},
|
1187 |
+
email: function (value, element) {
|
1188 |
+
return this.optional(element) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value);
|
1189 |
+
},
|
1190 |
+
url: function (value, element) {
|
1191 |
+
return this.optional(element) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value);
|
1192 |
+
},
|
1193 |
+
date: function (value, element) {
|
1194 |
+
return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
|
1195 |
+
},
|
1196 |
+
dateISO: function (value, element) {
|
1197 |
+
return this.optional(element) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value);
|
1198 |
+
},
|
1199 |
+
number: function (value, element) {
|
1200 |
+
return this.optional(element) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
|
1201 |
+
},
|
1202 |
+
digits: function (value, element) {
|
1203 |
+
return this.optional(element) || /^\d+$/.test(value);
|
1204 |
+
},
|
1205 |
+
minlength: function (value, element, param) {
|
1206 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1207 |
+
return this.optional(element) || length >= param;
|
1208 |
+
},
|
1209 |
+
maxlength: function (value, element, param) {
|
1210 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1211 |
+
return this.optional(element) || length <= param;
|
1212 |
+
},
|
1213 |
+
rangelength: function (value, element, param) {
|
1214 |
+
var length = $.isArray(value) ? value.length : this.getLength(value, element);
|
1215 |
+
return this.optional(element) || (length >= param[ 0 ] && length <= param[ 1 ]);
|
1216 |
+
},
|
1217 |
+
min: function (value, element, param) {
|
1218 |
+
return this.optional(element) || value >= param;
|
1219 |
+
},
|
1220 |
+
max: function (value, element, param) {
|
1221 |
+
return this.optional(element) || value <= param;
|
1222 |
+
},
|
1223 |
+
range: function (value, element, param) {
|
1224 |
+
return this.optional(element) || (value >= param[ 0 ] && value <= param[ 1 ]);
|
1225 |
+
},
|
1226 |
+
step: function (value, element, param) {
|
1227 |
+
var type = $(element).attr("type"),
|
1228 |
+
errorMessage = "Step attribute on input type " + type + " is not supported.",
|
1229 |
+
supportedTypes = ["text", "number", "range"],
|
1230 |
+
re = new RegExp("\\b" + type + "\\b"),
|
1231 |
+
notSupported = type && !re.test(supportedTypes.join());
|
1232 |
+
if (notSupported) {
|
1233 |
+
throw new Error(errorMessage);
|
1234 |
+
}
|
1235 |
+
return this.optional(element) || (value % param === 0);
|
1236 |
+
},
|
1237 |
+
equalTo: function (value, element, param) {
|
1238 |
+
var target = $(param);
|
1239 |
+
if (this.settings.onfocusout && target.not(".validate-equalTo-blur").length) {
|
1240 |
+
target.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function () {
|
1241 |
+
$(element).valid();
|
1242 |
+
});
|
1243 |
+
}
|
1244 |
+
return value === target.val();
|
1245 |
+
},
|
1246 |
+
remote: function (value, element, param, method) {
|
1247 |
+
if (this.optional(element)) {
|
1248 |
+
return "dependency-mismatch";
|
1249 |
+
}
|
1250 |
+
|
1251 |
+
method = typeof method === "string" && method || "remote";
|
1252 |
+
|
1253 |
+
var previous = this.previousValue(element, method),
|
1254 |
+
validator, data, optionDataString;
|
1255 |
+
|
1256 |
+
if (!this.settings.messages[ element.name ]) {
|
1257 |
+
this.settings.messages[ element.name ] = {};
|
1258 |
+
}
|
1259 |
+
previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];
|
1260 |
+
this.settings.messages[ element.name ][ method ] = previous.message;
|
1261 |
+
|
1262 |
+
param = typeof param === "string" && {url: param} || param;
|
1263 |
+
optionDataString = $.param($.extend({data: value}, param.data));
|
1264 |
+
if (previous.old === optionDataString) {
|
1265 |
+
return previous.valid;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
previous.old = optionDataString;
|
1269 |
+
validator = this;
|
1270 |
+
this.startRequest(element);
|
1271 |
+
data = {};
|
1272 |
+
data[ element.name ] = value;
|
1273 |
+
$.ajax($.extend(true, {
|
1274 |
+
mode: "abort",
|
1275 |
+
port: "validate" + element.name,
|
1276 |
+
dataType: "json",
|
1277 |
+
data: data,
|
1278 |
+
context: validator.currentForm,
|
1279 |
+
success: function (response) {
|
1280 |
+
var valid = response === true || response === "true",
|
1281 |
+
errors, message, submitted;
|
1282 |
+
|
1283 |
+
validator.settings.messages[ element.name ][ method ] = previous.originalMessage;
|
1284 |
+
if (valid) {
|
1285 |
+
submitted = validator.formSubmitted;
|
1286 |
+
validator.resetInternals();
|
1287 |
+
validator.toHide = validator.errorsFor(element);
|
1288 |
+
validator.formSubmitted = submitted;
|
1289 |
+
validator.successList.push(element);
|
1290 |
+
validator.invalid[ element.name ] = false;
|
1291 |
+
validator.showErrors();
|
1292 |
+
} else {
|
1293 |
+
errors = {};
|
1294 |
+
message = response || validator.defaultMessage(element, {method: method, parameters: value});
|
1295 |
+
errors[ element.name ] = previous.message = message;
|
1296 |
+
validator.invalid[ element.name ] = true;
|
1297 |
+
validator.showErrors(errors);
|
1298 |
+
}
|
1299 |
+
previous.valid = valid;
|
1300 |
+
validator.stopRequest(element, valid);
|
1301 |
+
}
|
1302 |
+
}, param));
|
1303 |
+
return "pending";
|
1304 |
+
}
|
1305 |
}
|
1306 |
});
|
1307 |
var pendingRequests = {},
|
1308 |
+
ajax;
|
1309 |
if ($.ajaxPrefilter) {
|
1310 |
$.ajaxPrefilter(function (settings, _, xhr) {
|
1311 |
+
var port = settings.port;
|
1312 |
+
if (settings.mode === "abort") {
|
1313 |
+
if (pendingRequests[ port ]) {
|
1314 |
+
pendingRequests[ port ].abort();
|
1315 |
+
}
|
1316 |
+
pendingRequests[ port ] = xhr;
|
1317 |
+
}
|
1318 |
});
|
1319 |
} else {
|
1320 |
ajax = $.ajax;
|
1321 |
$.ajax = function (settings) {
|
1322 |
+
var mode = ("mode" in settings ? settings : $.ajaxSettings).mode,
|
1323 |
+
port = ("port" in settings ? settings : $.ajaxSettings).port;
|
1324 |
+
if (mode === "abort") {
|
1325 |
+
if (pendingRequests[ port ]) {
|
1326 |
+
pendingRequests[ port ].abort();
|
1327 |
+
}
|
1328 |
+
pendingRequests[ port ] = ajax.apply(this, arguments);
|
1329 |
+
return pendingRequests[ port ];
|
1330 |
+
}
|
1331 |
+
return ajax.apply(this, arguments);
|
1332 |
};
|
1333 |
}
|
1334 |
}));
|
includes/authentication-manager-mail-bank.php
CHANGED
@@ -21,40 +21,40 @@ if (!class_exists("authentication_manager_mail_bank")) {
|
|
21 |
class authentication_manager_mail_bank {
|
22 |
|
23 |
public function create_authentication_manager() {
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
|
29 |
public function create_manager(mail_bank_smtp_transport $transport) {
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
}
|
47 |
|
48 |
public function check_google_service_provider_mail_bank($hostname) {
|
49 |
-
|
50 |
}
|
51 |
|
52 |
public function check_microsoft_service_provider_mail_bank($hostname) {
|
53 |
-
|
54 |
}
|
55 |
|
56 |
public function check_yahoo_service_provider_mail_bank($hostname) {
|
57 |
-
|
58 |
}
|
59 |
|
60 |
}
|
21 |
class authentication_manager_mail_bank {
|
22 |
|
23 |
public function create_authentication_manager() {
|
24 |
+
$obj_mail_bank_register_transport = new mail_bank_register_transport();
|
25 |
+
$transport = $obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
26 |
+
return $this->create_manager($transport);
|
27 |
}
|
28 |
|
29 |
public function create_manager(mail_bank_smtp_transport $transport) {
|
30 |
+
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
31 |
+
$configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
32 |
+
$authorization_token = mail_bank_manage_token::get_instance();
|
33 |
+
$hostname = $configuration_settings["hostname"];
|
34 |
+
$client_id = $configuration_settings["client_id"];
|
35 |
+
$client_secret = $configuration_settings["client_secret"];
|
36 |
+
$sender_email = $configuration_settings["sender_email"];
|
37 |
+
$redirect_uri = admin_url("admin-ajax.php");
|
38 |
+
if ($this->check_google_service_provider_mail_bank($hostname)) {
|
39 |
+
$obj_service_provider = new google_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri, $sender_email);
|
40 |
+
} elseif ($this->check_microsoft_service_provider_mail_bank($hostname)) {
|
41 |
+
$obj_service_provider = new microsoft_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri);
|
42 |
+
} elseif ($this->check_yahoo_service_provider_mail_bank($hostname)) {
|
43 |
+
$obj_service_provider = new yahoo_authentication_mail_bank($client_id, $client_secret, $authorization_token, $redirect_uri);
|
44 |
+
}
|
45 |
+
return $obj_service_provider;
|
46 |
}
|
47 |
|
48 |
public function check_google_service_provider_mail_bank($hostname) {
|
49 |
+
return mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "gmail.com") || mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "googleapis.com");
|
50 |
}
|
51 |
|
52 |
public function check_microsoft_service_provider_mail_bank($hostname) {
|
53 |
+
return mail_bank_zend_mail_helper::email_domains_mail_bank($hostname, "live.com");
|
54 |
}
|
55 |
|
56 |
public function check_yahoo_service_provider_mail_bank($hostname) {
|
57 |
+
return strpos($hostname, "yahoo");
|
58 |
}
|
59 |
|
60 |
}
|
includes/footer.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -29,65 +29,65 @@ if (!is_user_logged_in()) {
|
|
29 |
<div class="popup" data-popup="ux_open_popup_translator">
|
30 |
<div class="popup-inner">
|
31 |
<div class="portlet box vivid-green" style="margin-bottom:0px;">
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
</div>
|
92 |
</div>
|
93 |
</div>
|
@@ -97,7 +97,7 @@ if (!is_user_logged_in()) {
|
|
97 |
{
|
98 |
if (jQuery(this).parent("ul.page-sidebar-menu-tech-banker").size() === 1)
|
99 |
{
|
100 |
-
|
101 |
}
|
102 |
});
|
103 |
|
@@ -107,10 +107,10 @@ if (!is_user_logged_in()) {
|
|
107 |
var content_height = jQuery(".page-content").height() + 30;
|
108 |
if (parseInt(menus_height) > parseInt(content_height))
|
109 |
{
|
110 |
-
|
111 |
} else
|
112 |
{
|
113 |
-
|
114 |
}
|
115 |
}
|
116 |
|
@@ -126,27 +126,27 @@ if (!is_user_logged_in()) {
|
|
126 |
var sidebar_close = parent.children("li.open").removeClass("open");
|
127 |
if (sidebar_close)
|
128 |
{
|
129 |
-
|
130 |
}
|
131 |
if (sub.is(":visible"))
|
132 |
{
|
133 |
-
|
134 |
-
|
135 |
} else if (hasSubMenu)
|
136 |
{
|
137 |
-
|
138 |
-
|
139 |
}
|
140 |
});
|
141 |
function paste_only_digits_mail_bank(control_id)
|
142 |
{
|
143 |
jQuery("#" + control_id).on("paste keypress", function (e)
|
144 |
{
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
});
|
151 |
}
|
152 |
|
@@ -171,14 +171,14 @@ if (!is_user_logged_in()) {
|
|
171 |
jQuery("body").append(overlay);
|
172 |
if (control_id !== undefined)
|
173 |
{
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
}
|
183 |
}
|
184 |
|
@@ -192,24 +192,24 @@ if (!is_user_logged_in()) {
|
|
192 |
{
|
193 |
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
194 |
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
if (!data)
|
199 |
{
|
200 |
-
|
201 |
}
|
202 |
do
|
203 |
{
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
} while (i < data.length);
|
214 |
enc = tmp_arr.join('');
|
215 |
var r = data.length % 3;
|
@@ -230,107 +230,107 @@ if (!is_user_logged_in()) {
|
|
230 |
var hostname = smtp_host.substr(indexof, 5);
|
231 |
if (smtp_host === "smtp.gmail.com")
|
232 |
{
|
233 |
-
|
234 |
-
|
235 |
} else if (smtp_host === "smtp.live.com")
|
236 |
{
|
237 |
-
|
238 |
-
|
239 |
} else if (hostname === "yahoo")
|
240 |
{
|
241 |
-
|
242 |
-
|
243 |
} else
|
244 |
{
|
245 |
-
|
246 |
}
|
247 |
}
|
248 |
|
249 |
function mail_bank_mail_sender(to_email_address)
|
250 |
{
|
251 |
jQuery.post(ajaxurl,
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
}
|
282 |
|
283 |
function mail_bank_send_test_mail()
|
284 |
{
|
285 |
jQuery("#ux_frm_test_email_configuration").validate
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
}
|
335 |
|
336 |
// Close popup
|
@@ -339,8 +339,8 @@ if (!is_user_logged_in()) {
|
|
339 |
var confirm_close = confirm(<?php echo json_encode($mb_confirm_close); ?>);
|
340 |
if (confirm_close === true)
|
341 |
{
|
342 |
-
|
343 |
-
|
344 |
}
|
345 |
e.preventDefault();
|
346 |
});
|
@@ -348,25 +348,25 @@ if (!is_user_logged_in()) {
|
|
348 |
{
|
349 |
jQuery("[data-popup-open]").on("click", function (e)
|
350 |
{
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
});
|
355 |
// Close popup
|
356 |
jQuery("[data-popup-close]").on("click", function (e)
|
357 |
{
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
});
|
362 |
jQuery(document).keydown(function (e)
|
363 |
{
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
});
|
371 |
}
|
372 |
|
@@ -374,63 +374,63 @@ if (!is_user_logged_in()) {
|
|
374 |
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
375 |
var domain_url = "<?php echo site_url(); ?>";
|
376 |
jQuery("#ux_frm_language_translator").validate
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
function show_pop_up_mail_bank()
|
435 |
{
|
436 |
open_popup_mail_bank();
|
@@ -451,827 +451,827 @@ if (!is_user_logged_in()) {
|
|
451 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
452 |
$page_url = $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : esc_attr($_GET["page"]);
|
453 |
if (isset($_GET["page"])) {
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
}
|
1276 |
?>
|
1277 |
</script>
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
29 |
<div class="popup" data-popup="ux_open_popup_translator">
|
30 |
<div class="popup-inner">
|
31 |
<div class="portlet box vivid-green" style="margin-bottom:0px;">
|
32 |
+
<div class="portlet-title">
|
33 |
+
<div class="caption" id="ux_div_action">
|
34 |
+
<?php echo $mb_translation_request; ?>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
<div class="portlet-body form">
|
38 |
+
<div id="ux_div_popup_header">
|
39 |
+
<form id="ux_frm_language_translator">
|
40 |
+
<div class="form-body">
|
41 |
+
<div class="row">
|
42 |
+
<div class="col-md-6 popup-control">
|
43 |
+
<div class="form-group">
|
44 |
+
<label class="control-label">
|
45 |
+
<?php echo $mb_feature_requests_your_name; ?> :
|
46 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_your_name_tooltip; ?>" data-placement="right"></i>
|
47 |
+
<span class="required" aria-required="true">*</span>
|
48 |
+
</label>
|
49 |
+
<input type="text" class="form-control" name="ux_txt_your_name" id="ux_txt_your_name" value="" placeholder="<?php echo $mb_feature_requests_your_name_placeholder; ?>">
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
<div class="col-md-6 popup-control">
|
53 |
+
<div class="form-group">
|
54 |
+
<label class="control-label">
|
55 |
+
<?php echo $mb_feature_requests_your_email; ?> :
|
56 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_your_email_tooltip; ?>" data-placement="right"></i>
|
57 |
+
<span class="required" aria-required="true">*</span>
|
58 |
+
</label>
|
59 |
+
<input type="text" class="form-control" name="ux_txt_email_address" id="ux_txt_email_address" value="" placeholder="<?php echo $mb_feature_requests_your_email_placeholder; ?>">
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
<div class="form-group">
|
64 |
+
<label class="control-label">
|
65 |
+
<?php echo $mb_language_interested_to_translate; ?> :
|
66 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_language_interested_to_translate_tooltip; ?>" data-placement="right"></i>
|
67 |
+
<span class="required" aria-required="true">*</span>
|
68 |
+
</label>
|
69 |
+
<input type="text" class="form-control" name="ux_txt_language" id="ux_txt_language" value="" placeholder="<?php echo $mb_language_interested_to_translate_placeholder; ?>">
|
70 |
+
</div>
|
71 |
+
<div class="form-group">
|
72 |
+
<label class="control-label">
|
73 |
+
<?php echo $mb_popup_query; ?> :
|
74 |
+
<i class="icon-custom-question tooltips" data-original-title="<?php echo $mb_popup_query_tooltip; ?>" data-placement="right"></i>
|
75 |
+
<span class="required" aria-required="true">*</span>
|
76 |
+
</label>
|
77 |
+
<textarea class="form-control" name="ux_txtarea_query" id="ux_txtarea_query" rows="7" placeholder="<?php echo $mb_popup_query_placeholder; ?>"><?php echo "Hi,\r\r\nI am interested in translating your plugin Mail Bank in my native language.\r\r\nPlease get back to me!\r\r\nThanks"; ?></textarea>
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
<div class="modal-footer">
|
81 |
+
<div class="form-actions">
|
82 |
+
<div class="pull-right">
|
83 |
+
<input type="button" data-popup-close-translator="ux_open_popup_translator" class="btn vivid-green" name="ux_btn_close" id="ux_btn_close" value="<?php echo $mb_manage_backups_close; ?>">
|
84 |
+
<input type="submit" class="btn vivid-green" name="ux_btn_send_request" id="ux_btn_send_request" value="<?php echo $mb_feature_requests_send_request; ?>">
|
85 |
+
</div>
|
86 |
+
</div>
|
87 |
+
</div>
|
88 |
+
</form>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
</div>
|
92 |
</div>
|
93 |
</div>
|
97 |
{
|
98 |
if (jQuery(this).parent("ul.page-sidebar-menu-tech-banker").size() === 1)
|
99 |
{
|
100 |
+
jQuery(this).find("> a").append("<span class=\"selected\"></span>");
|
101 |
}
|
102 |
});
|
103 |
|
107 |
var content_height = jQuery(".page-content").height() + 30;
|
108 |
if (parseInt(menus_height) > parseInt(content_height))
|
109 |
{
|
110 |
+
jQuery(".page-content").attr("style", "min-height:" + menus_height + "px")
|
111 |
} else
|
112 |
{
|
113 |
+
jQuery(".page-sidebar-menu-tech-banker").attr("style", "min-height:" + content_height + "px")
|
114 |
}
|
115 |
}
|
116 |
|
126 |
var sidebar_close = parent.children("li.open").removeClass("open");
|
127 |
if (sidebar_close)
|
128 |
{
|
129 |
+
setInterval(load_sidebar_content_mail_bank, 100);
|
130 |
}
|
131 |
if (sub.is(":visible"))
|
132 |
{
|
133 |
+
jQuery(this).parent().removeClass("open");
|
134 |
+
sub.slideUp(slideSpeed);
|
135 |
} else if (hasSubMenu)
|
136 |
{
|
137 |
+
jQuery(this).parent().addClass("open");
|
138 |
+
sub.slideDown(slideSpeed);
|
139 |
}
|
140 |
});
|
141 |
function paste_only_digits_mail_bank(control_id)
|
142 |
{
|
143 |
jQuery("#" + control_id).on("paste keypress", function (e)
|
144 |
{
|
145 |
+
var $this = jQuery("#" + control_id);
|
146 |
+
setTimeout(function ()
|
147 |
+
{
|
148 |
+
$this.val($this.val().replace(/[^0-9]/g, ""));
|
149 |
+
}, 5);
|
150 |
});
|
151 |
}
|
152 |
|
171 |
jQuery("body").append(overlay);
|
172 |
if (control_id !== undefined)
|
173 |
{
|
174 |
+
var message = control_id;
|
175 |
+
var success = <?php echo json_encode($mb_success); ?>;
|
176 |
+
var issuccessmessage = jQuery("#toast-container").exists();
|
177 |
+
if (issuccessmessage !== true)
|
178 |
+
{
|
179 |
+
var shortCutFunction = jQuery("#manage_messages input:checked").val();
|
180 |
+
toastr[shortCutFunction](message, success);
|
181 |
+
}
|
182 |
}
|
183 |
}
|
184 |
|
192 |
{
|
193 |
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
194 |
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
195 |
+
ac = 0,
|
196 |
+
enc = '',
|
197 |
+
tmp_arr = [];
|
198 |
if (!data)
|
199 |
{
|
200 |
+
return data;
|
201 |
}
|
202 |
do
|
203 |
{
|
204 |
+
o1 = data.charCodeAt(i++);
|
205 |
+
o2 = data.charCodeAt(i++);
|
206 |
+
o3 = data.charCodeAt(i++);
|
207 |
+
bits = o1 << 16 | o2 << 8 | o3;
|
208 |
+
h1 = bits >> 18 & 0x3f;
|
209 |
+
h2 = bits >> 12 & 0x3f;
|
210 |
+
h3 = bits >> 6 & 0x3f;
|
211 |
+
h4 = bits & 0x3f;
|
212 |
+
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
213 |
} while (i < data.length);
|
214 |
enc = tmp_arr.join('');
|
215 |
var r = data.length % 3;
|
230 |
var hostname = smtp_host.substr(indexof, 5);
|
231 |
if (smtp_host === "smtp.gmail.com")
|
232 |
{
|
233 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_google_credentials); ?> + ")");
|
234 |
+
jQuery("#ux_link_reference").attr("href", "https://console.developers.google.com");
|
235 |
} else if (smtp_host === "smtp.live.com")
|
236 |
{
|
237 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_microsoft_credentials); ?> + ")");
|
238 |
+
jQuery("#ux_link_reference").attr("href", "https://account.live.com/developers/applications/create");
|
239 |
} else if (hostname === "yahoo")
|
240 |
{
|
241 |
+
jQuery("#ux_link_content").text("(" +<?php echo json_encode($mb_email_configuration_get_yahoo_credentials); ?> + ")");
|
242 |
+
jQuery("#ux_link_reference").attr("href", "https://developer.yahoo.com/apps/");
|
243 |
} else
|
244 |
{
|
245 |
+
jQuery("#ux_link_content").text("");
|
246 |
}
|
247 |
}
|
248 |
|
249 |
function mail_bank_mail_sender(to_email_address)
|
250 |
{
|
251 |
jQuery.post(ajaxurl,
|
252 |
+
{
|
253 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_test_email_configuration").serialize()),
|
254 |
+
param: "mail_bank_test_email_configuration_module",
|
255 |
+
action: "mail_bank_action",
|
256 |
+
_wp_nonce: "<?php echo isset($mail_bank_test_email_configuration) ? $mail_bank_test_email_configuration : ""; ?>"
|
257 |
+
},
|
258 |
+
function (data)
|
259 |
+
{
|
260 |
+
jQuery("#ux_txtarea_result_log").html("<?php echo $mb_email_configuration_send_test_email_textarea; ?>\n");
|
261 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_sending_test_email); ?> + " " + to_email_address + "\n");
|
262 |
+
if (jQuery.trim(data) === "true" || jQuery.trim(data) === "1")
|
263 |
+
{
|
264 |
+
jQuery("#ux_div_mail_console").css("display", "block");
|
265 |
+
jQuery("#console_log_div").css("display", "none");
|
266 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_sent); ?>);
|
267 |
+
} else
|
268 |
+
{
|
269 |
+
jQuery("#console_log_div").css("display", "none");
|
270 |
+
jQuery("#ux_div_mail_console").css("display", "block");
|
271 |
+
if (jQuery.trim(data) !== "")
|
272 |
+
{
|
273 |
+
jQuery("#ux_txtarea_result_log").html(data);
|
274 |
+
} else
|
275 |
+
{
|
276 |
+
jQuery("#ux_txtarea_result_log").append(<?php echo json_encode($mb_test_email_not_send); ?>);
|
277 |
+
}
|
278 |
+
}
|
279 |
+
load_sidebar_content_mail_bank();
|
280 |
+
});
|
281 |
}
|
282 |
|
283 |
function mail_bank_send_test_mail()
|
284 |
{
|
285 |
jQuery("#ux_frm_test_email_configuration").validate
|
286 |
+
({
|
287 |
+
rules:
|
288 |
+
{
|
289 |
+
ux_txt_email:
|
290 |
+
{
|
291 |
+
required: true,
|
292 |
+
email: true
|
293 |
+
},
|
294 |
+
ux_txt_subject:
|
295 |
+
{
|
296 |
+
required: true
|
297 |
+
},
|
298 |
+
ux_content:
|
299 |
+
{
|
300 |
+
required: true
|
301 |
+
}
|
302 |
+
},
|
303 |
+
errorPlacement: function ()
|
304 |
+
{
|
305 |
+
},
|
306 |
+
highlight: function (element)
|
307 |
+
{
|
308 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
309 |
+
},
|
310 |
+
success: function (label, element)
|
311 |
+
{
|
312 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
313 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
314 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
315 |
+
},
|
316 |
+
submitHandler: function ()
|
317 |
+
{
|
318 |
+
var to_email_address = jQuery("#ux_txt_email").val();
|
319 |
+
if (window.CKEDITOR)
|
320 |
+
{
|
321 |
+
jQuery("#ux_email_configuration_text_area").val(CKEDITOR.instances["ux_content"].getData());
|
322 |
+
} else if (jQuery("#wp-ux_content-wrap").hasClass("tmce-active"))
|
323 |
+
{
|
324 |
+
jQuery("#ux_email_configuration_text_area").val(tinyMCE.get("ux_content").getContent());
|
325 |
+
} else
|
326 |
+
{
|
327 |
+
jQuery("#ux_email_configuration_text_area").val(jQuery("#ux_content").val());
|
328 |
+
}
|
329 |
+
mail_bank_mail_sender(to_email_address);
|
330 |
+
jQuery("#console_log_div").css("display", "block");
|
331 |
+
jQuery("#ux_div_test_mail").css("display", "none");
|
332 |
+
}
|
333 |
+
});
|
334 |
}
|
335 |
|
336 |
// Close popup
|
339 |
var confirm_close = confirm(<?php echo json_encode($mb_confirm_close); ?>);
|
340 |
if (confirm_close === true)
|
341 |
{
|
342 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-close-translator");
|
343 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
344 |
}
|
345 |
e.preventDefault();
|
346 |
});
|
348 |
{
|
349 |
jQuery("[data-popup-open]").on("click", function (e)
|
350 |
{
|
351 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-open");
|
352 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeIn(350);
|
353 |
+
e.preventDefault();
|
354 |
});
|
355 |
// Close popup
|
356 |
jQuery("[data-popup-close]").on("click", function (e)
|
357 |
{
|
358 |
+
var targeted_popup_class = jQuery(this).attr("data-popup-close");
|
359 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
360 |
+
e.preventDefault();
|
361 |
});
|
362 |
jQuery(document).keydown(function (e)
|
363 |
{
|
364 |
+
// ESCAPE key pressed
|
365 |
+
if (e.keyCode === 27)
|
366 |
+
{
|
367 |
+
var targeted_popup_class = jQuery("[data-popup-close]").attr("data-popup-close");
|
368 |
+
jQuery('[data-popup="' + targeted_popup_class + '"]').fadeOut(350);
|
369 |
+
}
|
370 |
});
|
371 |
}
|
372 |
|
374 |
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
375 |
var domain_url = "<?php echo site_url(); ?>";
|
376 |
jQuery("#ux_frm_language_translator").validate
|
377 |
+
({
|
378 |
+
rules:
|
379 |
+
{
|
380 |
+
ux_txt_your_name:
|
381 |
+
{
|
382 |
+
required: true
|
383 |
+
},
|
384 |
+
ux_txt_email_address:
|
385 |
+
{
|
386 |
+
required: true,
|
387 |
+
email: true
|
388 |
+
},
|
389 |
+
ux_txt_language:
|
390 |
+
{
|
391 |
+
required: true
|
392 |
+
},
|
393 |
+
ux_txtarea_query:
|
394 |
+
{
|
395 |
+
required: true
|
396 |
+
}
|
397 |
+
},
|
398 |
+
errorPlacement: function ()
|
399 |
+
{
|
400 |
+
},
|
401 |
+
highlight: function (element)
|
402 |
+
{
|
403 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
404 |
+
},
|
405 |
+
success: function (label, element)
|
406 |
+
{
|
407 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
408 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
409 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
410 |
+
},
|
411 |
+
submitHandler: function ()
|
412 |
+
{
|
413 |
+
translation_request_array.push(jQuery("#ux_txt_your_name").val());
|
414 |
+
translation_request_array.push(jQuery("#ux_txt_email_address").val());
|
415 |
+
translation_request_array.push(domain_url);
|
416 |
+
translation_request_array.push(jQuery("#ux_txt_language").val());
|
417 |
+
translation_request_array.push(jQuery("#ux_txtarea_query").val());
|
418 |
+
jQuery.post(url,
|
419 |
+
{
|
420 |
+
data: JSON.stringify(translation_request_array),
|
421 |
+
param: "mail_bank_translation_request"
|
422 |
+
},
|
423 |
+
function ()
|
424 |
+
{
|
425 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_feature_request_message) ?>);
|
426 |
+
setTimeout(function ()
|
427 |
+
{
|
428 |
+
remove_overlay_mail_bank();
|
429 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
430 |
+
}, 3000);
|
431 |
+
});
|
432 |
+
}
|
433 |
+
});
|
434 |
function show_pop_up_mail_bank()
|
435 |
{
|
436 |
open_popup_mail_bank();
|
451 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
452 |
$page_url = $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : esc_attr($_GET["page"]);
|
453 |
if (isset($_GET["page"])) {
|
454 |
+
switch ($page_url) {
|
455 |
+
case "wp_mail_bank_wizard":
|
456 |
+
?>
|
457 |
+
function show_hide_details_wp_mail_bank()
|
458 |
+
{
|
459 |
+
if (jQuery("#ux_div_wizard_set_up").hasClass("wizard-set-up"))
|
460 |
+
{
|
461 |
+
jQuery("#ux_div_wizard_set_up").css("display", "none");
|
462 |
+
jQuery("#ux_div_wizard_set_up").removeClass("wizard-set-up");
|
463 |
+
} else
|
464 |
+
{
|
465 |
+
jQuery("#ux_div_wizard_set_up").css("display", "block");
|
466 |
+
jQuery("#ux_div_wizard_set_up").addClass("wizard-set-up");
|
467 |
+
}
|
468 |
+
}
|
469 |
|
470 |
+
function plugin_stats_wp_mail_bank(type)
|
471 |
+
{
|
472 |
+
overlay_loading_mail_bank();
|
473 |
+
jQuery.post(ajaxurl,
|
474 |
+
{
|
475 |
+
type: type,
|
476 |
+
param: "wizard_wp_mail_bank",
|
477 |
+
action: "mail_bank_action",
|
478 |
+
_wp_nonce: "<?php echo $wp_mail_bank_check_status; ?>"
|
479 |
+
},
|
480 |
+
function ()
|
481 |
+
{
|
482 |
+
remove_overlay_mail_bank();
|
483 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
484 |
+
});
|
485 |
+
}
|
486 |
|
487 |
+
<?php
|
488 |
+
break;
|
489 |
+
case "mb_email_configuration":
|
490 |
+
?>
|
491 |
+
jQuery("#ux_mb_li_email_configuration").addClass("active");
|
492 |
+
<?php
|
493 |
+
if (email_configuration_mail_bank == 1) {
|
494 |
+
?>
|
495 |
+
function select_credentials_mail_bank()
|
496 |
+
{
|
497 |
+
var selected_credential = jQuery("#ux_ddl_mb_authentication").val();
|
498 |
+
var type = jQuery("#ux_ddl_type").val();
|
499 |
+
if (selected_credential === "oauth2" && type === "smtp")
|
500 |
+
{
|
501 |
+
jQuery("#ux_div_username_password_authentication").css("display", "none");
|
502 |
+
jQuery("#ux_div_oauth_authentication").css("display", "block");
|
503 |
+
check_links_oauth_mail_bank();
|
504 |
+
} else
|
505 |
+
{
|
506 |
+
if (selected_credential === "none")
|
507 |
+
{
|
508 |
+
jQuery("#ux_div_username_password_authentication").css("display", "none");
|
509 |
+
jQuery("#ux_div_oauth_authentication").css("display", "none");
|
510 |
+
} else
|
511 |
+
{
|
512 |
+
jQuery("#ux_div_username_password_authentication").css("display", "block");
|
513 |
+
jQuery("#ux_div_oauth_authentication").css("display", "none");
|
514 |
+
}
|
515 |
+
}
|
516 |
+
}
|
517 |
|
518 |
+
function mail_bank_second_step_settings()
|
519 |
+
{
|
520 |
+
jQuery("#ux_div_first_step").css("display", "none");
|
521 |
+
jQuery("#test_email").css("display", "none");
|
522 |
+
jQuery("#ux_div_second_step").css("display", "block");
|
523 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "66%");
|
524 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").addClass("active");
|
525 |
+
jQuery("#ux_div_frm_wizard li:eq(2)").removeClass("active");
|
526 |
+
}
|
527 |
|
528 |
+
function mail_bank_third_step_settings()
|
529 |
+
{
|
530 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
531 |
+
jQuery("#test_email").css("display", "block");
|
532 |
+
jQuery("#ux_div_first_step").css("display", "none");
|
533 |
+
jQuery("#ux_div_second_step").css("display", "none");
|
534 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "100%");
|
535 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").addClass("active");
|
536 |
+
jQuery("#ux_div_frm_wizard li:eq(2)").addClass("active");
|
537 |
+
}
|
538 |
|
539 |
+
function mail_bank_from_name_override()
|
540 |
+
{
|
541 |
+
var from_name = jQuery("#ux_ddl_from_name").val();
|
542 |
+
if (jQuery.trim(from_name) === "dont_override")
|
543 |
+
{
|
544 |
+
jQuery("#ux_txt_mb_from_name").attr("disabled", true);
|
545 |
+
} else
|
546 |
+
{
|
547 |
+
jQuery("#ux_txt_mb_from_name").attr("disabled", false);
|
548 |
+
}
|
549 |
+
}
|
550 |
|
551 |
+
function mail_bank_from_email_override()
|
552 |
+
{
|
553 |
+
var from_email = jQuery("#ux_ddl_from_email").val();
|
554 |
+
if (jQuery.trim(from_email) === "dont_override")
|
555 |
+
{
|
556 |
+
jQuery("#ux_txt_mb_from_email_configuration").attr("disabled", true);
|
557 |
+
} else
|
558 |
+
{
|
559 |
+
jQuery("#ux_txt_mb_from_email_configuration").attr("disabled", false);
|
560 |
+
}
|
561 |
+
}
|
562 |
|
563 |
+
function mail_bank_validate_settings()
|
564 |
+
{
|
565 |
+
jQuery("#ux_frm_email_configuration").validate
|
566 |
+
({
|
567 |
+
rules:
|
568 |
+
{
|
569 |
+
ux_txt_mb_from_name:
|
570 |
+
{
|
571 |
+
required: true
|
572 |
+
},
|
573 |
+
ux_txt_mb_from_email_configuration:
|
574 |
+
{
|
575 |
+
required: true,
|
576 |
+
email: true
|
577 |
+
},
|
578 |
+
ux_txt_email_address:
|
579 |
+
{
|
580 |
+
required: true,
|
581 |
+
email: true
|
582 |
+
},
|
583 |
+
ux_txt_host:
|
584 |
+
{
|
585 |
+
required: true
|
586 |
+
},
|
587 |
+
ux_txt_port:
|
588 |
+
{
|
589 |
+
required: true
|
590 |
+
},
|
591 |
+
ux_txt_client_id:
|
592 |
+
{
|
593 |
+
required: true
|
594 |
+
},
|
595 |
+
ux_txt_client_secret:
|
596 |
+
{
|
597 |
+
required: true
|
598 |
+
},
|
599 |
+
ux_txt_username:
|
600 |
+
{
|
601 |
+
required: true
|
602 |
+
},
|
603 |
+
ux_txt_password:
|
604 |
+
{
|
605 |
+
required: true
|
606 |
+
}
|
607 |
+
},
|
608 |
+
errorPlacement: function ()
|
609 |
+
{
|
610 |
+
},
|
611 |
+
highlight: function (element)
|
612 |
+
{
|
613 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
614 |
+
},
|
615 |
+
success: function (label, element)
|
616 |
+
{
|
617 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
618 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
619 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
620 |
+
},
|
621 |
+
submitHandler: function ()
|
622 |
+
{
|
623 |
+
if (jQuery("#ux_div_first_step").hasClass("first-step-helper"))
|
624 |
+
{
|
625 |
+
mail_bank_second_step_settings();
|
626 |
+
} else if (jQuery("#test_email").hasClass("second-step-helper"))
|
627 |
+
{
|
628 |
+
jQuery.post(ajaxurl,
|
629 |
+
{
|
630 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_email_configuration").serialize()),
|
631 |
+
action: "mail_bank_action",
|
632 |
+
param: "mail_bank_email_configuration_settings_module",
|
633 |
+
_wp_nonce: "<?php echo $mail_bank_email_configuration_settings; ?>"
|
634 |
+
},
|
635 |
+
function (data)
|
636 |
+
{
|
637 |
+
var automatic_mail = jQuery("#ux_chk_automatic_sent_mail").is(":checked");
|
638 |
+
var mailer_type = jQuery("#ux_ddl_type").val();
|
639 |
+
if (jQuery.trim(data) === "100" && mailer_type === "smtp")
|
640 |
+
{
|
641 |
+
var shortCutFunction = jQuery("#toastTypeGroup_error input:checked").val();
|
642 |
+
toastr[shortCutFunction](<?php echo json_encode($oauth_not_supported); ?>);
|
643 |
+
} else if (jQuery.trim(data) !== "" && mailer_type === "smtp")
|
644 |
+
{
|
645 |
+
window.location.href = data;
|
646 |
+
} else
|
647 |
+
{
|
648 |
+
var send_mail = false;
|
649 |
+
if (jQuery.trim(automatic_mail) === "true")
|
650 |
+
{
|
651 |
+
var send_mail = true;
|
652 |
+
}
|
653 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=" + send_mail;
|
654 |
+
}
|
655 |
+
});
|
656 |
+
}
|
657 |
+
}
|
658 |
+
});
|
659 |
+
}
|
660 |
|
661 |
+
function change_settings_mail_bank()
|
662 |
+
{
|
663 |
+
var type = jQuery("#ux_ddl_type").val();
|
664 |
+
switch (type)
|
665 |
+
{
|
666 |
+
case "php_mail_function":
|
667 |
+
jQuery("#ux_div_smtp_mail_function").css("display", "none");
|
668 |
+
break;
|
669 |
+
case "smtp":
|
670 |
+
jQuery("#ux_div_smtp_mail_function").css("display", "block");
|
671 |
+
break;
|
672 |
+
}
|
673 |
+
select_credentials_mail_bank();
|
674 |
+
}
|
675 |
|
676 |
+
function mail_bank_get_host_port()
|
677 |
+
{
|
678 |
+
change_settings_mail_bank();
|
679 |
+
var smtp_user = jQuery("#ux_txt_email_address").val();
|
680 |
+
jQuery.post(ajaxurl,
|
681 |
+
{
|
682 |
+
smtp_user: smtp_user,
|
683 |
+
param: "mail_bank_set_hostname_port_module",
|
684 |
+
action: "mail_bank_action",
|
685 |
+
_wp_nonce: "<?php echo $mail_bank_set_hostname_port; ?>"
|
686 |
+
},
|
687 |
+
function (data)
|
688 |
+
{
|
689 |
+
if (jQuery.trim(data) !== "")
|
690 |
+
{
|
691 |
+
jQuery("#ux_txt_host").val(data);
|
692 |
+
check_links_oauth_mail_bank();
|
693 |
+
} else
|
694 |
+
{
|
695 |
+
jQuery("#ux_txt_host").val("");
|
696 |
+
jQuery("#ux_link_content").text("");
|
697 |
+
}
|
698 |
+
change_settings_mail_bank();
|
699 |
+
});
|
700 |
+
}
|
701 |
|
702 |
+
function change_link_content_mail_bank()
|
703 |
+
{
|
704 |
+
var host_type = jQuery("#ux_txt_host").val();
|
705 |
+
var indexof = host_type.indexOf("yahoo");
|
706 |
+
var hostname = host_type.substr(indexof, 5);
|
707 |
+
if (host_type === "smtp.gmail.com")
|
708 |
+
{
|
709 |
+
check_links_oauth_mail_bank();
|
710 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
711 |
+
select_credentials_mail_bank();
|
712 |
+
} else if (host_type === "smtp.live.com")
|
713 |
+
{
|
714 |
+
check_links_oauth_mail_bank();
|
715 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
716 |
+
select_credentials_mail_bank();
|
717 |
+
} else if (hostname === "yahoo")
|
718 |
+
{
|
719 |
+
check_links_oauth_mail_bank();
|
720 |
+
jQuery("#ux_ddl_mb_authentication").val("oauth2");
|
721 |
+
select_credentials_mail_bank();
|
722 |
+
} else
|
723 |
+
{
|
724 |
+
check_links_oauth_mail_bank();
|
725 |
+
jQuery("#ux_ddl_mb_authentication").val("login");
|
726 |
+
select_credentials_mail_bank();
|
727 |
+
}
|
728 |
+
}
|
729 |
|
730 |
+
jQuery(document).ready(function ()
|
731 |
+
{
|
732 |
+
if (window.CKEDITOR)
|
733 |
+
{
|
734 |
+
CKEDITOR.replace("ux_content");
|
735 |
+
}
|
736 |
+
jQuery("#ux_ddl_type").val("<?php echo isset($email_configuration_array["mailer_type"]) ? esc_attr($email_configuration_array["mailer_type"]) : ""; ?>");
|
737 |
+
jQuery("#ux_ddl_mb_authentication").val("<?php echo isset($email_configuration_array["auth_type"]) ? esc_attr($email_configuration_array["auth_type"]) : "login"; ?>");
|
738 |
+
jQuery("#ux_ddl_from_name").val("<?php echo isset($email_configuration_array["sender_name_configuration"]) ? esc_html($email_configuration_array["sender_name_configuration"]) : ""; ?>");
|
739 |
+
jQuery("#ux_ddl_from_email").val("<?php echo isset($email_configuration_array["from_email_configuration"]) ? esc_attr($email_configuration_array["from_email_configuration"]) : ""; ?>");
|
740 |
+
jQuery("#ux_ddl_encryption").val("<?php echo isset($email_configuration_array["enc_type"]) ? esc_attr($email_configuration_array["enc_type"]) : "" ?>");
|
741 |
+
<?php
|
742 |
+
if (isset($test_secret_key_error)) {
|
743 |
+
?>
|
744 |
+
var shortCutFunction = jQuery("#toastTypeGroup_error input:checked").val();
|
745 |
+
toastr[shortCutFunction](<?php echo json_encode($test_secret_key_error); ?>);
|
746 |
+
mail_bank_second_step_settings();
|
747 |
+
<?php
|
748 |
+
}
|
749 |
+
if (isset($automatically_send_mail)) {
|
750 |
+
?>
|
751 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=true";
|
752 |
+
<?php
|
753 |
+
} elseif (isset($automatically_not_send_mail)) {
|
754 |
+
?>
|
755 |
+
window.location.href = "admin.php?page=mb_email_configuration&auto_mail=false";
|
756 |
+
<?php
|
757 |
+
}
|
758 |
+
?>
|
759 |
+
load_sidebar_content_mail_bank();
|
760 |
+
//change_link_content_mail_bank();
|
761 |
+
select_credentials_mail_bank();
|
762 |
+
change_settings_mail_bank();
|
763 |
+
mail_bank_from_name_override();
|
764 |
+
mail_bank_from_email_override();
|
765 |
+
<?php
|
766 |
+
if (isset($_REQUEST["auto_mail"]) && esc_attr($_REQUEST["auto_mail"]) == "true") {
|
767 |
+
?>
|
768 |
+
mail_bank_mail_sender("<?php echo get_option('admin_email'); ?>");
|
769 |
+
jQuery("#console_log_div").css("display", "block");
|
770 |
+
jQuery("#ux_div_mail_console").css("display", "none");
|
771 |
+
jQuery("#ux_div_test_mail").css("display", "none");
|
772 |
+
mail_bank_third_step_settings();
|
773 |
+
<?php
|
774 |
+
} elseif (isset($_REQUEST["auto_mail"]) && esc_attr($_REQUEST["auto_mail"]) == "false") {
|
775 |
+
?>
|
776 |
+
jQuery("#ux_div_mail_console").css("display", "none");
|
777 |
+
jQuery("#ux_div_test_mail").css("display", "block");
|
778 |
+
mail_bank_third_step_settings();
|
779 |
+
<?php
|
780 |
+
}
|
781 |
+
if ($email_configuration_array["hostname"] != "") {
|
782 |
+
?>
|
783 |
+
jQuery("#ux_txt_host").val("<?php echo isset($email_configuration_array["hostname"]) ? esc_attr($email_configuration_array["hostname"]) : ""; ?>");
|
784 |
+
<?php
|
785 |
+
} else {
|
786 |
+
?>
|
787 |
+
mail_bank_get_host_port();
|
788 |
+
<?php
|
789 |
+
}
|
790 |
+
?>
|
791 |
+
});
|
792 |
+
function mail_bank_move_to_second_step()
|
793 |
+
{
|
794 |
+
jQuery("#ux_div_first_step").addClass("first-step-helper");
|
795 |
+
mail_bank_validate_settings();
|
796 |
+
}
|
797 |
|
798 |
+
function mail_bank_move_to_first_step()
|
799 |
+
{
|
800 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
801 |
+
jQuery("#test_email").removeClass("second-step-helper");
|
802 |
+
jQuery("#ux_div_first_step").css("display", "block");
|
803 |
+
jQuery("#test_email").css("display", "none");
|
804 |
+
jQuery("#ux_div_second_step").css("display", "none");
|
805 |
+
jQuery("#ux_div_step_progres_bar_width").css("width", "33%");
|
806 |
+
jQuery("#ux_div_frm_wizard li:eq(1)").removeClass("active");
|
807 |
+
}
|
808 |
|
809 |
+
function mail_bank_save_changes()
|
810 |
+
{
|
811 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_email_configuration); ?>);
|
812 |
+
setTimeout(function ()
|
813 |
+
{
|
814 |
+
remove_overlay_mail_bank();
|
815 |
+
window.location.href = "admin.php?page=mb_email_configuration";
|
816 |
+
}, 3000);
|
817 |
+
}
|
818 |
|
819 |
+
function mail_bank_move_to_third_step()
|
820 |
+
{
|
821 |
+
mail_bank_validate_settings();
|
822 |
+
jQuery("#ux_div_first_step").removeClass("first-step-helper");
|
823 |
+
jQuery("#test_email").addClass("second-step-helper");
|
824 |
+
}
|
825 |
|
826 |
+
function mail_bank_select_port()
|
827 |
+
{
|
828 |
+
var encryption = jQuery("#ux_ddl_encryption").val();
|
829 |
+
switch (encryption)
|
830 |
+
{
|
831 |
+
case "none":
|
832 |
+
case "tls":
|
833 |
+
jQuery("#ux_txt_port").val(587);
|
834 |
+
break;
|
835 |
+
case "ssl":
|
836 |
+
jQuery("#ux_txt_port").val(465);
|
837 |
+
break;
|
838 |
+
}
|
839 |
+
}
|
840 |
|
841 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
842 |
+
setTimeout(function ()
|
843 |
+
{
|
844 |
+
clearInterval(sidebar_load_interval);
|
845 |
+
}, 5000);
|
846 |
+
load_sidebar_content_mail_bank();
|
847 |
+
<?php
|
848 |
+
}
|
849 |
+
break;
|
850 |
+
case "mb_test_email":
|
851 |
+
?>
|
852 |
+
jQuery("#ux_mb_li_test_email").addClass("active");
|
853 |
+
jQuery(document).ready(function ()
|
854 |
+
{
|
855 |
+
if (window.CKEDITOR)
|
856 |
+
{
|
857 |
+
CKEDITOR.replace("ux_content");
|
858 |
+
}
|
859 |
+
});
|
860 |
+
<?php
|
861 |
+
break;
|
862 |
+
case "mb_connectivity_test":
|
863 |
+
?>
|
864 |
+
jQuery("#ux_mb_li_connectivity_test").addClass("active");
|
865 |
+
<?php
|
866 |
+
if (conectivity_test_email_mail_bank == 1) {
|
867 |
+
?>
|
868 |
+
jQuery("#ux_frm_settings").validate
|
869 |
+
({
|
870 |
+
rules:
|
871 |
+
{
|
872 |
+
ux_txt_conn_search:
|
873 |
+
{
|
874 |
+
required: true
|
875 |
+
}
|
876 |
+
},
|
877 |
+
errorPlacement: function ()
|
878 |
+
{
|
879 |
+
},
|
880 |
+
highlight: function (element)
|
881 |
+
{
|
882 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
883 |
+
},
|
884 |
+
success: function (label, element)
|
885 |
+
{
|
886 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
887 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
888 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
889 |
+
},
|
890 |
+
submitHandler: function ()
|
891 |
+
{
|
892 |
+
jQuery("#ux_div_connectivity_test").css("display", "block");
|
893 |
+
overlay_loading_mail_bank();
|
894 |
+
jQuery.post(ajaxurl,
|
895 |
+
{
|
896 |
+
smtp_host: jQuery("#ux_txt_conn_search").val(),
|
897 |
+
param: "mail_bank_connectivity_test",
|
898 |
+
action: "mail_bank_action",
|
899 |
+
_wp_nonce: "<?php echo $connectivity_test_nonce; ?>"
|
900 |
+
},
|
901 |
+
function (data)
|
902 |
+
{
|
903 |
+
jQuery("#ux_tbody_smtp").html(data);
|
904 |
+
setTimeout(function ()
|
905 |
+
{
|
906 |
+
remove_overlay_mail_bank();
|
907 |
+
}, 1000);
|
908 |
+
});
|
909 |
+
}
|
910 |
+
});
|
911 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
912 |
+
setTimeout(function ()
|
913 |
+
{
|
914 |
+
clearInterval(sidebar_load_interval);
|
915 |
+
}, 5000);
|
916 |
+
<?php
|
917 |
+
}
|
918 |
+
break;
|
919 |
+
case "mb_email_logs":
|
920 |
+
?>
|
921 |
+
jQuery("#ux_mb_li_email_logs").addClass("active");
|
922 |
+
<?php
|
923 |
+
if (email_logs_mail_bank == 1) {
|
924 |
+
?>
|
925 |
+
jQuery(document).ready(function ()
|
926 |
+
{
|
927 |
+
jQuery("#ux_txt_mb_start_date").datepicker
|
928 |
+
({
|
929 |
+
dateFormat: 'mm/dd/yy',
|
930 |
+
numberOfMonths: 1,
|
931 |
+
changeMonth: true,
|
932 |
+
changeYear: true,
|
933 |
+
yearRange: "1970:2039",
|
934 |
+
onSelect: function (selected)
|
935 |
+
{
|
936 |
+
jQuery("#ux_txt_mb_end_date").datepicker("option", "minDate", selected)
|
937 |
+
}
|
938 |
+
});
|
939 |
+
jQuery("#ux_txt_mb_end_date").datepicker
|
940 |
+
({
|
941 |
+
dateFormat: 'mm/dd/yy',
|
942 |
+
numberOfMonths: 1,
|
943 |
+
changeMonth: true,
|
944 |
+
changeYear: true,
|
945 |
+
yearRange: "1970:2039",
|
946 |
+
onSelect: function (selected)
|
947 |
+
{
|
948 |
+
jQuery("#ux_txt_mb_start_date").datepicker("option", "maxDate", selected)
|
949 |
+
}
|
950 |
+
});
|
951 |
+
});
|
952 |
+
function prevent_datepicker_mail_bank(id)
|
953 |
+
{
|
954 |
+
jQuery("#" + id).on("keypress", function (e)
|
955 |
+
{
|
956 |
+
e.preventDefault();
|
957 |
+
});
|
958 |
+
}
|
959 |
|
960 |
+
var oTable = jQuery("#ux_tbl_email_logs").dataTable
|
961 |
+
({
|
962 |
+
"pagingType": "full_numbers",
|
963 |
+
"language":
|
964 |
+
{
|
965 |
+
"emptyTable": "No data available in table",
|
966 |
+
"info": "Showing _START_ to _END_ of _TOTAL_ entries",
|
967 |
+
"infoEmpty": "No entries found",
|
968 |
+
"infoFiltered": "(filtered1 from _MAX_ total entries)",
|
969 |
+
"lengthMenu": "Show _MENU_ entries",
|
970 |
+
"search": "Search:",
|
971 |
+
"zeroRecords": "No matching records found"
|
972 |
+
},
|
973 |
+
"bSort": true,
|
974 |
+
"pageLength": 10,
|
975 |
+
"aoColumnDefs": [{"bSortable": false, "aTargets": [0]}]
|
976 |
+
});
|
977 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
978 |
+
setTimeout(function ()
|
979 |
+
{
|
980 |
+
clearInterval(sidebar_load_interval);
|
981 |
+
}, 5000);
|
982 |
+
jQuery("#ux_chk_all_email_logs").click(function ()
|
983 |
+
{
|
984 |
+
jQuery("input[type=checkbox]", oTable.fnGetFilteredNodes()).attr("checked", this.checked);
|
985 |
+
});
|
986 |
+
function check_email_logs()
|
987 |
+
{
|
988 |
+
if (jQuery("input:checked", oTable.fnGetFilteredNodes()).length === jQuery("input[type=checkbox]", oTable.fnGetFilteredNodes()).length)
|
989 |
+
{
|
990 |
+
jQuery("#ux_chk_all_email_logs").attr("checked", "checked");
|
991 |
+
} else
|
992 |
+
{
|
993 |
+
jQuery("#ux_chk_all_email_logs").removeAttr("checked");
|
994 |
+
}
|
995 |
+
}
|
996 |
|
997 |
+
var ux_frm_email_logs = jQuery("#ux_frm_email_logs").validate
|
998 |
+
({
|
999 |
+
submitHandler: function ()
|
1000 |
+
{
|
1001 |
+
premium_edition_notification_mail_bank();
|
1002 |
+
}
|
1003 |
+
});
|
1004 |
+
load_sidebar_content_mail_bank();
|
1005 |
+
<?php
|
1006 |
+
}
|
1007 |
+
break;
|
1008 |
+
case "mb_settings":
|
1009 |
+
?>
|
1010 |
+
jQuery("#ux_mb_li_settings").addClass("active");
|
1011 |
+
<?php
|
1012 |
+
if (settings_mail_bank == 1) {
|
1013 |
+
?>
|
1014 |
+
jQuery(document).ready(function ()
|
1015 |
+
{
|
1016 |
+
jQuery("#ux_ddl_debug_mode").val("<?php echo isset($settings_data_array["debug_mode"]) ? esc_attr($settings_data_array["debug_mode"]) : "enable"; ?>");
|
1017 |
+
jQuery("#ux_ddl_remove_tables").val("<?php echo isset($settings_data_array["remove_tables_at_uninstall"]) ? esc_attr($settings_data_array["remove_tables_at_uninstall"]) : "disable"; ?>");
|
1018 |
+
jQuery("#ux_ddl_monitor_email_logs").val("<?php echo isset($settings_data_array["monitor_email_logs"]) ? esc_attr($settings_data_array["monitor_email_logs"]) : "enable"; ?>");
|
1019 |
+
});
|
1020 |
+
jQuery("#ux_frm_settings").validate
|
1021 |
+
({
|
1022 |
+
submitHandler: function ()
|
1023 |
+
{
|
1024 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_settings); ?>);
|
1025 |
+
jQuery.post(ajaxurl,
|
1026 |
+
{
|
1027 |
+
data: base64_encode_mail_bank(jQuery("#ux_frm_settings").serialize()),
|
1028 |
+
action: "mail_bank_action",
|
1029 |
+
param: "mail_bank_settings_module",
|
1030 |
+
_wp_nonce: "<?php echo $mail_bank_settings; ?>"
|
1031 |
+
},
|
1032 |
+
function ()
|
1033 |
+
{
|
1034 |
+
setTimeout(function ()
|
1035 |
+
{
|
1036 |
+
remove_overlay_mail_bank();
|
1037 |
+
window.location.href = "admin.php?page=mb_settings";
|
1038 |
+
}, 3000);
|
1039 |
+
});
|
1040 |
+
}
|
1041 |
+
});
|
1042 |
+
load_sidebar_content_mail_bank();
|
1043 |
+
<?php
|
1044 |
+
}
|
1045 |
+
break;
|
1046 |
+
case "mb_roles_and_capabilities":
|
1047 |
+
?>
|
1048 |
+
jQuery("#ux_mb_li_roles_and_capabilities").addClass("active");
|
1049 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1050 |
+
setTimeout(function ()
|
1051 |
+
{
|
1052 |
+
clearInterval(sidebar_load_interval);
|
1053 |
+
}, 5000);
|
1054 |
+
<?php
|
1055 |
+
if (roles_and_capabilities_mail_bank == 1) {
|
1056 |
+
?>
|
1057 |
+
function full_control_function_mail_bank(id, div_id)
|
1058 |
+
{
|
1059 |
+
var checkbox_id = jQuery(id).prop("checked");
|
1060 |
+
jQuery("#" + div_id + " input[type=checkbox]").each(function ()
|
1061 |
+
{
|
1062 |
+
if (checkbox_id)
|
1063 |
+
{
|
1064 |
+
jQuery(this).attr("checked", "checked");
|
1065 |
+
if (jQuery(id).attr("id") !== jQuery(this).attr("id"))
|
1066 |
+
{
|
1067 |
+
jQuery(this).attr("disabled", "disabled");
|
1068 |
+
}
|
1069 |
+
} else
|
1070 |
+
{
|
1071 |
+
if (jQuery(id).attr("id") !== jQuery(this).attr("id"))
|
1072 |
+
{
|
1073 |
+
jQuery(this).removeAttr("disabled");
|
1074 |
+
jQuery("#ux_chk_other_capabilities_manage_options").attr("disabled", "disabled");
|
1075 |
+
jQuery("#ux_chk_other_capabilities_read").attr("checked", "checked").attr("disabled", "disabled");
|
1076 |
+
}
|
1077 |
+
}
|
1078 |
+
});
|
1079 |
+
}
|
1080 |
|
1081 |
+
function show_roles_capabilities_mail_bank(id, div_id)
|
1082 |
+
{
|
1083 |
+
if (jQuery(id).prop("checked"))
|
1084 |
+
{
|
1085 |
+
jQuery("#" + div_id).css("display", "block");
|
1086 |
+
} else
|
1087 |
+
{
|
1088 |
+
jQuery("#" + div_id).css("display", "none");
|
1089 |
+
}
|
1090 |
+
}
|
1091 |
|
1092 |
+
jQuery(document).ready(function ()
|
1093 |
+
{
|
1094 |
+
jQuery("#ux_ddl_mail_bank_menu").val("<?php echo isset($details_roles_capabilities["show_mail_bank_top_bar_menu"]) ? esc_attr($details_roles_capabilities["show_mail_bank_top_bar_menu"]) : "enable"; ?>");
|
1095 |
+
show_roles_capabilities_mail_bank("#ux_chk_author", "ux_div_author_roles");
|
1096 |
+
full_control_function_mail_bank("#ux_chk_full_control_author", "ux_div_author_roles");
|
1097 |
+
show_roles_capabilities_mail_bank("#ux_chk_editor", "ux_div_editor_roles");
|
1098 |
+
full_control_function_mail_bank("#ux_chk_full_control_editor", "ux_div_editor_roles");
|
1099 |
+
show_roles_capabilities_mail_bank("#ux_chk_contributor", "ux_div_contributor_roles");
|
1100 |
+
full_control_function_mail_bank("#ux_chk_full_control_contributor", "ux_div_contributor_roles");
|
1101 |
+
show_roles_capabilities_mail_bank("#ux_chk_subscriber", "ux_div_subscriber_roles");
|
1102 |
+
full_control_function_mail_bank("#ux_chk_full_control_subscriber", "ux_div_subscriber_roles");
|
1103 |
+
show_roles_capabilities_mail_bank("#ux_chk_others_privileges", "ux_div_other_privileges_roles");
|
1104 |
+
full_control_function_mail_bank("#ux_chk_full_control_other_privileges_roles", "ux_div_other_privileges_roles");
|
1105 |
+
full_control_function_mail_bank("#ux_chk_full_control_other_roles", "ux_div_other_roles");
|
1106 |
+
});
|
1107 |
+
jQuery("#ux_frm_roles_and_capabilities").validate
|
1108 |
+
({
|
1109 |
+
submitHandler: function ()
|
1110 |
+
{
|
1111 |
+
premium_edition_notification_mail_bank();
|
1112 |
+
}
|
1113 |
+
});
|
1114 |
+
load_sidebar_content_mail_bank();
|
1115 |
+
<?php
|
1116 |
+
}
|
1117 |
+
break;
|
1118 |
+
case "mb_feedbacks":
|
1119 |
+
?>
|
1120 |
+
jQuery("#ux_mb_li_feedbacks").addClass("active");
|
1121 |
+
load_sidebar_content_mail_bank();
|
1122 |
+
var feedback_array = [];
|
1123 |
+
var url = "<?php echo tech_banker_url . "/feedbacks.php"; ?>";
|
1124 |
+
var domain_url = "<?php echo site_url(); ?>";
|
1125 |
+
jQuery("#ux_frm_feedbacks").validate
|
1126 |
+
({
|
1127 |
+
rules:
|
1128 |
+
{
|
1129 |
+
ux_txt_your_name:
|
1130 |
+
{
|
1131 |
+
required: true
|
1132 |
+
},
|
1133 |
+
ux_txt_email_address:
|
1134 |
+
{
|
1135 |
+
required: true,
|
1136 |
+
email: true
|
1137 |
+
},
|
1138 |
+
ux_txtarea_feedbacks:
|
1139 |
+
{
|
1140 |
+
required: true
|
1141 |
+
}
|
1142 |
+
},
|
1143 |
+
errorPlacement: function ()
|
1144 |
+
{
|
1145 |
+
},
|
1146 |
+
highlight: function (element)
|
1147 |
+
{
|
1148 |
+
jQuery(element).closest(".form-group").removeClass("has-success").addClass("has-error");
|
1149 |
+
},
|
1150 |
+
success: function (label, element)
|
1151 |
+
{
|
1152 |
+
var icon = jQuery(element).parent(".input-icon").children("i");
|
1153 |
+
jQuery(element).closest(".form-group").removeClass("has-error").addClass("has-success");
|
1154 |
+
icon.removeClass("fa-warning").addClass("fa-check");
|
1155 |
+
},
|
1156 |
+
submitHandler: function ()
|
1157 |
+
{
|
1158 |
+
feedback_array.push(jQuery("#ux_txt_your_name").val(), jQuery("#ux_txt_email_address").val(), domain_url, jQuery("#ux_txtarea_feedbacks").val());
|
1159 |
+
overlay_loading_mail_bank(<?php echo json_encode($mb_update_feedbacks); ?>);
|
1160 |
+
jQuery.post(url,
|
1161 |
+
{
|
1162 |
+
data: JSON.stringify(feedback_array),
|
1163 |
+
param: "mail_bank_send_feedback"
|
1164 |
+
},
|
1165 |
+
function ()
|
1166 |
+
{
|
1167 |
+
setTimeout(function ()
|
1168 |
+
{
|
1169 |
+
remove_overlay_mail_bank();
|
1170 |
+
window.location.href = "admin.php?page=mb_feedbacks";
|
1171 |
+
}, 3000);
|
1172 |
+
});
|
1173 |
+
}
|
1174 |
+
});
|
1175 |
+
load_sidebar_content_mail_bank();
|
1176 |
+
<?php
|
1177 |
+
break;
|
1178 |
+
case "mb_system_information":
|
1179 |
+
?>
|
1180 |
+
jQuery("#ux_mb_li_system_information").addClass("active");
|
1181 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1182 |
+
setTimeout(function ()
|
1183 |
+
{
|
1184 |
+
clearInterval(sidebar_load_interval);
|
1185 |
+
}, 5000);
|
1186 |
+
<?php
|
1187 |
+
if (system_information_mail_bank == 1) {
|
1188 |
+
?>
|
1189 |
+
jQuery.getSystemReport = function (strDefault, stringCount, string, location)
|
1190 |
+
{
|
1191 |
+
var o = strDefault.toString();
|
1192 |
+
if (!string)
|
1193 |
+
{
|
1194 |
+
string = "0";
|
1195 |
+
}
|
1196 |
+
while (o.length < stringCount)
|
1197 |
+
{
|
1198 |
+
if (location === "undefined")
|
1199 |
+
{
|
1200 |
+
o = string + o;
|
1201 |
+
} else
|
1202 |
+
{
|
1203 |
+
o = o + string;
|
1204 |
+
}
|
1205 |
+
}
|
1206 |
+
return o;
|
1207 |
+
};
|
1208 |
+
jQuery(".system-report").click(function ()
|
1209 |
+
{
|
1210 |
+
var report = "";
|
1211 |
+
jQuery(".custom-form-body").each(function ()
|
1212 |
+
{
|
1213 |
+
jQuery("h3.form-section", jQuery(this)).each(function ()
|
1214 |
+
{
|
1215 |
+
report = report + "\n### " + jQuery.trim(jQuery(this).text()) + " ###\n\n";
|
1216 |
+
});
|
1217 |
+
jQuery("tbody > tr", jQuery(this)).each(function ()
|
1218 |
+
{
|
1219 |
+
var the_name = jQuery.getSystemReport(jQuery.trim(jQuery(this).find("strong").text()), 25, " ");
|
1220 |
+
var the_value = jQuery.trim(jQuery(this).find("span").text());
|
1221 |
+
var value_array = the_value.split(", ");
|
1222 |
+
if (value_array.length > 1)
|
1223 |
+
{
|
1224 |
+
var temp_line = "";
|
1225 |
+
jQuery.each(value_array, function (key, line)
|
1226 |
+
{
|
1227 |
+
var tab = (key == 0) ? 0 : 25;
|
1228 |
+
temp_line = temp_line + jQuery.getSystemReport("", tab, " ", "f") + line + "\n";
|
1229 |
+
});
|
1230 |
+
the_value = temp_line;
|
1231 |
+
}
|
1232 |
+
report = report + "" + the_name + the_value + "\n";
|
1233 |
+
});
|
1234 |
+
});
|
1235 |
+
try
|
1236 |
+
{
|
1237 |
+
jQuery("#ux_system_information").slideDown();
|
1238 |
+
jQuery("#ux_system_information textarea").val(report).focus().select();
|
1239 |
+
return false;
|
1240 |
+
} catch (e)
|
1241 |
+
{
|
1242 |
+
}
|
1243 |
+
return false;
|
1244 |
+
});
|
1245 |
+
jQuery("#ux_btn_system_information").click(function ()
|
1246 |
+
{
|
1247 |
+
if (jQuery("#ux_btn_system_information").text() === "Close System Information!")
|
1248 |
+
{
|
1249 |
+
jQuery("#ux_system_information").slideUp();
|
1250 |
+
jQuery("#ux_btn_system_information").html("Get System Information!");
|
1251 |
+
} else
|
1252 |
+
{
|
1253 |
+
jQuery("#ux_btn_system_information").html("Close System Information!");
|
1254 |
+
jQuery("#ux_btn_system_information").removeClass("system-information");
|
1255 |
+
jQuery("#ux_btn_system_information").addClass("close-information");
|
1256 |
+
}
|
1257 |
+
});
|
1258 |
+
load_sidebar_content_mail_bank();
|
1259 |
+
<?php
|
1260 |
+
}
|
1261 |
+
break;
|
1262 |
|
1263 |
+
case "mb_upgrade":
|
1264 |
+
?>
|
1265 |
+
jQuery("#ux_li_upgrade").addClass("active");
|
1266 |
+
var sidebar_load_interval = setInterval(load_sidebar_content_mail_bank, 1000);
|
1267 |
+
setTimeout(function ()
|
1268 |
+
{
|
1269 |
+
clearInterval(sidebar_load_interval);
|
1270 |
+
}, 5000);
|
1271 |
+
load_sidebar_content_mail_bank();
|
1272 |
+
<?php
|
1273 |
+
break;
|
1274 |
+
}
|
1275 |
}
|
1276 |
?>
|
1277 |
</script>
|
includes/google-authentication-mail-bank.php
CHANGED
@@ -12,60 +12,60 @@ if (!class_exists("google_authentication_mail_bank")) {
|
|
12 |
class google_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
|
21 |
// Constructor
|
22 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri, $sender_email) {
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
}
|
30 |
|
31 |
// This function request the token code
|
32 |
public function get_token_code($state_id) {
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
|
44 |
-
|
45 |
}
|
46 |
|
47 |
// This function process the token code
|
48 |
public function process_token_Code($state_id) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
|
71 |
}
|
12 |
class google_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
+
$client_id,
|
16 |
+
$client_secret,
|
17 |
+
$callback_uri,
|
18 |
+
$sender_email,
|
19 |
+
$token_url;
|
20 |
|
21 |
// Constructor
|
22 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri, $sender_email) {
|
23 |
+
$this->sender_email = $sender_email;
|
24 |
+
$this->client_id = $client_id;
|
25 |
+
$this->client_secret = $client_secret;
|
26 |
+
$this->callback_uri = $callback_uri;
|
27 |
+
$this->token_url = "https://www.googleapis.com/oauth2/v3/token";
|
28 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
29 |
}
|
30 |
|
31 |
// This function request the token code
|
32 |
public function get_token_code($state_id) {
|
33 |
+
$configurations = array(
|
34 |
+
"response_type" => "code",
|
35 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
36 |
+
"client_id" => $this->client_id,
|
37 |
+
"scope" => urlencode("https://mail.google.com/"),
|
38 |
+
"access_type" => "offline",
|
39 |
+
"approval_prompt" => "force",
|
40 |
+
"state" => $state_id,
|
41 |
+
"login_hint" => $this->sender_email
|
42 |
+
);
|
43 |
|
44 |
+
echo $oauth_url = "https://accounts.google.com/o/oauth2/auth?" . build_query($configurations);
|
45 |
}
|
46 |
|
47 |
// This function process the token code
|
48 |
public function process_token_Code($state_id) {
|
49 |
+
if (isset($_REQUEST["access_token"])) {
|
50 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
51 |
+
$configurations = array(
|
52 |
+
"client_id" => $this->client_id,
|
53 |
+
"client_secret" => $this->client_secret,
|
54 |
+
"grant_type" => "authorization_code",
|
55 |
+
"redirect_uri" => $this->callback_uri,
|
56 |
+
"code" => $code
|
57 |
+
);
|
58 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations);
|
59 |
+
$test_error = $this->process_response($response);
|
60 |
+
if (isset($test_error->error)) {
|
61 |
+
return $test_error;
|
62 |
+
} else {
|
63 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("google");
|
64 |
+
return "1";
|
65 |
+
}
|
66 |
+
} else {
|
67 |
+
return false;
|
68 |
+
}
|
69 |
}
|
70 |
|
71 |
}
|
includes/header.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -26,14 +26,14 @@ if (!is_user_logged_in()) {
|
|
26 |
<div class="page-container">
|
27 |
<div id="manage_messages" style="display:none;">
|
28 |
<div class="radio">
|
29 |
-
|
30 |
</div>
|
31 |
</div>
|
32 |
<div id="toastTypeGroup_error" style="display:none;">
|
33 |
<div class="radio">
|
34 |
-
|
35 |
</div>
|
36 |
</div>
|
37 |
-
|
38 |
}
|
39 |
}
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
26 |
<div class="page-container">
|
27 |
<div id="manage_messages" style="display:none;">
|
28 |
<div class="radio">
|
29 |
+
<input type="radio" value="success" checked="checked" />
|
30 |
</div>
|
31 |
</div>
|
32 |
<div id="toastTypeGroup_error" style="display:none;">
|
33 |
<div class="radio">
|
34 |
+
<input type="radio" value="error" checked=""/>
|
35 |
</div>
|
36 |
</div>
|
37 |
+
<?php
|
38 |
}
|
39 |
}
|
includes/mail-bank-configuration-provider.php
CHANGED
@@ -8,17 +8,17 @@ if (!class_exists("mail_bank_configuration_provider")) {
|
|
8 |
class mail_bank_configuration_provider {
|
9 |
|
10 |
public function get_configuration_settings() {
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
}
|
23 |
|
24 |
}
|
8 |
class mail_bank_configuration_provider {
|
9 |
|
10 |
public function get_configuration_settings() {
|
11 |
+
global $wpdb;
|
12 |
+
$email_configuration_data = $wpdb->get_var
|
13 |
+
(
|
14 |
+
$wpdb->prepare
|
15 |
+
(
|
16 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
17 |
+
" WHERE meta_key=%s", "email_configuration"
|
18 |
+
)
|
19 |
+
);
|
20 |
+
$email_configuration_array = maybe_unserialize($email_configuration_data);
|
21 |
+
return $email_configuration_array;
|
22 |
}
|
23 |
|
24 |
}
|
includes/mail-bank-configure-transport.php
CHANGED
@@ -12,50 +12,50 @@ if (!class_exists("mail_bank_configure_transport")) {
|
|
12 |
class mail_bank_configure_transport {
|
13 |
|
14 |
public function configure_plain_transport() {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
}
|
34 |
|
35 |
public function configure_oauth_transport() {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
}
|
60 |
|
61 |
}
|
12 |
class mail_bank_configure_transport {
|
13 |
|
14 |
public function configure_plain_transport() {
|
15 |
+
$obj_mail_bank_configuration_provider = new mail_bank_configuration_provider();
|
16 |
+
$configuration_setting = $obj_mail_bank_configuration_provider->get_configuration_settings();
|
17 |
+
|
18 |
+
$port = $configuration_setting["port"];
|
19 |
+
$enc_type = $configuration_setting["enc_type"];
|
20 |
+
|
21 |
+
//set configurations
|
22 |
+
$config = array(
|
23 |
+
"port" => $port
|
24 |
+
);
|
25 |
+
if ($enc_type != "none") {
|
26 |
+
$config["ssl"] = $enc_type;
|
27 |
+
}
|
28 |
+
|
29 |
+
$config["auth"] = $configuration_setting["auth_type"];
|
30 |
+
$config["username"] = $configuration_setting["username"];
|
31 |
+
$config["password"] = base64_decode($configuration_setting["password"]);
|
32 |
+
return $config;
|
33 |
}
|
34 |
|
35 |
public function configure_oauth_transport() {
|
36 |
+
$obj_mail_bank_configuration_provider = new mail_bank_configuration_provider();
|
37 |
+
$configuration_setting = $obj_mail_bank_configuration_provider->get_configuration_settings();
|
38 |
+
$sender_email = $configuration_setting["email_address"];
|
39 |
+
|
40 |
+
//set vendor name for yahoo
|
41 |
+
$vendor = "";
|
42 |
+
if (mail_bank_zend_mail_helper::email_domains_mail_bank($configuration_setting["hostname"], "yahoo.com")) {
|
43 |
+
$vendor = "yahoo";
|
44 |
+
}
|
45 |
+
|
46 |
+
$obj_mail_bank_manage_token = mail_bank_manage_token::get_instance();
|
47 |
+
// create oauth2 string
|
48 |
+
$xoauth2_request = base64_encode(sprintf("user=%s\1auth=Bearer %s\1%s\1", $sender_email, $obj_mail_bank_manage_token->retrieve_access_token_mail_bank(), $vendor));
|
49 |
+
|
50 |
+
//set configurations
|
51 |
+
$config = array(
|
52 |
+
"ssl" => $configuration_setting["enc_type"],
|
53 |
+
"port" => $configuration_setting["port"],
|
54 |
+
"auth" => "oauth2",
|
55 |
+
"xoauth2_request" => $xoauth2_request
|
56 |
+
);
|
57 |
+
|
58 |
+
return $config;
|
59 |
}
|
60 |
|
61 |
}
|
includes/mail-bank-email-log.php
CHANGED
@@ -22,106 +22,106 @@ if (!class_exists("mail_bank_email_log_writter")) {
|
|
22 |
|
23 |
// This function is used to write success logs.
|
24 |
public function mb_success_log($email_logs, $email_message, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
}
|
30 |
|
31 |
// This function is used to write failure logs.
|
32 |
public function mb_failure_log($email_logs, $email_message = null, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
}
|
37 |
|
38 |
// This function writes the Email Logs.
|
39 |
public function mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $message) {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
}
|
98 |
|
99 |
// This function is used to create email logs
|
100 |
public function mb_create_email_log($email_logs, mail_bank_manage_email $email_message = null) {
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
}
|
108 |
|
109 |
// This function creates a readable "TO" entry based on the recipient header
|
110 |
public static function mb_flat_emails(array $addresses) {
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
}
|
126 |
|
127 |
}
|
22 |
|
23 |
// This function is used to write success logs.
|
24 |
public function mb_success_log($email_logs, $email_message, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
25 |
+
$status = "Sent";
|
26 |
+
$subject = $email_message->mb_get_subject();
|
27 |
+
$this->mb_create_email_log($email_logs, $email_message);
|
28 |
+
$this->mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $email_message);
|
29 |
}
|
30 |
|
31 |
// This function is used to write failure logs.
|
32 |
public function mb_failure_log($email_logs, $email_message = null, $debug_mode, $email_configuration_settings, $obj_mail_bank_manage_email) {
|
33 |
+
$status = "Not Sent";
|
34 |
+
$this->mb_create_email_log($email_logs, $email_message);
|
35 |
+
$this->mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $email_message);
|
36 |
}
|
37 |
|
38 |
// This function writes the Email Logs.
|
39 |
public function mb_email_log($email_logs, $debug_mode, $status, $email_configuration_settings, $obj_mail_bank_manage_email, $message) {
|
40 |
+
$sender = $message->get_email_address_mail_bank();
|
41 |
+
|
42 |
+
$sender_email = $email_configuration_settings["from_email_configuration"] == "override" ? $email_configuration_settings["sender_email"] : $sender->mb_get_email();
|
43 |
+
$sender_name = $email_configuration_settings["sender_name_configuration"] == "override" ? $email_configuration_settings["sender_name"] : $sender->mb_get_name();
|
44 |
+
|
45 |
+
$cc_recipients = $obj_mail_bank_manage_email->mb_get_cc_recipients();
|
46 |
+
$bcc_recipients = $obj_mail_bank_manage_email->mb_get_bcc_recipients();
|
47 |
+
$cc_address = "";
|
48 |
+
if ($email_configuration_settings["cc"] == "") {
|
49 |
+
$cc_array = array();
|
50 |
+
foreach ($cc_recipients as $recipient) {
|
51 |
+
array_push($cc_array, $recipient->email);
|
52 |
+
}
|
53 |
+
$cc_address = implode(",", $cc_array);
|
54 |
+
} else {
|
55 |
+
$cc_address = $email_configuration_settings["cc"];
|
56 |
+
}
|
57 |
+
$bcc_address = "";
|
58 |
+
if ($email_configuration_settings["bcc"] == "") {
|
59 |
+
$bcc_array = array();
|
60 |
+
foreach ($bcc_recipients as $recipient) {
|
61 |
+
array_push($bcc_array, $recipient->email);
|
62 |
+
}
|
63 |
+
$bcc_address = implode(",", $bcc_array);
|
64 |
+
} else {
|
65 |
+
$bcc_address = $email_configuration_settings["bcc"];
|
66 |
+
}
|
67 |
+
|
68 |
+
$email_logs_data_array = array();
|
69 |
+
$email_logs_data_array["email_to"] = $email_logs->to_recipients;
|
70 |
+
$email_logs_data_array["cc"] = $cc_address;
|
71 |
+
$email_logs_data_array["bcc"] = $bcc_address;
|
72 |
+
$email_logs_data_array["subject"] = $email_logs->subject;
|
73 |
+
$email_logs_data_array["content"] = $email_logs->body;
|
74 |
+
$email_logs_data_array["sender_name"] = $sender_name;
|
75 |
+
$email_logs_data_array["sender_email"] = $sender_email;
|
76 |
+
if ($debug_mode == "enable") {
|
77 |
+
$email_logs_data_array["debug_mode"] = $debug_mode;
|
78 |
+
$email_logs_data_array["debugging_output"] = get_option("mail_bank_mail_status");
|
79 |
+
}
|
80 |
+
$email_logs_data_array["timestamp"] = MAIL_BANK_LOCAL_TIME;
|
81 |
+
$email_logs_data_array["status"] = $status;
|
82 |
+
global $wpdb;
|
83 |
+
$email_logs_id = $wpdb->get_var
|
84 |
+
(
|
85 |
+
$wpdb->prepare
|
86 |
+
(
|
87 |
+
"SELECT id FROM " . mail_bank() .
|
88 |
+
" WHERE type = %s", "email_logs"
|
89 |
+
)
|
90 |
+
);
|
91 |
+
|
92 |
+
$email_logs_data = array();
|
93 |
+
$email_logs_data["meta_id"] = $email_logs_id;
|
94 |
+
$email_logs_data["meta_key"] = "email_logs";
|
95 |
+
$email_logs_data["meta_value"] = serialize($email_logs_data_array);
|
96 |
+
$wpdb->insert(mail_bank_meta(), $email_logs_data);
|
97 |
}
|
98 |
|
99 |
// This function is used to create email logs
|
100 |
public function mb_create_email_log($email_logs, mail_bank_manage_email $email_message = null) {
|
101 |
+
if ($email_message) {
|
102 |
+
$email_logs->to_recipients = $this->mb_flat_emails($email_message->mb_get_to_recipients());
|
103 |
+
$email_logs->subject = $email_message->mb_get_subject();
|
104 |
+
$email_logs->body = $email_message->mb_get_body();
|
105 |
+
}
|
106 |
+
return $email_logs;
|
107 |
}
|
108 |
|
109 |
// This function creates a readable "TO" entry based on the recipient header
|
110 |
public static function mb_flat_emails(array $addresses) {
|
111 |
+
$flat = "";
|
112 |
+
$count = 0;
|
113 |
+
foreach ($addresses as $address) {
|
114 |
+
if ($count >= 3) {
|
115 |
+
$flat .= sprintf('.. +%d more', sizeof($addresses) - $count);
|
116 |
+
break;
|
117 |
+
}
|
118 |
+
if ($count > 0) {
|
119 |
+
$flat .= ', ';
|
120 |
+
}
|
121 |
+
$flat .= $address->mb_email_format();
|
122 |
+
$count ++;
|
123 |
+
}
|
124 |
+
return $flat;
|
125 |
}
|
126 |
|
127 |
}
|
includes/mail-bank-manage-email-address.php
CHANGED
@@ -8,71 +8,71 @@ if (!class_exists("mail_bank_manage_email_address")) {
|
|
8 |
class mail_bank_manage_email_address {
|
9 |
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
|
14 |
public function __construct($email, $name = null) {
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
}
|
24 |
|
25 |
public function mb_get_name() {
|
26 |
-
|
27 |
}
|
28 |
|
29 |
public function mb_get_email() {
|
30 |
-
|
31 |
}
|
32 |
|
33 |
public function mb_email_format() {
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
}
|
41 |
|
42 |
public function mb_set_name($name) {
|
43 |
-
|
44 |
}
|
45 |
|
46 |
public function mb_set_email($email) {
|
47 |
-
|
48 |
}
|
49 |
|
50 |
// This function validate the email address.
|
51 |
public function validate_email_contents_mail_bank($description = "") {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
}
|
61 |
|
62 |
// This function takes a string or array of addresses and return an array.
|
63 |
public static function convert_string_to_array_mail_bank($emails) {
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
}
|
77 |
|
78 |
}
|
8 |
class mail_bank_manage_email_address {
|
9 |
|
10 |
public
|
11 |
+
$name,
|
12 |
+
$email;
|
13 |
|
14 |
public function __construct($email, $name = null) {
|
15 |
+
if (preg_match('/(.*)<(.+)>/', $email, $matches)) {
|
16 |
+
if (count($matches) == 3) {
|
17 |
+
$name = $matches [1];
|
18 |
+
$email = $matches [2];
|
19 |
+
}
|
20 |
+
}
|
21 |
+
$this->mb_set_email(trim($email));
|
22 |
+
$this->mb_set_name(trim($name));
|
23 |
}
|
24 |
|
25 |
public function mb_get_name() {
|
26 |
+
return $this->name;
|
27 |
}
|
28 |
|
29 |
public function mb_get_email() {
|
30 |
+
return $this->email;
|
31 |
}
|
32 |
|
33 |
public function mb_email_format() {
|
34 |
+
$name = $this->mb_get_name();
|
35 |
+
if (!empty($name)) {
|
36 |
+
return sprintf("%s <%s>", $this->mb_get_name(), $this->mb_get_email());
|
37 |
+
} else {
|
38 |
+
return sprintf("%s", $this->mb_get_email());
|
39 |
+
}
|
40 |
}
|
41 |
|
42 |
public function mb_set_name($name) {
|
43 |
+
$this->name = $name;
|
44 |
}
|
45 |
|
46 |
public function mb_set_email($email) {
|
47 |
+
$this->email = $email;
|
48 |
}
|
49 |
|
50 |
// This function validate the email address.
|
51 |
public function validate_email_contents_mail_bank($description = "") {
|
52 |
+
if (!mail_bank_zend_mail_helper::email_validation_mail_bank($this->email)) {
|
53 |
+
if (empty($description)) {
|
54 |
+
$message = sprintf('Invalid e-mail address "%s"', $this->email);
|
55 |
+
} else {
|
56 |
+
$message = sprintf('Invalid "%1$s" e-mail address "%2$s"', $description, $this->email);
|
57 |
+
}
|
58 |
+
throw new Exception($message);
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
// This function takes a string or array of addresses and return an array.
|
63 |
public static function convert_string_to_array_mail_bank($emails) {
|
64 |
+
if (!is_array($emails)) {
|
65 |
+
$t = explode(",", $emails);
|
66 |
+
$emails = array();
|
67 |
+
foreach ($t as $k => $v) {
|
68 |
+
if (strpos($v, ',') !== false) {
|
69 |
+
$t[$k] = '"' . str_replace(' <', '" <', $v);
|
70 |
+
}
|
71 |
+
$simplified_email = trim($t [$k]);
|
72 |
+
array_push($emails, $simplified_email);
|
73 |
+
}
|
74 |
+
}
|
75 |
+
return $emails;
|
76 |
}
|
77 |
|
78 |
}
|
includes/mail-bank-manage-email.php
CHANGED
@@ -13,29 +13,29 @@ if (!class_exists("mail_bank_manage_email")) {
|
|
13 |
const EOL = "\r\n";
|
14 |
|
15 |
public
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
|
33 |
// Constructor
|
34 |
function __construct() {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
|
41 |
// public static function getinstance()
|
@@ -49,326 +49,326 @@ if (!class_exists("mail_bank_manage_email")) {
|
|
49 |
// }
|
50 |
|
51 |
public function check_email_body_parts_mail_bank() {
|
52 |
-
|
53 |
}
|
54 |
|
55 |
public function validate_email_contents_mail_bank($transport) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
// This function create body parts based on content type
|
60 |
public function createBodyParts() {
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
}
|
106 |
|
107 |
// This function validate email headers
|
108 |
public function validate_email_headers_mail_bank() {
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
}
|
131 |
|
132 |
public function get_email_address_mail_bank() {
|
133 |
-
|
134 |
}
|
135 |
|
136 |
// Get the charset.
|
137 |
public function mb_get_charset() {
|
138 |
-
|
139 |
}
|
140 |
|
141 |
// Set the charset
|
142 |
public function mb_set_charset($charset) {
|
143 |
-
|
144 |
}
|
145 |
|
146 |
// Get the content type
|
147 |
public function mb_get_content_type() {
|
148 |
-
|
149 |
}
|
150 |
|
151 |
public function mb_set_content_type($content_type) {
|
152 |
-
|
153 |
}
|
154 |
|
155 |
public function mb_addto($to) {
|
156 |
-
|
157 |
}
|
158 |
|
159 |
public function mb_add_cc($cc) {
|
160 |
-
|
161 |
}
|
162 |
|
163 |
public function mb_add_bcc($bcc) {
|
164 |
-
|
165 |
}
|
166 |
|
167 |
public function mb_add_recipients(&$all_recipients, $recipients) {
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
}
|
177 |
|
178 |
// This function add headers
|
179 |
public function mb_add_headers($headers) {
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
}
|
200 |
|
201 |
// This function process headers
|
202 |
public function mb_process_header($name, $content) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
}
|
266 |
|
267 |
// Add attachments to the message
|
268 |
public function mb_add_attachments_to_mail(mail_bank_Zend_Mail $mail) {
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
}
|
285 |
|
286 |
function mb_set_body($body) {
|
287 |
-
|
288 |
}
|
289 |
|
290 |
function mb_set_body_textpart($body_textpart) {
|
291 |
-
|
292 |
}
|
293 |
|
294 |
function mb_set_body_htmlPart($body_htmlpart) {
|
295 |
-
|
296 |
}
|
297 |
|
298 |
function mb_set_subject($subject) {
|
299 |
-
|
300 |
}
|
301 |
|
302 |
function mb_set_attachments($attachments) {
|
303 |
-
|
304 |
}
|
305 |
|
306 |
function mb_set_from($email, $name = null) {
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
}
|
311 |
|
312 |
function mb_set_replyto($reply_to) {
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
}
|
317 |
|
318 |
function mb_set_messageid($message_id) {
|
319 |
-
|
320 |
}
|
321 |
|
322 |
function mb_set_date($date) {
|
323 |
-
|
324 |
}
|
325 |
|
326 |
public function mb_get_headers() {
|
327 |
-
|
328 |
}
|
329 |
|
330 |
public function mb_get_boundary() {
|
331 |
-
|
332 |
}
|
333 |
|
334 |
public function mb_get_to_recipients() {
|
335 |
-
|
336 |
}
|
337 |
|
338 |
public function mb_get_cc_recipients() {
|
339 |
-
|
340 |
}
|
341 |
|
342 |
public function mb_get_bcc_recipients() {
|
343 |
-
|
344 |
}
|
345 |
|
346 |
public function mb_get_reply_to() {
|
347 |
-
|
348 |
}
|
349 |
|
350 |
public function mb_get_date() {
|
351 |
-
|
352 |
}
|
353 |
|
354 |
public function mb_get_message_id() {
|
355 |
-
|
356 |
}
|
357 |
|
358 |
public function mb_get_subject() {
|
359 |
-
|
360 |
}
|
361 |
|
362 |
public function mb_get_body() {
|
363 |
-
|
364 |
}
|
365 |
|
366 |
public function mb_get_body_textPart() {
|
367 |
-
|
368 |
}
|
369 |
|
370 |
public function mb_get_body_html_part() {
|
371 |
-
|
372 |
}
|
373 |
|
374 |
}
|
13 |
const EOL = "\r\n";
|
14 |
|
15 |
public
|
16 |
+
$from,
|
17 |
+
$reply_to,
|
18 |
+
$to_recipients,
|
19 |
+
$cc_recipients,
|
20 |
+
$bcc_recipients,
|
21 |
+
$subject,
|
22 |
+
$body,
|
23 |
+
$body_textpart,
|
24 |
+
$body_htmlpart,
|
25 |
+
$headers,
|
26 |
+
$attachments,
|
27 |
+
$date,
|
28 |
+
$message_id,
|
29 |
+
$content_type,
|
30 |
+
$charset,
|
31 |
+
$boundary;
|
32 |
|
33 |
// Constructor
|
34 |
function __construct() {
|
35 |
+
$this->headers = array();
|
36 |
+
$this->to_recipients = array();
|
37 |
+
$this->cc_recipients = array();
|
38 |
+
$this->bcc_recipients = array();
|
39 |
}
|
40 |
|
41 |
// public static function getinstance()
|
49 |
// }
|
50 |
|
51 |
public function check_email_body_parts_mail_bank() {
|
52 |
+
return empty($this->body_textpart) && empty($this->body_htmlpart);
|
53 |
}
|
54 |
|
55 |
public function validate_email_contents_mail_bank($transport) {
|
56 |
+
$this->validate_email_headers_mail_bank();
|
57 |
}
|
58 |
|
59 |
// This function create body parts based on content type
|
60 |
public function createBodyParts() {
|
61 |
+
if (false !== stripos($this->content_type, "multipart") && !empty($this->boundary)) {
|
62 |
+
$this->content_type = sprintf("%s;\r\n\t boundary=\"%s\"", $this->content_type, $this->mb_get_boundary());
|
63 |
+
}
|
64 |
+
|
65 |
+
$body = $this->mb_get_body();
|
66 |
+
$content_type = $this->mb_get_content_type();
|
67 |
+
if ($content_type == "") {
|
68 |
+
$content_type = apply_filters("wp_mail_content_type", $content_type);
|
69 |
+
}
|
70 |
+
if (substr($content_type, 0, 9) === "text/html") {
|
71 |
+
$this->mb_set_body_htmlPart($body);
|
72 |
+
} else if (substr($content_type, 0, 10) === "text/plain") {
|
73 |
+
$this->mb_set_body_textpart($body);
|
74 |
+
} else if (substr($content_type, 0, 21) === "multipart/alternative") {
|
75 |
+
$arr = explode(PHP_EOL, $body);
|
76 |
+
$textBody = "";
|
77 |
+
$htmlBody = "";
|
78 |
+
$mode = "";
|
79 |
+
foreach ($arr as $s) {
|
80 |
+
if (substr($s, 0, 25) === "Content-Type: text/plain;") {
|
81 |
+
$mode = "foundText";
|
82 |
+
} else if (substr($s, 0, 24) === "Content-Type: text/html;") {
|
83 |
+
$mode = "foundHtml";
|
84 |
+
} else if ($mode == "textReading") {
|
85 |
+
$textBody .= $s;
|
86 |
+
} else if ($mode == "htmlReading") {
|
87 |
+
$htmlBody .= $s;
|
88 |
+
} else if ($mode == "foundText") {
|
89 |
+
$trim = trim($s);
|
90 |
+
if (empty($trim)) {
|
91 |
+
$mode = "textReading";
|
92 |
+
}
|
93 |
+
} else if ($mode == "foundHtml") {
|
94 |
+
$trim = trim($s);
|
95 |
+
if (empty($trim)) {
|
96 |
+
$mode = "htmlReading";
|
97 |
+
}
|
98 |
+
}
|
99 |
+
}
|
100 |
+
$this->mb_set_body_htmlPart($htmlBody);
|
101 |
+
$this->mb_set_body_textpart($textBody);
|
102 |
+
} else {
|
103 |
+
$this->mb_set_body_textpart($body);
|
104 |
+
}
|
105 |
}
|
106 |
|
107 |
// This function validate email headers
|
108 |
public function validate_email_headers_mail_bank() {
|
109 |
+
if (isset($this->reply_to)) {
|
110 |
+
$this->mb_get_reply_to()->validate_email_contents_mail_bank("Reply-To");
|
111 |
+
}
|
112 |
|
113 |
+
// validate the from address
|
114 |
+
$this->get_email_address_mail_bank()->validate_email_contents_mail_bank("From");
|
115 |
|
116 |
+
// validate the to recipients
|
117 |
+
foreach ((array) $this->mb_get_to_recipients() as $to_address) {
|
118 |
+
$to_address->validate_email_contents_mail_bank("To");
|
119 |
+
}
|
120 |
|
121 |
+
// validate the cc recipients
|
122 |
+
foreach ((array) $this->mb_get_cc_recipients() as $cc_address) {
|
123 |
+
$cc_address->validate_email_contents_mail_bank("Cc");
|
124 |
+
}
|
125 |
|
126 |
+
// validate the bcc recipients
|
127 |
+
foreach ((array) $this->mb_get_bcc_recipients() as $bcc_address) {
|
128 |
+
$bcc_address->validate_email_contents_mail_bank("Bcc");
|
129 |
+
}
|
130 |
}
|
131 |
|
132 |
public function get_email_address_mail_bank() {
|
133 |
+
return $this->from;
|
134 |
}
|
135 |
|
136 |
// Get the charset.
|
137 |
public function mb_get_charset() {
|
138 |
+
return $this->charset;
|
139 |
}
|
140 |
|
141 |
// Set the charset
|
142 |
public function mb_set_charset($charset) {
|
143 |
+
$this->charset = $charset;
|
144 |
}
|
145 |
|
146 |
// Get the content type
|
147 |
public function mb_get_content_type() {
|
148 |
+
return $this->content_type;
|
149 |
}
|
150 |
|
151 |
public function mb_set_content_type($content_type) {
|
152 |
+
$this->content_type = $content_type;
|
153 |
}
|
154 |
|
155 |
public function mb_addto($to) {
|
156 |
+
$this->mb_add_recipients($this->to_recipients, $to);
|
157 |
}
|
158 |
|
159 |
public function mb_add_cc($cc) {
|
160 |
+
$this->mb_add_recipients($this->cc_recipients, $cc);
|
161 |
}
|
162 |
|
163 |
public function mb_add_bcc($bcc) {
|
164 |
+
$this->mb_add_recipients($this->bcc_recipients, $bcc);
|
165 |
}
|
166 |
|
167 |
public function mb_add_recipients(&$all_recipients, $recipients) {
|
168 |
+
if (!empty($recipients)) {
|
169 |
+
$recipients = mail_bank_manage_email_address::convert_string_to_array_mail_bank($recipients);
|
170 |
+
foreach ($recipients as $recipient) {
|
171 |
+
if (!empty($recipient)) {
|
172 |
+
array_push($all_recipients, new mail_bank_manage_email_address($recipient));
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
}
|
177 |
|
178 |
// This function add headers
|
179 |
public function mb_add_headers($headers) {
|
180 |
+
if (!is_array($headers)) {
|
181 |
+
$headers = explode("\n", str_replace("\r\n", "\n", $headers));
|
182 |
+
}
|
183 |
+
foreach ($headers as $header) {
|
184 |
+
if (!empty($header)) {
|
185 |
+
if (strpos($header, ":") === false) {
|
186 |
+
if (false !== stripos($header, "boundary=")) {
|
187 |
+
$parts = preg_split("/boundary=/i", trim($header));
|
188 |
+
$this->boundary = trim(str_replace(array(
|
189 |
+
"'",
|
190 |
+
'"'
|
191 |
+
), '', $parts [1]));
|
192 |
+
}
|
193 |
+
continue;
|
194 |
+
}
|
195 |
+
list($name, $content) = explode(":", trim($header), 2);
|
196 |
+
$this->mb_process_header($name, $content);
|
197 |
+
}
|
198 |
+
}
|
199 |
}
|
200 |
|
201 |
// This function process headers
|
202 |
public function mb_process_header($name, $content) {
|
203 |
+
$name = trim($name);
|
204 |
+
$content = trim($content);
|
205 |
+
switch (strtolower($name)) {
|
206 |
+
case "content-type" :
|
207 |
+
if (strpos($content, ";") !== false) {
|
208 |
+
list($type, $charset) = explode(";", $content);
|
209 |
+
$this->mb_set_content_type(trim($type));
|
210 |
+
if (false !== stripos($charset, "charset=")) {
|
211 |
+
$charset = trim(str_replace(array(
|
212 |
+
'charset=',
|
213 |
+
'"'
|
214 |
+
), '', $charset));
|
215 |
+
} elseif (false !== stripos($charset, "boundary=")) {
|
216 |
+
$this->boundary = trim(str_replace(array(
|
217 |
+
'BOUNDARY=',
|
218 |
+
'boundary=',
|
219 |
+
'"'
|
220 |
+
), '', $charset));
|
221 |
+
$charset = '';
|
222 |
+
}
|
223 |
+
if (!empty($charset)) {
|
224 |
+
$this->mb_set_charset($charset);
|
225 |
+
}
|
226 |
+
} else {
|
227 |
+
$this->mb_set_content_type(trim($content));
|
228 |
+
}
|
229 |
+
break;
|
230 |
+
case "to" :
|
231 |
+
$this->mb_addto($content);
|
232 |
+
break;
|
233 |
+
case "cc" :
|
234 |
+
$this->mb_add_cc($content);
|
235 |
+
break;
|
236 |
+
case "bcc" :
|
237 |
+
$this->mb_add_bcc($content);
|
238 |
+
break;
|
239 |
+
case "from" :
|
240 |
+
$this->mb_set_from($content);
|
241 |
+
break;
|
242 |
+
case "subject" :
|
243 |
+
$this->mb_set_subject($content);
|
244 |
+
break;
|
245 |
+
case "reply-to" :
|
246 |
+
$this->mb_set_replyto($content);
|
247 |
+
break;
|
248 |
+
case "sender" :
|
249 |
+
break;
|
250 |
+
case "return-path" :
|
251 |
+
break;
|
252 |
+
case "date" :
|
253 |
+
$this->mb_set_date($content);
|
254 |
+
break;
|
255 |
+
case "message-id" :
|
256 |
+
$this->mb_set_messageid($content);
|
257 |
+
break;
|
258 |
+
default :
|
259 |
+
array_push($this->headers, array(
|
260 |
+
"name" => $name,
|
261 |
+
"content" => $content
|
262 |
+
));
|
263 |
+
break;
|
264 |
+
}
|
265 |
}
|
266 |
|
267 |
// Add attachments to the message
|
268 |
public function mb_add_attachments_to_mail(mail_bank_Zend_Mail $mail) {
|
269 |
+
$attachments = $this->attachments;
|
270 |
+
if (!is_array($attachments)) {
|
271 |
+
$attributes_array = explode(PHP_EOL, $attachments);
|
272 |
+
} else {
|
273 |
+
$attributes_array = $attachments;
|
274 |
+
}
|
275 |
+
foreach ($attributes_array as $file) {
|
276 |
+
if (file_exists($file)) {
|
277 |
+
$at = new mail_bank_Zend_Mime_Part(file_get_contents($file));
|
278 |
+
$at->disposition = mail_bank_Zend_Mime::DISPOSITION_ATTACHMENT;
|
279 |
+
$at->encoding = mail_bank_Zend_Mime::ENCODING_BASE64;
|
280 |
+
$at->filename = basename($file);
|
281 |
+
$mail->addAttachment($at);
|
282 |
+
}
|
283 |
+
}
|
284 |
}
|
285 |
|
286 |
function mb_set_body($body) {
|
287 |
+
$this->body = $body;
|
288 |
}
|
289 |
|
290 |
function mb_set_body_textpart($body_textpart) {
|
291 |
+
$this->body_textpart = $body_textpart;
|
292 |
}
|
293 |
|
294 |
function mb_set_body_htmlPart($body_htmlpart) {
|
295 |
+
$this->body_htmlpart = $body_htmlpart;
|
296 |
}
|
297 |
|
298 |
function mb_set_subject($subject) {
|
299 |
+
$this->subject = $subject;
|
300 |
}
|
301 |
|
302 |
function mb_set_attachments($attachments) {
|
303 |
+
$this->attachments = $attachments;
|
304 |
}
|
305 |
|
306 |
function mb_set_from($email, $name = null) {
|
307 |
+
if (!empty($email)) {
|
308 |
+
$this->from = new mail_bank_manage_email_address($email, $name);
|
309 |
+
}
|
310 |
}
|
311 |
|
312 |
function mb_set_replyto($reply_to) {
|
313 |
+
if (!empty($reply_to)) {
|
314 |
+
$this->reply_to = new mail_bank_manage_email_address($reply_to);
|
315 |
+
}
|
316 |
}
|
317 |
|
318 |
function mb_set_messageid($message_id) {
|
319 |
+
$this->message_id = $message_id;
|
320 |
}
|
321 |
|
322 |
function mb_set_date($date) {
|
323 |
+
$this->date = $date;
|
324 |
}
|
325 |
|
326 |
public function mb_get_headers() {
|
327 |
+
return $this->headers;
|
328 |
}
|
329 |
|
330 |
public function mb_get_boundary() {
|
331 |
+
return $this->boundary;
|
332 |
}
|
333 |
|
334 |
public function mb_get_to_recipients() {
|
335 |
+
return $this->to_recipients;
|
336 |
}
|
337 |
|
338 |
public function mb_get_cc_recipients() {
|
339 |
+
return $this->cc_recipients;
|
340 |
}
|
341 |
|
342 |
public function mb_get_bcc_recipients() {
|
343 |
+
return $this->bcc_recipients;
|
344 |
}
|
345 |
|
346 |
public function mb_get_reply_to() {
|
347 |
+
return $this->reply_to;
|
348 |
}
|
349 |
|
350 |
public function mb_get_date() {
|
351 |
+
return $this->date;
|
352 |
}
|
353 |
|
354 |
public function mb_get_message_id() {
|
355 |
+
return $this->message_id;
|
356 |
}
|
357 |
|
358 |
public function mb_get_subject() {
|
359 |
+
return $this->subject;
|
360 |
}
|
361 |
|
362 |
public function mb_get_body() {
|
363 |
+
return $this->body;
|
364 |
}
|
365 |
|
366 |
public function mb_get_body_textPart() {
|
367 |
+
return $this->body_textpart;
|
368 |
}
|
369 |
|
370 |
public function mb_get_body_html_part() {
|
371 |
+
return $this->body_htmlpart;
|
372 |
}
|
373 |
|
374 |
}
|
includes/mail-bank-manage-token.php
CHANGED
@@ -8,76 +8,76 @@ if (!class_exists("mail_bank_manage_token")) {
|
|
8 |
class mail_bank_manage_token {
|
9 |
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
|
16 |
public function __construct() {
|
17 |
-
|
18 |
}
|
19 |
|
20 |
public static function get_instance() {
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
}
|
27 |
|
28 |
public function isValid() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
|
34 |
public function get_token_mail_bank() {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
}
|
41 |
|
42 |
// Save the mail bank oauth token properties to the database
|
43 |
public function save_token_mail_bank() {
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
}
|
50 |
|
51 |
public function get_vendor_mail_bank() {
|
52 |
-
|
53 |
}
|
54 |
|
55 |
public function retrieve_token_expiry_time_mail_bank() {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
public function retrieve_access_token_mail_bank() {
|
60 |
-
|
61 |
}
|
62 |
|
63 |
public function retrieve_refresh_token_mail_bank() {
|
64 |
-
|
65 |
}
|
66 |
|
67 |
public function set_vendorname_mail_bank($name) {
|
68 |
-
|
69 |
}
|
70 |
|
71 |
public function set_token_expirytime_mail_bank($time) {
|
72 |
-
|
73 |
}
|
74 |
|
75 |
public function set_access_token_mail_bank($token) {
|
76 |
-
|
77 |
}
|
78 |
|
79 |
public function set_refresh_token_mail_bank($token) {
|
80 |
-
|
81 |
}
|
82 |
|
83 |
}
|
8 |
class mail_bank_manage_token {
|
9 |
|
10 |
public
|
11 |
+
$vendor_name,
|
12 |
+
$access_token,
|
13 |
+
$refresh_token,
|
14 |
+
$expiry_time;
|
15 |
|
16 |
public function __construct() {
|
17 |
+
$this->get_token_mail_bank();
|
18 |
}
|
19 |
|
20 |
public static function get_instance() {
|
21 |
+
static $instance = null;
|
22 |
+
if ($instance === null) {
|
23 |
+
$instance = new mail_bank_manage_token();
|
24 |
+
}
|
25 |
+
return $instance;
|
26 |
}
|
27 |
|
28 |
public function isValid() {
|
29 |
+
$access_token = $this->retrieve_access_token_mail_bank();
|
30 |
+
$refresh_token = $this->retrieve_refresh_token_mail_bank();
|
31 |
+
return !(empty($access_token) || empty($refresh_token));
|
32 |
}
|
33 |
|
34 |
public function get_token_mail_bank() {
|
35 |
+
$oauth_token = get_option("mail_bank_auth");
|
36 |
+
$this->set_access_token_mail_bank($oauth_token["access_token"]);
|
37 |
+
$this->set_refresh_token_mail_bank($oauth_token["refresh_token"]);
|
38 |
+
$this->set_token_expirytime_mail_bank($oauth_token["auth_token_expires"]);
|
39 |
+
$this->set_vendorname_mail_bank($oauth_token["vendor_name"]);
|
40 |
}
|
41 |
|
42 |
// Save the mail bank oauth token properties to the database
|
43 |
public function save_token_mail_bank() {
|
44 |
+
$oauth_token["access_token"] = $this->retrieve_access_token_mail_bank();
|
45 |
+
$oauth_token["refresh_token"] = $this->retrieve_refresh_token_mail_bank();
|
46 |
+
$oauth_token["auth_token_expires"] = $this->retrieve_token_expiry_time_mail_bank();
|
47 |
+
$oauth_token["vendor_name"] = $this->get_vendor_mail_bank();
|
48 |
+
update_option("mail_bank_auth", $oauth_token);
|
49 |
}
|
50 |
|
51 |
public function get_vendor_mail_bank() {
|
52 |
+
return $this->vendor_name;
|
53 |
}
|
54 |
|
55 |
public function retrieve_token_expiry_time_mail_bank() {
|
56 |
+
return $this->expiry_time;
|
57 |
}
|
58 |
|
59 |
public function retrieve_access_token_mail_bank() {
|
60 |
+
return $this->access_token;
|
61 |
}
|
62 |
|
63 |
public function retrieve_refresh_token_mail_bank() {
|
64 |
+
return $this->refresh_token;
|
65 |
}
|
66 |
|
67 |
public function set_vendorname_mail_bank($name) {
|
68 |
+
$this->vendor_name = esc_html($name);
|
69 |
}
|
70 |
|
71 |
public function set_token_expirytime_mail_bank($time) {
|
72 |
+
$this->expiry_time = esc_html($time);
|
73 |
}
|
74 |
|
75 |
public function set_access_token_mail_bank($token) {
|
76 |
+
$this->access_token = esc_html($token);
|
77 |
}
|
78 |
|
79 |
public function set_refresh_token_mail_bank($token) {
|
80 |
+
$this->refresh_token = esc_html($token);
|
81 |
}
|
82 |
|
83 |
}
|
includes/mail-bank-send-mail.php
CHANGED
@@ -21,136 +21,136 @@ if (!class_exists("mail_bank_send_mail")) {
|
|
21 |
class mail_bank_send_mail {
|
22 |
|
23 |
public
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
|
28 |
public function __construct() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
|
34 |
// This function is used to send the message and return the result.
|
35 |
public function send_email_message_mail_bank($to, $subject, $message, $headers = "", $attachments = array(), $email_configuration_settings) {
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
|
44 |
-
|
45 |
}
|
46 |
|
47 |
// This function is used to build a message based on the wordPress wp_mail parameters.
|
48 |
public function build_message_mail_bank($to, $subject, $message, $headers, $attachments) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
-
|
59 |
}
|
60 |
|
61 |
// This function is used to create the instance of mail_bank_manage_email.
|
62 |
public function create_message_mail_bank() {
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
}
|
69 |
|
70 |
// This function is used to get the options and token generated to send the message
|
71 |
public function get_message_content_mail_bank(mail_bank_manage_email $message, mail_bank_email_log $log, $email_configuration_settings) {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
}
|
135 |
|
136 |
// This function is used to ensure the token is updated.
|
137 |
public function check_authtoken_mail_bank($transport, $authorization_token) {
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
|
146 |
// This function is used to set all the content into a message.
|
147 |
public function get_entire_message_content_mail_bank($message, $to, $subject, $body, $headers, $attachments) {
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
}
|
155 |
|
156 |
}
|
21 |
class mail_bank_send_mail {
|
22 |
|
23 |
public
|
24 |
+
$exception,
|
25 |
+
$configuration_settings,
|
26 |
+
$obj_mail_bank_register_transport;
|
27 |
|
28 |
public function __construct() {
|
29 |
+
$obj_mb_config_provider = new mail_bank_configuration_provider();
|
30 |
+
$this->obj_mail_bank_register_transport = new mail_bank_register_transport();
|
31 |
+
$this->configuration_settings = $obj_mb_config_provider->get_configuration_settings();
|
32 |
}
|
33 |
|
34 |
// This function is used to send the message and return the result.
|
35 |
public function send_email_message_mail_bank($to, $subject, $message, $headers = "", $attachments = array(), $email_configuration_settings) {
|
36 |
+
$mail_bank_manage_email = $this->build_message_mail_bank($to, $subject, $message, $headers, $attachments);
|
37 |
|
38 |
+
$log = new mail_bank_email_log();
|
39 |
+
$log->email_to = $to;
|
40 |
+
$log->email_subject = $subject;
|
41 |
+
$log->email_message = $message;
|
42 |
+
$log->email_headers = $headers;
|
43 |
|
44 |
+
return $this->get_message_content_mail_bank($mail_bank_manage_email, $log, $email_configuration_settings);
|
45 |
}
|
46 |
|
47 |
// This function is used to build a message based on the wordPress wp_mail parameters.
|
48 |
public function build_message_mail_bank($to, $subject, $message, $headers, $attachments) {
|
49 |
+
if (!is_array($attachments)) {
|
50 |
+
$attachments = explode("\n", str_replace("\r\n", "\n", $attachments));
|
51 |
+
}
|
52 |
|
53 |
+
// Creates the message
|
54 |
+
$mail_bank_manage_email = $this->create_message_mail_bank();
|
55 |
+
$this->get_entire_message_content_mail_bank($mail_bank_manage_email, $to, $subject, $message, $headers, $attachments);
|
56 |
|
57 |
+
// Return the message
|
58 |
+
return $mail_bank_manage_email;
|
59 |
}
|
60 |
|
61 |
// This function is used to create the instance of mail_bank_manage_email.
|
62 |
public function create_message_mail_bank() {
|
63 |
+
$message = new mail_bank_manage_email();
|
64 |
+
$transport = $this->obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
65 |
+
$message->mb_set_from($this->configuration_settings["email_address"], html_entity_decode($this->configuration_settings["sender_name"], ENT_QUOTES));
|
66 |
+
$message->mb_set_charset(get_bloginfo("charset"));
|
67 |
+
return $message;
|
68 |
}
|
69 |
|
70 |
// This function is used to get the options and token generated to send the message
|
71 |
public function get_message_content_mail_bank(mail_bank_manage_email $message, mail_bank_email_log $log, $email_configuration_settings) {
|
72 |
+
global $wpdb;
|
73 |
+
$mail_bank_settings_data = $wpdb->get_row
|
74 |
+
(
|
75 |
+
$wpdb->prepare
|
76 |
+
(
|
77 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
78 |
+
" WHERE meta_key = %s", "settings"
|
79 |
+
)
|
80 |
+
);
|
81 |
+
|
82 |
+
$settings_data = maybe_unserialize($mail_bank_settings_data->meta_value);
|
83 |
+
$ob_mb_config_provider = new mail_bank_configuration_provider();
|
84 |
+
$this->configuration_settings = $ob_mb_config_provider->get_configuration_settings();
|
85 |
+
$authorization_token = mail_bank_manage_token::get_instance();
|
86 |
+
|
87 |
+
$transport = $this->obj_mail_bank_register_transport->retrieve_mailertype_mail_bank();
|
88 |
+
$engine = $transport->initiate_mail_engine_mail_bank();
|
89 |
+
|
90 |
+
if ($message->check_email_body_parts_mail_bank()) {
|
91 |
+
$message->createBodyParts();
|
92 |
+
}
|
93 |
+
$obj_mail_bank_manage_email = new mail_bank_manage_email();
|
94 |
+
|
95 |
+
try {
|
96 |
+
$message->validate_email_contents_mail_bank($transport);
|
97 |
+
|
98 |
+
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
99 |
+
$this->check_authtoken_mail_bank($transport, $authorization_token);
|
100 |
+
}
|
101 |
+
$engine->send_email_mail_bank($message);
|
102 |
+
|
103 |
+
// writes the log on success.
|
104 |
+
if ($engine->get_output_mail_bank() != "" && $settings_data["debug_mode"] == "enable") {
|
105 |
+
update_option("mail_bank_mail_status", $engine->get_output_mail_bank());
|
106 |
+
} else {
|
107 |
+
update_option("mail_bank_mail_status", true);
|
108 |
+
}
|
109 |
+
$obj_mb_log_writter = new mail_bank_email_log_writter();
|
110 |
+
update_option("mail_bank_is_mail_sent", "Sent");
|
111 |
+
if ($settings_data["monitor_email_logs"] == "enable") {
|
112 |
+
$obj_mb_log_writter->mb_success_log($log, $message, $settings_data["debug_mode"], $email_configuration_settings, $obj_mail_bank_manage_email);
|
113 |
+
}
|
114 |
+
return true;
|
115 |
+
} catch (Exception $e) {
|
116 |
+
$this->exception = $e;
|
117 |
+
// Writes the log on failure
|
118 |
+
if ($e->getCode() == 334 && $settings_data["debug_mode"] == "enable") {
|
119 |
+
update_option("mail_bank_mail_status", $e->getMessage());
|
120 |
+
} elseif ($engine->get_output_mail_bank() != "" && $settings_data["debug_mode"] == "enable") {
|
121 |
+
update_option("mail_bank_mail_status", $engine->get_output_mail_bank());
|
122 |
+
} elseif ($engine->get_output_mail_bank() == "" && $settings_data["debug_mode"] == "enable") {
|
123 |
+
update_option("mail_bank_mail_status", $e->getMessage());
|
124 |
+
} else {
|
125 |
+
update_option("mail_bank_mail_status", false);
|
126 |
+
}
|
127 |
+
$obj_mb_log_writter = new mail_bank_email_log_writter();
|
128 |
+
update_option("mail_bank_is_mail_sent", "Not Sent");
|
129 |
+
if ($settings_data["monitor_email_logs"] == "enable") {
|
130 |
+
$obj_mb_log_writter->mb_failure_log($log, $message, $settings_data["debug_mode"], $email_configuration_settings, $obj_mail_bank_manage_email);
|
131 |
+
}
|
132 |
+
return false;
|
133 |
+
}
|
134 |
}
|
135 |
|
136 |
// This function is used to ensure the token is updated.
|
137 |
public function check_authtoken_mail_bank($transport, $authorization_token) {
|
138 |
+
$authentication_manager = new authentication_manager_mail_bank();
|
139 |
+
$obj_authentication_manager_mail_bank = $authentication_manager->create_authentication_manager();
|
140 |
+
if ($obj_authentication_manager_mail_bank->check_access_token()) {
|
141 |
+
$obj_authentication_manager_mail_bank->get_refresh_token();
|
142 |
+
$authorization_token->save_token_mail_bank();
|
143 |
+
}
|
144 |
}
|
145 |
|
146 |
// This function is used to set all the content into a message.
|
147 |
public function get_entire_message_content_mail_bank($message, $to, $subject, $body, $headers, $attachments) {
|
148 |
+
$message->mb_add_headers($headers);
|
149 |
+
$message->mb_set_body($body);
|
150 |
+
$message->mb_set_subject($subject);
|
151 |
+
$message->mb_addto($to);
|
152 |
+
$message->mb_set_attachments($attachments);
|
153 |
+
return $message;
|
154 |
}
|
155 |
|
156 |
}
|
includes/mail-bank-smtp-transport.php
CHANGED
@@ -23,9 +23,9 @@ class mail_bank_smtp_transport {
|
|
23 |
public function initiate_zendmail_transport_mail_bank($fake_hostname, $fake_config) {
|
24 |
$obj_mb_configure_transport = new mail_bank_configure_transport();
|
25 |
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
26 |
-
|
27 |
} else {
|
28 |
-
|
29 |
}
|
30 |
return new mail_bank_Zend_Mail_Transport_Smtp($this->configuration_settings["hostname"], $config);
|
31 |
}
|
23 |
public function initiate_zendmail_transport_mail_bank($fake_hostname, $fake_config) {
|
24 |
$obj_mb_configure_transport = new mail_bank_configure_transport();
|
25 |
if ($this->configuration_settings["auth_type"] == "oauth2") {
|
26 |
+
$config = $obj_mb_configure_transport->configure_oauth_transport();
|
27 |
} else {
|
28 |
+
$config = $obj_mb_configure_transport->configure_plain_transport();
|
29 |
}
|
30 |
return new mail_bank_Zend_Mail_Transport_Smtp($this->configuration_settings["hostname"], $config);
|
31 |
}
|
includes/mail-bank-zend-engine.php
CHANGED
@@ -84,163 +84,163 @@ if (!class_exists("mail_bank_zend_engine")) {
|
|
84 |
class mail_bank_zend_engine {
|
85 |
|
86 |
public
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
|
91 |
function __construct($transport) {
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
|
97 |
// This Function is used to send Email.
|
98 |
public function send_email_mail_bank(mail_bank_manage_email $message) {
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
}
|
223 |
|
224 |
// This function is used to get the sender from mail_bank_manage_email and add it to the mail_bank_Zend_Mail object
|
225 |
public function get_sender_from_email_mail_bank($message, $mail) {
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
}
|
240 |
|
241 |
// This funtion is used to return SMTP session Transcript.
|
242 |
public function get_output_mail_bank() {
|
243 |
-
|
244 |
}
|
245 |
|
246 |
}
|
84 |
class mail_bank_zend_engine {
|
85 |
|
86 |
public
|
87 |
+
$transcript,
|
88 |
+
$mail_bank_options,
|
89 |
+
$transport;
|
90 |
|
91 |
function __construct($transport) {
|
92 |
+
$this->transport = $transport;
|
93 |
+
$mb_config_provider_obj = new mail_bank_configuration_provider();
|
94 |
+
$this->mail_bank_options = $mb_config_provider_obj->get_configuration_settings();
|
95 |
}
|
96 |
|
97 |
// This Function is used to send Email.
|
98 |
public function send_email_mail_bank(mail_bank_manage_email $message) {
|
99 |
+
$envelope_from = new mail_bank_manage_email_address($this->mail_bank_options["email_address"]);
|
100 |
+
$envelope_from->validate_email_contents_mail_bank("Envelope From");
|
101 |
+
$charset = $message->mb_get_charset();
|
102 |
+
$mail = new mail_bank_Zend_Mail($charset);
|
103 |
+
|
104 |
+
// Add headers
|
105 |
+
foreach ((array) $message->mb_get_headers() as $header) {
|
106 |
+
$mail->addHeader($header["name"], $header["content"], true);
|
107 |
+
}
|
108 |
+
|
109 |
+
$content_type = $message->mb_get_content_type();
|
110 |
+
if (!empty($content_type)) {
|
111 |
+
$mail->addHeader("Content-Type", $content_type, false);
|
112 |
+
}
|
113 |
+
|
114 |
+
// Add the from header
|
115 |
+
$fromHeader = $this->get_sender_from_email_mail_bank($message, $mail);
|
116 |
+
$mail->addHeader("Sender", $this->mail_bank_options["email_address"], false);
|
117 |
+
|
118 |
+
// Add to recipients
|
119 |
+
foreach ((array) $message->mb_get_to_recipients() as $recipient) {
|
120 |
+
$mail->addTo($recipient->mb_get_email(), $recipient->mb_get_name());
|
121 |
+
}
|
122 |
+
|
123 |
+
// Add cc recipients
|
124 |
+
if ($this->mail_bank_options["cc"] == "") {
|
125 |
+
foreach ((array) $message->mb_get_cc_recipients() as $recipient) {
|
126 |
+
$mail->addCc($recipient->mb_get_email(), $recipient->mb_get_name());
|
127 |
+
}
|
128 |
+
} else {
|
129 |
+
$cc_address_array = explode(",", $this->mail_bank_options["cc"]);
|
130 |
+
foreach ($cc_address_array as $cc_address) {
|
131 |
+
$mail->addCc($cc_address);
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
|
136 |
+
// Add bcc recepients
|
137 |
+
if ($this->mail_bank_options["bcc"] == "") {
|
138 |
+
foreach ((array) $message->mb_get_bcc_recipients() as $recipient) {
|
139 |
+
$mail->addBcc($recipient->mb_get_email(), $recipient->mb_get_name());
|
140 |
+
}
|
141 |
+
} else {
|
142 |
+
$bcc_address_array = explode(",", $this->mail_bank_options["bcc"]);
|
143 |
+
foreach ($bcc_address_array as $bcc_address) {
|
144 |
+
$mail->addBcc($bcc_address);
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
// Add reply to
|
149 |
+
$reply_to = $message->mb_get_reply_to();
|
150 |
+
if ($this->mail_bank_options["reply_to"] != "") {
|
151 |
+
$mail->setReplyTo($this->mail_bank_options["reply_to"]);
|
152 |
+
} elseif (isset($reply_to)) {
|
153 |
+
$mail->setReplyTo($reply_to->mb_get_email());
|
154 |
+
}
|
155 |
+
|
156 |
+
// Add date
|
157 |
+
$date = $message->mb_get_date();
|
158 |
+
if (!empty($date)) {
|
159 |
+
$mail->setDate($date);
|
160 |
+
}
|
161 |
+
|
162 |
+
// Add message id
|
163 |
+
$message_id = $message->mb_get_message_id();
|
164 |
+
if (!empty($message_id)) {
|
165 |
+
$mail->setMessageId($message_id);
|
166 |
+
}
|
167 |
+
|
168 |
+
// Add subject of the email
|
169 |
+
if (null !== $message->mb_get_subject()) {
|
170 |
+
$mail->setSubject($message->mb_get_subject());
|
171 |
+
}
|
172 |
+
|
173 |
+
// Add message content of the email
|
174 |
+
//{
|
175 |
+
$text_part = $message->mb_get_body_textPart();
|
176 |
+
if (!empty($text_part)) {
|
177 |
+
$mail->setBodyText($text_part);
|
178 |
+
}
|
179 |
+
$html_part = $message->mb_get_body_html_part();
|
180 |
+
if (!empty($html_part)) {
|
181 |
+
$mail->setBodyHtml($html_part);
|
182 |
+
}
|
183 |
+
//}
|
184 |
+
// Add attachments to the email
|
185 |
+
$message->mb_add_attachments_to_mail($mail);
|
186 |
+
|
187 |
+
// Create the SMTP transport
|
188 |
+
$zend_transport = $this->transport->initiate_zendmail_transport_mail_bank($this->mail_bank_options["hostname"], array());
|
189 |
+
try {
|
190 |
+
// Send the message
|
191 |
+
$mail->send($zend_transport);
|
192 |
+
if ($zend_transport->getConnection() && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getConnection()->getLog())) {
|
193 |
+
$this->transcript = $zend_transport->getConnection()->getLog();
|
194 |
+
} else if (method_exists($zend_transport, "get_output_mail_bank") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->get_output_mail_bank())) {
|
195 |
+
// use the API response
|
196 |
+
$this->transcript = $zend_transport->get_output_mail_bank();
|
197 |
+
} else if (method_exists($zend_transport, "getMessage") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getMessage())) {
|
198 |
+
//use the raw message as the transcript
|
199 |
+
$this->transcript = $zend_transport->getMessage();
|
200 |
+
}
|
201 |
+
} catch (Exception $e) {
|
202 |
+
// In case of Error
|
203 |
+
if ($zend_transport->getConnection() && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getConnection()->getLog())) {
|
204 |
+
$this->transcript = $zend_transport->getConnection()->getLog();
|
205 |
+
} else if (method_exists($zend_transport, "get_output_mail_bank") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->get_output_mail_bank())) {
|
206 |
+
// Use API response
|
207 |
+
$this->transcript = $zend_transport->get_output_mail_bank();
|
208 |
+
} else if (method_exists($zend_transport, "getMessage") && !mail_bank_zend_mail_helper::check_field_mail_bank($zend_transport->getMessage())) {
|
209 |
+
// Use message as the transcript
|
210 |
+
$this->transcript = $zend_transport->getMessage();
|
211 |
+
}
|
212 |
+
|
213 |
+
// Get the current exception message
|
214 |
+
$message = $e->getMessage();
|
215 |
+
if ($e->getCode() == 334) {
|
216 |
+
$message = "From Email should be of same account used to create the Client Id.";
|
217 |
+
}
|
218 |
+
$exception = new Exception($message, $e->getCode());
|
219 |
+
// Throws the new exception
|
220 |
+
throw $exception;
|
221 |
+
}
|
222 |
}
|
223 |
|
224 |
// This function is used to get the sender from mail_bank_manage_email and add it to the mail_bank_Zend_Mail object
|
225 |
public function get_sender_from_email_mail_bank($message, $mail) {
|
226 |
+
$sender = $message->get_email_address_mail_bank();
|
227 |
+
$sender_email = $sender->mb_get_email();
|
228 |
+
$sender_name = $sender->mb_get_name();
|
229 |
+
if (($this->mail_bank_options["sender_name_configuration"] == "override") && ($this->mail_bank_options["from_email_configuration"] == "override")) {
|
230 |
+
$mail->setFrom($this->mail_bank_options["sender_email"], html_entity_decode($this->mail_bank_options["sender_name"], ENT_QUOTES));
|
231 |
+
} elseif (($this->mail_bank_options["sender_name_configuration"] == "dont_override") && ($this->mail_bank_options["from_email_configuration"] == "dont_override")) {
|
232 |
+
$mail->setFrom($sender_email, $sender_name);
|
233 |
+
} elseif (($this->mail_bank_options["sender_name_configuration"] == "override") && ($this->mail_bank_options["from_email_configuration"] == "dont_override")) {
|
234 |
+
$mail->setFrom($sender_email, html_entity_decode($this->mail_bank_options["sender_name"], ENT_QUOTES));
|
235 |
+
} else {
|
236 |
+
$mail->setFrom($this->mail_bank_options["sender_email"], $sender_name);
|
237 |
+
}
|
238 |
+
return $sender;
|
239 |
}
|
240 |
|
241 |
// This funtion is used to return SMTP session Transcript.
|
242 |
public function get_output_mail_bank() {
|
243 |
+
return $this->transcript;
|
244 |
}
|
245 |
|
246 |
}
|
includes/mail-bank-zend-mail-helper.php
CHANGED
@@ -10,55 +10,55 @@ if (!class_exists("mail_bank_zend_mail_helper")) {
|
|
10 |
public static $validate_email;
|
11 |
|
12 |
public static function email_domains_mail_bank($hostname, $needle) {
|
13 |
-
|
14 |
-
|
15 |
}
|
16 |
|
17 |
// This function is used to make the outgoing Http requests.
|
18 |
public static function retrieve_body_from_response_mail_bank($url, $parameters, array $headers = array()) {
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
}
|
26 |
|
27 |
// This function is used to make outgoing Http requests.
|
28 |
public static function post_request_mail_bank($url, $parameters = array(), array $headers = array()) {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
}
|
42 |
|
43 |
// This function is used for basic field validation.
|
44 |
public static function check_field_mail_bank($text) {
|
45 |
-
|
46 |
}
|
47 |
|
48 |
// This function is used to validate an email-address.
|
49 |
public static function email_validation_mail_bank($email) {
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
}
|
63 |
|
64 |
}
|
10 |
public static $validate_email;
|
11 |
|
12 |
public static function email_domains_mail_bank($hostname, $needle) {
|
13 |
+
$length = strlen($needle);
|
14 |
+
return(substr($hostname, - $length) === $needle);
|
15 |
}
|
16 |
|
17 |
// This function is used to make the outgoing Http requests.
|
18 |
public static function retrieve_body_from_response_mail_bank($url, $parameters, array $headers = array()) {
|
19 |
+
$response = mail_bank_zend_mail_helper::post_request_mail_bank($url, $parameters, $headers);
|
20 |
+
if (isset($response["error"])) {
|
21 |
+
return json_encode($response);
|
22 |
+
}
|
23 |
+
$body = wp_remote_retrieve_body($response);
|
24 |
+
return $body;
|
25 |
}
|
26 |
|
27 |
// This function is used to make outgoing Http requests.
|
28 |
public static function post_request_mail_bank($url, $parameters = array(), array $headers = array()) {
|
29 |
+
$args = array(
|
30 |
+
"timeout" => "10000",
|
31 |
+
"headers" => $headers,
|
32 |
+
"body" => $parameters
|
33 |
+
);
|
34 |
+
$response = wp_remote_post($url, $args);
|
35 |
|
36 |
+
if (is_wp_error($response)) {
|
37 |
+
return array("error" => "An error occured", "error_description" => $response->get_error_message());
|
38 |
+
} else {
|
39 |
+
return $response;
|
40 |
+
}
|
41 |
}
|
42 |
|
43 |
// This function is used for basic field validation.
|
44 |
public static function check_field_mail_bank($text) {
|
45 |
+
return(!isset($text) || trim($text) === "");
|
46 |
}
|
47 |
|
48 |
// This function is used to validate an email-address.
|
49 |
public static function email_validation_mail_bank($email) {
|
50 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/exception.php";
|
51 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/registry.php";
|
52 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/exception.php";
|
53 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/interface.php";
|
54 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/abstract.php";
|
55 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/ip.php";
|
56 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/hostname.php";
|
57 |
+
require_once MAIL_BANK_DIR_PATH . "lib/zend/validate/emailaddress.php";
|
58 |
+
if (!isset(mail_bank_zend_mail_helper::$validate_email)) {
|
59 |
+
mail_bank_zend_mail_helper::$validate_email = new mail_bank_Zend_Validate_EmailAddress();
|
60 |
+
}
|
61 |
+
return mail_bank_zend_mail_helper::$validate_email->isValid($email);
|
62 |
}
|
63 |
|
64 |
}
|
includes/mailer.php
CHANGED
@@ -23,75 +23,75 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
23 |
public $api_key;
|
24 |
public $authorization_token;
|
25 |
public $oauth_domains = array(
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
);
|
55 |
public $yahoo_domains = array(
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
);
|
81 |
|
82 |
public function __construct($settings_array) {
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
}
|
96 |
|
97 |
/*
|
@@ -103,25 +103,25 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
103 |
*/
|
104 |
|
105 |
public function send_test_mail_bank($to, $subject, $message, $headers = "", $attachments = "", $email_configuration_settings) {
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
}
|
126 |
|
127 |
/*
|
@@ -133,15 +133,15 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
133 |
*/
|
134 |
|
135 |
public function microsoft_authentication() {
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
|
144 |
-
|
145 |
}
|
146 |
|
147 |
/*
|
@@ -153,15 +153,15 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
153 |
*/
|
154 |
|
155 |
public function google_authentication() {
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
|
164 |
-
|
165 |
}
|
166 |
|
167 |
/*
|
@@ -173,22 +173,22 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
173 |
*/
|
174 |
|
175 |
public function microsoft_authentication_token($code) {
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
}
|
193 |
|
194 |
/*
|
@@ -200,23 +200,23 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
200 |
*/
|
201 |
|
202 |
public function google_authentication_token($code) {
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
|
219 |
-
|
220 |
}
|
221 |
|
222 |
/*
|
@@ -228,18 +228,18 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
228 |
*/
|
229 |
|
230 |
public function yahoo_authentication() {
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
|
241 |
-
|
242 |
-
|
243 |
}
|
244 |
|
245 |
/*
|
@@ -251,22 +251,22 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
251 |
*/
|
252 |
|
253 |
public function yahoo_authentication_token($code) {
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
}
|
271 |
|
272 |
/*
|
@@ -278,40 +278,40 @@ if (!class_exists("mail_bank_auth_host")) {
|
|
278 |
*/
|
279 |
|
280 |
public static function override_wp_mail_function() {
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
WHERE meta_key = %s", "email_configuration"
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
}
|
316 |
|
317 |
}
|
23 |
public $api_key;
|
24 |
public $authorization_token;
|
25 |
public $oauth_domains = array(
|
26 |
+
"hotmail.com" => "smtp.live.com",
|
27 |
+
"outlook.com" => "smtp.live.com",
|
28 |
+
"yahoo.ca" => "smtp.mail.yahoo.ca",
|
29 |
+
"yahoo.co.id" => "smtp.mail.yahoo.co.id",
|
30 |
+
"yahoo.co.in" => "smtp.mail.yahoo.co.in",
|
31 |
+
"yahoo.co.kr" => "smtp.mail.yahoo.com",
|
32 |
+
"yahoo.com" => "smtp.mail.yahoo.com",
|
33 |
+
"ymail.com" => "smtp.mail.yahoo.com",
|
34 |
+
"yahoo.com.ar" => "smtp.mail.yahoo.com.ar",
|
35 |
+
"yahoo.com.au" => "smtp.mail.yahoo.com.au",
|
36 |
+
"yahoo.com.br" => "smtp.mail.yahoo.com.br",
|
37 |
+
"yahoo.com.cn" => "smtp.mail.yahoo.com.cn",
|
38 |
+
"yahoo.com.hk" => "smtp.mail.yahoo.com.hk",
|
39 |
+
"yahoo.com.mx" => "smtp.mail.yahoo.com",
|
40 |
+
"yahoo.com.my" => "smtp.mail.yahoo.com.my",
|
41 |
+
"yahoo.com.ph" => "smtp.mail.yahoo.com.ph",
|
42 |
+
"yahoo.com.sg" => "smtp.mail.yahoo.com.sg",
|
43 |
+
"yahoo.com.tw" => "smtp.mail.yahoo.com.tw",
|
44 |
+
"yahoo.com.vn" => "smtp.mail.yahoo.com.vn",
|
45 |
+
"yahoo.co.nz" => "smtp.mail.yahoo.com.au",
|
46 |
+
"yahoo.co.th" => "smtp.mail.yahoo.co.th",
|
47 |
+
"yahoo.co.uk" => "smtp.mail.yahoo.co.uk",
|
48 |
+
"yahoo.de" => "smtp.mail.yahoo.de",
|
49 |
+
"yahoo.es" => "smtp.correo.yahoo.es",
|
50 |
+
"yahoo.fr" => "smtp.mail.yahoo.fr",
|
51 |
+
"yahoo.ie" => "smtp.mail.yahoo.co.uk",
|
52 |
+
"yahoo.it" => "smtp.mail.yahoo.it",
|
53 |
+
"gmail.com" => "smtp.gmail.com",
|
54 |
);
|
55 |
public $yahoo_domains = array(
|
56 |
+
"smtp.mail.yahoo.ca",
|
57 |
+
"smtp.mail.yahoo.co.id",
|
58 |
+
"smtp.mail.yahoo.co.in",
|
59 |
+
"smtp.mail.yahoo.com",
|
60 |
+
"smtp.mail.yahoo.com",
|
61 |
+
"smtp.mail.yahoo.com.ar",
|
62 |
+
"smtp.mail.yahoo.com.au",
|
63 |
+
"smtp.mail.yahoo.com.br",
|
64 |
+
"smtp.mail.yahoo.com.cn",
|
65 |
+
"smtp.mail.yahoo.com.hk",
|
66 |
+
"smtp.mail.yahoo.com",
|
67 |
+
"smtp.mail.yahoo.com.my",
|
68 |
+
"smtp.mail.yahoo.com.ph",
|
69 |
+
"smtp.mail.yahoo.com.sg",
|
70 |
+
"smtp.mail.yahoo.com.tw",
|
71 |
+
"smtp.mail.yahoo.com.vn",
|
72 |
+
"smtp.mail.yahoo.com.au",
|
73 |
+
"smtp.mail.yahoo.co.th",
|
74 |
+
"smtp.mail.yahoo.co.uk",
|
75 |
+
"smtp.mail.yahoo.de",
|
76 |
+
"smtp.correo.yahoo.es",
|
77 |
+
"smtp.mail.yahoo.fr",
|
78 |
+
"smtp.mail.yahoo.co.uk",
|
79 |
+
"smtp.mail.yahoo.it"
|
80 |
);
|
81 |
|
82 |
public function __construct($settings_array) {
|
83 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php")) {
|
84 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php";
|
85 |
+
}
|
86 |
+
$this->authorization_token = mail_bank_manage_token::get_instance();
|
87 |
+
$this->from_name = $settings_array["sender_name"];
|
88 |
+
$this->from_email = $settings_array["sender_email"];
|
89 |
+
$this->smtp_host = $settings_array["hostname"];
|
90 |
+
$this->smtp_port = $settings_array["port"];
|
91 |
+
$this->client_id = $settings_array["client_id"];
|
92 |
+
$this->client_secret = $settings_array["client_secret"];
|
93 |
+
$this->redirect_uri = $settings_array["redirect_uri"];
|
94 |
+
$this->sender_email = $settings_array["email_address"];
|
95 |
}
|
96 |
|
97 |
/*
|
103 |
*/
|
104 |
|
105 |
public function send_test_mail_bank($to, $subject, $message, $headers = "", $attachments = "", $email_configuration_settings) {
|
106 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-send-mail.php")) {
|
107 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-send-mail.php";
|
108 |
+
}
|
109 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php")) {
|
110 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-manage-token.php";
|
111 |
+
}
|
112 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
113 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
114 |
+
}
|
115 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-smtp-transport.php")) {
|
116 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-smtp-transport.php";
|
117 |
+
}
|
118 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-register-transport.php")) {
|
119 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-register-transport.php";
|
120 |
+
}
|
121 |
+
$obj_transport_registry = new mail_bank_register_transport();
|
122 |
+
$obj_transport_registry->listing_transport_mail_bank(new mail_bank_smtp_transport($email_configuration_settings));
|
123 |
+
$obj_wp_mail = new mail_bank_send_mail();
|
124 |
+
return $obj_wp_mail->send_email_message_mail_bank($to, $subject, $message, $headers, $attachments, $email_configuration_settings);
|
125 |
}
|
126 |
|
127 |
/*
|
133 |
*/
|
134 |
|
135 |
public function microsoft_authentication() {
|
136 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php")) {
|
137 |
+
include_once MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php";
|
138 |
+
}
|
139 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
140 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
141 |
+
}
|
142 |
+
$obj_microsoft_authentication_mail_bank = new microsoft_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
143 |
|
144 |
+
$obj_microsoft_authentication_mail_bank->get_token_code(md5(rand()));
|
145 |
}
|
146 |
|
147 |
/*
|
153 |
*/
|
154 |
|
155 |
public function google_authentication() {
|
156 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php")) {
|
157 |
+
include_once MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php";
|
158 |
+
}
|
159 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
160 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
161 |
+
}
|
162 |
+
$obj_google_authentication_mail_bank = new google_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
163 |
|
164 |
+
$obj_google_authentication_mail_bank->get_token_code(md5(rand()));
|
165 |
}
|
166 |
|
167 |
/*
|
173 |
*/
|
174 |
|
175 |
public function microsoft_authentication_token($code) {
|
176 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
177 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
178 |
+
}
|
179 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php")) {
|
180 |
+
include_once MAIL_BANK_DIR_PATH . "includes/microsoft-authentication-mail-bank.php";
|
181 |
+
}
|
182 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
183 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
184 |
+
}
|
185 |
+
$obj_microsoft_authentication_mail_bank = new microsoft_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
186 |
|
187 |
+
$test_error = $obj_microsoft_authentication_mail_bank->process_token_Code(md5(rand()));
|
188 |
+
if (isset($test_error->error)) {
|
189 |
+
return $test_error;
|
190 |
+
}
|
191 |
+
$this->authorization_token->save_token_mail_bank();
|
192 |
}
|
193 |
|
194 |
/*
|
200 |
*/
|
201 |
|
202 |
public function google_authentication_token($code) {
|
203 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
204 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
205 |
+
}
|
206 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php")) {
|
207 |
+
include_once MAIL_BANK_DIR_PATH . "includes/google-authentication-mail-bank.php";
|
208 |
+
}
|
209 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
210 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
211 |
+
}
|
212 |
+
$obj_google_authentication_mail_bank = new google_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
213 |
|
214 |
+
$test_error1 = $obj_google_authentication_mail_bank->process_token_Code(md5(rand()));
|
215 |
+
if (isset($test_error1->error)) {
|
216 |
+
return $test_error1;
|
217 |
+
}
|
218 |
|
219 |
+
$this->authorization_token->save_token_mail_bank();
|
220 |
}
|
221 |
|
222 |
/*
|
228 |
*/
|
229 |
|
230 |
public function yahoo_authentication() {
|
231 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
232 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
233 |
+
}
|
234 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php")) {
|
235 |
+
include_once MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php";
|
236 |
+
}
|
237 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
238 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
239 |
+
}
|
240 |
|
241 |
+
$obj_yahoo_authentication_mail_bank = new yahoo_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri);
|
242 |
+
$obj_yahoo_authentication_mail_bank->get_token_code(md5(rand()));
|
243 |
}
|
244 |
|
245 |
/*
|
251 |
*/
|
252 |
|
253 |
public function yahoo_authentication_token($code) {
|
254 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php")) {
|
255 |
+
include_once MAIL_BANK_DIR_PATH . "includes/mail-bank-zend-mail-helper.php";
|
256 |
+
}
|
257 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php")) {
|
258 |
+
include_once MAIL_BANK_DIR_PATH . "includes/yahoo-authentication-mail-bank.php";
|
259 |
+
}
|
260 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php")) {
|
261 |
+
include_once MAIL_BANK_DIR_PATH . "includes/authentication-manager-mail-bank.php";
|
262 |
+
}
|
263 |
+
$obj_yahoo_authentication_mail_bank = new yahoo_authentication_mail_bank($this->client_id, $this->client_secret, $this->authorization_token, $this->redirect_uri, $this->sender_email);
|
264 |
|
265 |
+
$test_error1 = $obj_yahoo_authentication_mail_bank->process_token_Code(md5(rand()));
|
266 |
+
if (isset($test_error1->error)) {
|
267 |
+
return $test_error1;
|
268 |
+
}
|
269 |
+
$this->authorization_token->save_token_mail_bank();
|
270 |
}
|
271 |
|
272 |
/*
|
278 |
*/
|
279 |
|
280 |
public static function override_wp_mail_function() {
|
281 |
+
global $wpdb;
|
282 |
+
$mail_bank_version_number = get_option("mail-bank-version-number");
|
283 |
+
if ($mail_bank_version_number != "") {
|
284 |
+
$email_configuration_data = $wpdb->get_var
|
285 |
+
(
|
286 |
+
$wpdb->prepare
|
287 |
+
(
|
288 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
289 |
WHERE meta_key = %s", "email_configuration"
|
290 |
+
)
|
291 |
+
);
|
292 |
+
$email_configuration_data_array = maybe_unserialize($email_configuration_data);
|
293 |
+
if ($email_configuration_data_array["mailer_type"] == "smtp") {
|
294 |
+
if (!function_exists("wp_mail")) {
|
295 |
|
296 |
+
function wp_mail($to, $subject, $message, $headers = "", $attachments = "") {
|
297 |
+
global $wpdb;
|
298 |
+
$email_configuration_data_array = $wpdb->get_var
|
299 |
+
(
|
300 |
+
$wpdb->prepare
|
301 |
+
(
|
302 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
303 |
+
" WHERE meta_key=%s", "email_configuration"
|
304 |
+
)
|
305 |
+
);
|
306 |
+
$email_configuration_settings = maybe_unserialize($email_configuration_data_array);
|
307 |
+
$obj_send_test_mail = new mail_bank_auth_host($email_configuration_settings);
|
308 |
+
$result = $obj_send_test_mail->send_test_mail_bank($to, $subject, $message, $headers, $attachments, $email_configuration_settings);
|
309 |
+
return $result;
|
310 |
+
}
|
311 |
|
312 |
+
}
|
313 |
+
}
|
314 |
+
}
|
315 |
}
|
316 |
|
317 |
}
|
includes/microsoft-authentication-mail-bank.php
CHANGED
@@ -12,57 +12,57 @@ if (!class_exists("microsoft_authentication_mail_bank")) {
|
|
12 |
class microsoft_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
|
20 |
//Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
|
29 |
// This function return the verification code after successfull authentication
|
30 |
public function get_token_code($transactionId) {
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
}
|
43 |
|
44 |
// This function proccess the grant code
|
45 |
public function process_token_Code($transactionId) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
}
|
67 |
|
68 |
}
|
12 |
class microsoft_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
+
$client_id,
|
16 |
+
$client_secret,
|
17 |
+
$callback_uri,
|
18 |
+
$token_url;
|
19 |
|
20 |
//Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
+
$this->client_id = $client_id;
|
23 |
+
$this->client_secret = $client_secret;
|
24 |
+
$this->callback_uri = $callback_uri;
|
25 |
+
$this->token_url = "https://login.live.com/oauth20_token.srf";
|
26 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
27 |
}
|
28 |
|
29 |
// This function return the verification code after successfull authentication
|
30 |
public function get_token_code($transactionId) {
|
31 |
+
$configurations = array(
|
32 |
+
"response_type" => "code",
|
33 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
34 |
+
"client_id" => $this->client_id,
|
35 |
+
"client_secret" => $this->client_secret,
|
36 |
+
"scope" => urlencode("wl.imap,wl.offline_access"),
|
37 |
+
"access_type" => "offline",
|
38 |
+
"approval_prompt" => "force"
|
39 |
+
);
|
40 |
+
$oauth_url = "https://login.live.com/oauth20_authorize.srf?" . build_query($configurations);
|
41 |
+
echo $oauth_url;
|
42 |
}
|
43 |
|
44 |
// This function proccess the grant code
|
45 |
public function process_token_Code($transactionId) {
|
46 |
+
if (isset($_REQUEST["access_token"])) {
|
47 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
48 |
+
$configurations = array(
|
49 |
+
"client_id" => $this->client_id,
|
50 |
+
"client_secret" => $this->client_secret,
|
51 |
+
"grant_type" => "authorization_code",
|
52 |
+
"redirect_uri" => $this->callback_uri,
|
53 |
+
"code" => $code
|
54 |
+
);
|
55 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations);
|
56 |
+
$microsoft_secret_key = $this->process_response($response);
|
57 |
+
if (isset($microsoft_secret_key->error)) {
|
58 |
+
return $microsoft_secret_key;
|
59 |
+
} else {
|
60 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("microsoft");
|
61 |
+
return "1";
|
62 |
+
}
|
63 |
+
} else {
|
64 |
+
return false;
|
65 |
+
}
|
66 |
}
|
67 |
|
68 |
}
|
includes/queries.php
CHANGED
@@ -16,8 +16,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -25,107 +25,107 @@ if (!is_user_logged_in()) {
|
|
25 |
} else {
|
26 |
|
27 |
function get_mail_bank_log_data_maybe_unserialize($data, $start_date, $end_date) {
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
}
|
38 |
|
39 |
function get_mail_bank_meta_value($meta_key) {
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
}
|
51 |
|
52 |
if (isset($_GET["page"])) {
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
WHERE meta_key = %s ORDER BY id DESC", "email_logs"
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
-
|
86 |
|
87 |
|
88 |
-
|
89 |
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
}
|
130 |
}
|
131 |
}
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
+
$access_granted = true;
|
20 |
+
break;
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
25 |
} else {
|
26 |
|
27 |
function get_mail_bank_log_data_maybe_unserialize($data, $start_date, $end_date) {
|
28 |
+
$array_details = array();
|
29 |
+
foreach ($data as $raw_row) {
|
30 |
+
$unserialize_data = maybe_unserialize($raw_row->meta_value);
|
31 |
+
$unserialize_data["id"] = $raw_row->id;
|
32 |
+
$unserialize_data["meta_id"] = $raw_row->meta_id;
|
33 |
+
if ($unserialize_data["timestamp"] >= $start_date && $unserialize_data["timestamp"] <= $end_date)
|
34 |
+
array_push($array_details, $unserialize_data);
|
35 |
+
}
|
36 |
+
return $array_details;
|
37 |
}
|
38 |
|
39 |
function get_mail_bank_meta_value($meta_key) {
|
40 |
+
global $wpdb;
|
41 |
+
$meta_value = $wpdb->get_var
|
42 |
+
(
|
43 |
+
$wpdb->prepare
|
44 |
+
(
|
45 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
46 |
+
" WHERE meta_key=%s", $meta_key
|
47 |
+
)
|
48 |
+
);
|
49 |
+
return maybe_unserialize($meta_value);
|
50 |
}
|
51 |
|
52 |
if (isset($_GET["page"])) {
|
53 |
+
switch (esc_attr($_GET["page"])) {
|
54 |
+
case "mb_roles_and_capabilities":
|
55 |
+
$details_roles_capabilities = get_mail_bank_meta_value("roles_and_capabilities");
|
56 |
+
$other_roles_access_array = array(
|
57 |
+
"manage_options",
|
58 |
+
"edit_plugins",
|
59 |
+
"edit_posts",
|
60 |
+
"publish_posts",
|
61 |
+
"publish_pages",
|
62 |
+
"edit_pages",
|
63 |
+
"read"
|
64 |
+
);
|
65 |
+
$other_roles_array = isset($details_roles_capabilities["capabilities"]) && $details_roles_capabilities["capabilities"] != "" ? $details_roles_capabilities["capabilities"] : $other_roles_access_array;
|
66 |
+
break;
|
67 |
|
68 |
+
case "mb_settings":
|
69 |
+
$settings_data_array = get_mail_bank_meta_value("settings");
|
70 |
+
break;
|
71 |
|
72 |
+
case "mb_email_logs":
|
73 |
+
$end_date = MAIL_BANK_LOCAL_TIME + 86400;
|
74 |
+
$start_date = $end_date - 2678400;
|
75 |
+
$email_logs_data = $wpdb->get_results
|
76 |
+
(
|
77 |
+
$wpdb->prepare
|
78 |
+
(
|
79 |
+
"SELECT * FROM " . mail_bank_meta() . "
|
80 |
WHERE meta_key = %s ORDER BY id DESC", "email_logs"
|
81 |
+
)
|
82 |
+
);
|
83 |
+
$unserialized_email_logs_data = get_mail_bank_log_data_maybe_unserialize($email_logs_data, $start_date, $end_date);
|
84 |
|
85 |
+
break;
|
86 |
|
87 |
|
88 |
+
case "mb_email_configuration":
|
89 |
|
90 |
+
$email_configuration_array = get_mail_bank_meta_value("email_configuration");
|
91 |
+
if (!empty($_REQUEST["access_token"])) {
|
92 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
93 |
+
$update_email_configuration_data = get_option("update_email_configuration");
|
94 |
+
$mail_bank_auth_host = new mail_bank_auth_host($update_email_configuration_data);
|
95 |
+
if ($update_email_configuration_data["hostname"] == "smtp.gmail.com") {
|
96 |
+
$test_secret_key_error = $mail_bank_auth_host->google_authentication_token($code);
|
97 |
+
if (isset($test_secret_key_error->error)) {
|
98 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
99 |
+
break;
|
100 |
+
}
|
101 |
+
} elseif (in_array($update_email_configuration_data["hostname"], $mail_bank_auth_host->yahoo_domains)) {
|
102 |
+
$test_secret_key_error = $mail_bank_auth_host->yahoo_authentication_token($code);
|
103 |
+
if (isset($test_secret_key_error->error)) {
|
104 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
105 |
+
break;
|
106 |
+
}
|
107 |
+
} else {
|
108 |
+
$test_secret_key_error = $mail_bank_auth_host->microsoft_authentication_token($code);
|
109 |
+
if (isset($test_secret_key_error->error)) {
|
110 |
+
$test_secret_key_error = $test_secret_key_error->error_description;
|
111 |
+
break;
|
112 |
+
}
|
113 |
+
}
|
114 |
+
$obj_dbHelper_mail_bank = new dbHelper_mail_bank();
|
115 |
|
116 |
+
$update_email_configuration_array = array();
|
117 |
+
$where = array();
|
118 |
+
$where["meta_key"] = "email_configuration";
|
119 |
+
$update_email_configuration_array["meta_value"] = serialize($update_email_configuration_data);
|
120 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $update_email_configuration_array, $where);
|
121 |
+
if ($update_email_configuration_data["automatic_mail"] == 1) {
|
122 |
+
$automatically_send_mail = "true";
|
123 |
+
} else {
|
124 |
+
$automatically_not_send_mail = "true";
|
125 |
+
}
|
126 |
+
}
|
127 |
+
break;
|
128 |
+
}
|
129 |
}
|
130 |
}
|
131 |
}
|
includes/sidebar.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -26,133 +26,133 @@ if (!is_user_logged_in()) {
|
|
26 |
<div class="page-sidebar-wrapper-tech-banker">
|
27 |
<div class="page-sidebar-tech-banker navbar-collapse collapse">
|
28 |
<div class="sidebar-menu-tech-banker">
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
<div class="page-content-wrapper">
|
116 |
<div class="page-content">
|
117 |
<div style="margin-bottom:10px">
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
</div>
|
122 |
<div class="container-fluid page-header-container">
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
</div>
|
155 |
-
|
156 |
-
|
157 |
}
|
158 |
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
26 |
<div class="page-sidebar-wrapper-tech-banker">
|
27 |
<div class="page-sidebar-tech-banker navbar-collapse collapse">
|
28 |
<div class="sidebar-menu-tech-banker">
|
29 |
+
<ul class="page-sidebar-menu-tech-banker" data-slide-speed="200">
|
30 |
+
<div class="sidebar-search-wrapper" style="padding:20px;text-align:center">
|
31 |
+
<a class="plugin-logo" href="<?php echo tech_banker_beta_url; ?>" target="_blank">
|
32 |
+
<img src="<?php echo plugins_url("assets/global/img/mail-bank-logo.png", dirname(__FILE__)); ?>" alt="Mail Bank">
|
33 |
+
</a>
|
34 |
+
</div>
|
35 |
+
<li id="ux_mb_li_email_configuration">
|
36 |
+
<a href="admin.php?page=mb_email_configuration">
|
37 |
+
<i class="icon-custom-envelope-open"></i>
|
38 |
+
<span class="title">
|
39 |
+
<?php echo $mb_email_configuration; ?>
|
40 |
+
</span>
|
41 |
+
</a>
|
42 |
+
</li>
|
43 |
+
<li id="ux_mb_li_test_email">
|
44 |
+
<a href="admin.php?page=mb_test_email">
|
45 |
+
<i class="icon-custom-envelope "></i>
|
46 |
+
<span class="title">
|
47 |
+
<?php echo $mb_test_email; ?>
|
48 |
+
</span>
|
49 |
+
</a>
|
50 |
+
</li>
|
51 |
+
<li id="ux_mb_li_connectivity_test">
|
52 |
+
<a href="admin.php?page=mb_connectivity_test">
|
53 |
+
<i class="icon-custom-globe"></i>
|
54 |
+
<span class="title">
|
55 |
+
<?php echo $mb_connectivity_test; ?>
|
56 |
+
</span>
|
57 |
+
</a>
|
58 |
+
</li>
|
59 |
+
<li id="ux_mb_li_email_logs">
|
60 |
+
<a href="admin.php?page=mb_email_logs">
|
61 |
+
<i class="icon-custom-note"></i>
|
62 |
+
<span class="title">
|
63 |
+
<?php echo $mb_email_logs; ?>
|
64 |
+
</span>
|
65 |
+
<span class="badge">
|
66 |
+
Pro
|
67 |
+
</span>
|
68 |
+
</a>
|
69 |
+
</li>
|
70 |
+
<li id="ux_mb_li_settings">
|
71 |
+
<a href="admin.php?page=mb_settings">
|
72 |
+
<i class="icon-custom-paper-clip"></i>
|
73 |
+
<span class="title">
|
74 |
+
<?php echo $mb_settings; ?>
|
75 |
+
</span>
|
76 |
+
</a>
|
77 |
+
</li>
|
78 |
+
<li id="ux_mb_li_roles_and_capabilities">
|
79 |
+
<a href="admin.php?page=mb_roles_and_capabilities">
|
80 |
+
<i class="icon-custom-user"></i>
|
81 |
+
<span class="title">
|
82 |
+
<?php echo $mb_roles_and_capabilities; ?>
|
83 |
+
</span>
|
84 |
+
<span class="badge">Pro</span>
|
85 |
+
</a>
|
86 |
+
</li>
|
87 |
+
<li id="ux_mb_li_feedbacks">
|
88 |
+
<a href="admin.php?page=mb_feedbacks">
|
89 |
+
<i class="icon-custom-star"></i>
|
90 |
+
<span class="title">
|
91 |
+
<?php echo $mb_feedbacks; ?>
|
92 |
+
</span>
|
93 |
+
</a>
|
94 |
+
</li>
|
95 |
+
<li id="ux_mb_li_system_information">
|
96 |
+
<a href="admin.php?page=mb_system_information">
|
97 |
+
<i class="icon-custom-screen-desktop"></i>
|
98 |
+
<span class="title">
|
99 |
+
<?php echo $mb_system_information; ?>
|
100 |
+
</span>
|
101 |
+
</a>
|
102 |
+
</li>
|
103 |
+
<li class="" id="ux_li_upgrade">
|
104 |
+
<a href="admin.php?page=mb_upgrade">
|
105 |
+
<i class="icon-custom-briefcase"></i>
|
106 |
+
<span class="title">
|
107 |
+
<?php echo $mb_upgrade; ?>
|
108 |
+
</span>
|
109 |
+
</a>
|
110 |
+
</li>
|
111 |
+
</ul>
|
112 |
</div>
|
113 |
</div>
|
114 |
</div>
|
115 |
<div class="page-content-wrapper">
|
116 |
<div class="page-content">
|
117 |
<div style="margin-bottom:10px">
|
118 |
+
<a href="http://beta.tech-banker.com/products/mail-bank/" target="_blank">
|
119 |
+
<img src="<?php echo plugins_url("assets/global/img/mail-bank-banner.png", dirname(__FILE__)); ?>" title="Mail Bank" style="width: 100%;">
|
120 |
+
</a>
|
121 |
</div>
|
122 |
<div class="container-fluid page-header-container">
|
123 |
+
<div class="row">
|
124 |
+
<div class="col-md-3 page-header-column">
|
125 |
+
<h4>Get Started</h4>
|
126 |
+
<a class="btn" href="#" target="_blank">Watch Video!</a>
|
127 |
+
<p>or <a href="http://beta.tech-banker.com/products/mail-bank/user-guide/" target="_blank">read documentation here</a></p>
|
128 |
+
</div>
|
129 |
+
<div class="col-md-3 page-header-column">
|
130 |
+
<h4>Go Premium</h4>
|
131 |
+
<ul>
|
132 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/" target="_blank">Features</a></li>
|
133 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/demos/" target="_blank">Online Demos</a></li>
|
134 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/pricing/" target="_blank">Pricing Plans</a></li>
|
135 |
+
</ul>
|
136 |
+
</div>
|
137 |
+
<div class="col-md-3 page-header-column">
|
138 |
+
<h4>User Guide</h4>
|
139 |
+
<ul>
|
140 |
+
<li><a href="http://beta.tech-banker.com/products/mail-bank/user-guide/" target="_blank">Documentation</a></li>
|
141 |
+
<li><a href="https://wordpress.org/support/plugin/wp-mail-bank" target="_blank">Support Question!</a></li>
|
142 |
+
<li><a href="http://beta.tech-banker.com/contact-us/" target="_blank">Contact Us</a></li>
|
143 |
+
</ul>
|
144 |
+
</div>
|
145 |
+
<div class="col-md-3 page-header-column">
|
146 |
+
<h4>More Actions</h4>
|
147 |
+
<ul>
|
148 |
+
<li><a href="https://wordpress.org/support/plugin/wp-mail-bank/reviews/?filter=5" target="_blank">Rate Us!</a></li>
|
149 |
+
<li><a href="http://beta.tech-banker.com/products/" target="_blank">Our Other Products</a></li>
|
150 |
+
<li><a href="http://beta.tech-banker.com/services/" target="_blank">Our Other Services</a></li>
|
151 |
+
</ul>
|
152 |
+
</div>
|
153 |
+
</div>
|
154 |
</div>
|
155 |
+
<?php
|
156 |
+
}
|
157 |
}
|
158 |
|
includes/token-manager-mail-bank.php
CHANGED
@@ -8,81 +8,81 @@ if (!class_exists("token_manager_mail_bank")) {
|
|
8 |
class token_manager_mail_bank {
|
9 |
|
10 |
public
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
|
16 |
// Constructor
|
17 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
}
|
23 |
|
24 |
public function get_authorization_token() {
|
25 |
-
|
26 |
}
|
27 |
|
28 |
public function check_access_token() {
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
|
34 |
// Decoded the received token
|
35 |
public function process_response($response) {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
}
|
49 |
|
50 |
//This function is used to extracts values(expiry time, accesstoken, refresh token)
|
51 |
public function receive_decode_authorization_token($new_token) {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
}
|
72 |
|
73 |
// get_refresh_token function is used to give specific URL and redirectUri to refresh the access token.
|
74 |
public function get_refresh_token() {
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
}
|
87 |
|
88 |
}
|
8 |
class token_manager_mail_bank {
|
9 |
|
10 |
public
|
11 |
+
$client_id,
|
12 |
+
$client_secret,
|
13 |
+
$authorization_token,
|
14 |
+
$callback_uri;
|
15 |
|
16 |
// Constructor
|
17 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
18 |
+
$this->client_id = $client_id;
|
19 |
+
$this->client_secret = $client_secret;
|
20 |
+
$this->authorization_token = $authorization_token;
|
21 |
+
$this->callback_uri = $callback_uri;
|
22 |
}
|
23 |
|
24 |
public function get_authorization_token() {
|
25 |
+
return $this->authorization_token;
|
26 |
}
|
27 |
|
28 |
public function check_access_token() {
|
29 |
+
$expiry_time = ($this->authorization_token->retrieve_token_expiry_time_mail_bank() - 60);
|
30 |
+
$token_expired = time() > $expiry_time;
|
31 |
+
return $token_expired;
|
32 |
}
|
33 |
|
34 |
// Decoded the received token
|
35 |
public function process_response($response) {
|
36 |
+
$oauth_token = json_decode(stripslashes($response));
|
37 |
+
if ($oauth_token === NULL) {
|
38 |
+
throw new Exception($response);
|
39 |
+
} elseif (isset($oauth_token->{"error"})) {
|
40 |
+
if (isset($oauth_token->{"error_description"})) {
|
41 |
+
return $oauth_token;
|
42 |
+
} else {
|
43 |
+
throw new Exception($oauth_token->{"error"});
|
44 |
+
}
|
45 |
+
} else {
|
46 |
+
$this->receive_decode_authorization_token($oauth_token);
|
47 |
+
}
|
48 |
}
|
49 |
|
50 |
//This function is used to extracts values(expiry time, accesstoken, refresh token)
|
51 |
public function receive_decode_authorization_token($new_token) {
|
52 |
+
// Update expiry time
|
53 |
+
if (empty($new_token->{"expires_in"})) {
|
54 |
+
throw new Exception("[expires_in] value is missing from token");
|
55 |
+
}
|
56 |
+
$changed_expiry_time = time() + $new_token->{"expires_in"};
|
57 |
+
$this->get_authorization_token()->set_token_expirytime_mail_bank($changed_expiry_time);
|
58 |
|
59 |
+
// Update access token
|
60 |
+
if (empty($new_token->{"access_token"})) {
|
61 |
+
throw new Exception("[access_token] value is missing from token");
|
62 |
+
}
|
63 |
+
$new_access_token = $new_token->{"access_token"};
|
64 |
+
$this->get_authorization_token()->set_access_token_mail_bank($new_access_token);
|
65 |
|
66 |
+
// Update refresh token
|
67 |
+
if (isset($new_token->{"refresh_token"})) {
|
68 |
+
$new_refresh_token = $new_token->{"refresh_token"};
|
69 |
+
$this->get_authorization_token()->set_refresh_token_mail_bank($new_refresh_token);
|
70 |
+
}
|
71 |
}
|
72 |
|
73 |
// get_refresh_token function is used to give specific URL and redirectUri to refresh the access token.
|
74 |
public function get_refresh_token() {
|
75 |
+
$refresh_uri = $this->token_url;
|
76 |
+
$callback_uri = $this->callback_uri;
|
77 |
+
$configurations = array(
|
78 |
+
"client_id" => $this->client_id,
|
79 |
+
"client_secret" => $this->client_secret,
|
80 |
+
"redirect_uri" => $callback_uri,
|
81 |
+
"grant_type" => "refresh_token",
|
82 |
+
"refresh_token" => $this->get_authorization_token()->retrieve_refresh_token_mail_bank()
|
83 |
+
);
|
84 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($refresh_uri, $configurations);
|
85 |
+
$this->process_response($response);
|
86 |
}
|
87 |
|
88 |
}
|
includes/translations.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
/**
|
4 |
* This file is used for translation strings.
|
5 |
*
|
@@ -16,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -161,14 +160,13 @@ if (!is_user_logged_in()) {
|
|
161 |
$wp_langs["yor"] = "Yorùbá";
|
162 |
$locale = strtolower(get_locale());
|
163 |
if (array_key_exists("$locale", $wp_langs)) {
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
$mb_message_translate_here = __("here.", "wp-mail-bank");
|
168 |
} else {
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
}
|
173 |
|
174 |
//Disclaimer
|
@@ -176,6 +174,7 @@ if (!is_user_logged_in()) {
|
|
176 |
$mb_premium_edition_label = __("Premium Edition", "wp-mail-bank");
|
177 |
$mb_message_premium_edition = __("This feature is available only in Premium Editions! <br> Kindly Purchase to unlock it!", "wp-mail-bank");
|
178 |
|
|
|
179 |
//wizard
|
180 |
$mb_wizard_basic_info = __("Basic Info", "wp-mail-bank");
|
181 |
$mb_wizard_account_setup = __("Account Setup", "wp-mail-bank");
|
@@ -229,6 +228,7 @@ if (!is_user_logged_in()) {
|
|
229 |
$mb_subject = __("Subject", "wp-mail-bank");
|
230 |
$mb_next_step = __("Next Step", "wp-mail-bank");
|
231 |
$mb_previous_step = __("Previous Step", "wp-mail-bank");
|
|
|
232 |
|
233 |
// Email Setup
|
234 |
$mb_email_configuration_cc_label = __("Cc", "wp-mail-bank");
|
1 |
+
<?php
|
|
|
2 |
/**
|
3 |
* This file is used for translation strings.
|
4 |
*
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
160 |
$wp_langs["yor"] = "Yorùbá";
|
161 |
$locale = strtolower(get_locale());
|
162 |
if (array_key_exists("$locale", $wp_langs)) {
|
163 |
+
$language = $wp_langs["$locale"];
|
164 |
+
$mb_message_translate_help = __("If you would like to translate in $language & help the wordpress community, please fill in the form ", "wp-mail-bank");
|
165 |
+
$mb_message_translate_here = __("here.", "wp-mail-bank");
|
|
|
166 |
} else {
|
167 |
+
$mb_message_translate_help = "";
|
168 |
+
$mb_kindly_click = "";
|
169 |
+
$mb_message_translate_here = "";
|
170 |
}
|
171 |
|
172 |
//Disclaimer
|
174 |
$mb_premium_edition_label = __("Premium Edition", "wp-mail-bank");
|
175 |
$mb_message_premium_edition = __("This feature is available only in Premium Editions! <br> Kindly Purchase to unlock it!", "wp-mail-bank");
|
176 |
|
177 |
+
|
178 |
//wizard
|
179 |
$mb_wizard_basic_info = __("Basic Info", "wp-mail-bank");
|
180 |
$mb_wizard_account_setup = __("Account Setup", "wp-mail-bank");
|
228 |
$mb_subject = __("Subject", "wp-mail-bank");
|
229 |
$mb_next_step = __("Next Step", "wp-mail-bank");
|
230 |
$mb_previous_step = __("Previous Step", "wp-mail-bank");
|
231 |
+
$mb_upgrade_to = __("Upgrade to Premium Editions", "wp-mail-bank");
|
232 |
|
233 |
// Email Setup
|
234 |
$mb_email_configuration_cc_label = __("Cc", "wp-mail-bank");
|
includes/yahoo-authentication-mail-bank.php
CHANGED
@@ -12,73 +12,73 @@ if (!class_exists("yahoo_authentication_mail_bank")) {
|
|
12 |
class yahoo_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
|
20 |
// Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
|
29 |
// This function is used to get token code.
|
30 |
public function get_token_code($transactionId) {
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
|
41 |
// This function is used to process token code
|
42 |
public function process_token_Code($transactionId) {
|
43 |
-
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
}
|
66 |
|
67 |
//This function is used to get refresh token for new access token
|
68 |
public function get_refresh_token() {
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
}
|
83 |
|
84 |
}
|
12 |
class yahoo_authentication_mail_bank extends token_manager_mail_bank {
|
13 |
|
14 |
public
|
15 |
+
$client_id,
|
16 |
+
$client_secret,
|
17 |
+
$callback_uri,
|
18 |
+
$token_url;
|
19 |
|
20 |
// Constructor
|
21 |
public function __construct($client_id, $client_secret, mail_bank_manage_token $authorization_token, $callback_uri) {
|
22 |
+
$this->client_id = $client_id;
|
23 |
+
$this->client_secret = $client_secret;
|
24 |
+
$this->callback_uri = $callback_uri;
|
25 |
+
$this->token_url = "https://api.login.yahoo.com/oauth2/get_token";
|
26 |
+
parent::__construct($client_id, $client_secret, $authorization_token, $callback_uri);
|
27 |
}
|
28 |
|
29 |
// This function is used to get token code.
|
30 |
public function get_token_code($transactionId) {
|
31 |
+
$configurations = array(
|
32 |
+
"response_type" => "code",
|
33 |
+
"redirect_uri" => urlencode($this->callback_uri),
|
34 |
+
"client_id" => $this->client_id,
|
35 |
+
"state" => $transactionId,
|
36 |
+
"language" => get_locale()
|
37 |
+
);
|
38 |
+
echo $authUrl = "https://api.login.yahoo.com/oauth2/request_auth?" . build_query($configurations);
|
39 |
}
|
40 |
|
41 |
// This function is used to process token code
|
42 |
public function process_token_Code($transactionId) {
|
43 |
+
if (isset($_REQUEST["access_token"])) {
|
44 |
+
$code = esc_attr($_REQUEST["access_token"]);
|
45 |
|
46 |
+
$headers = array(
|
47 |
+
"Authorization" => sprintf("Basic %s", base64_encode($this->client_id . ':' . $this->client_secret))
|
48 |
+
);
|
49 |
+
$configurations = array(
|
50 |
+
"code" => $code,
|
51 |
+
"grant_type" => "authorization_code",
|
52 |
+
"redirect_uri" => $this->callback_uri
|
53 |
+
);
|
54 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations, $headers);
|
55 |
+
$yahoo_secret_key = $this->process_response($response);
|
56 |
+
if (isset($yahoo_secret_key->error)) {
|
57 |
+
return $yahoo_secret_key;
|
58 |
+
} else {
|
59 |
+
$this->get_authorization_token()->set_vendorname_mail_bank("yahoo");
|
60 |
+
return "1";
|
61 |
+
}
|
62 |
+
} else {
|
63 |
+
return false;
|
64 |
+
}
|
65 |
}
|
66 |
|
67 |
//This function is used to get refresh token for new access token
|
68 |
public function get_refresh_token() {
|
69 |
+
$refresh_url = $this->token_url;
|
70 |
+
$callback_uri = $this->callback_uri;
|
71 |
+
$headers = array(
|
72 |
+
"Authorization" => sprintf("Basic %s", base64_encode($this->client_id . ':' . $this->client_secret))
|
73 |
+
);
|
74 |
|
75 |
+
$configurations = array(
|
76 |
+
"redirect_uri" => $callback_uri,
|
77 |
+
"grant_type" => "refresh_token",
|
78 |
+
"refresh_token" => $this->get_authorization_token()->retrieve_refresh_token_mail_bank()
|
79 |
+
);
|
80 |
+
$response = mail_bank_zend_mail_helper::retrieve_body_from_response_mail_bank($this->token_url, $configurations, $headers);
|
81 |
+
$this->process_response($response);
|
82 |
}
|
83 |
|
84 |
}
|
languages/{wp-mail-bank-vi_VN.mo → wp-mail-bank-vi.mo}
RENAMED
Binary file
|
languages/{wp-mail-bank-vi_VN.po → wp-mail-bank-vi.po}
RENAMED
@@ -3,7 +3,7 @@ msgstr ""
|
|
3 |
"Project-Id-Version: Mail Bank\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2017-05-22 17:39+0530\n"
|
6 |
-
"PO-Revision-Date: 2017-06-
|
7 |
"Last-Translator: Tech Banker\n"
|
8 |
"Language-Team: Vietnamese (Vietnam)\n"
|
9 |
"Language: vi_VN\n"
|
@@ -11,7 +11,7 @@ msgstr ""
|
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
-
"X-Generator: Poedit
|
15 |
"X-Loco-Source-Locale: en-IN\n"
|
16 |
"X-Loco-Project-Id: 22543\n"
|
17 |
"X-Loco-Api-Version: 1.0.17 20170516-2\n"
|
3 |
"Project-Id-Version: Mail Bank\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: 2017-05-22 17:39+0530\n"
|
6 |
+
"PO-Revision-Date: 2017-06-13 17:02+0530\n"
|
7 |
"Last-Translator: Tech Banker\n"
|
8 |
"Language-Team: Vietnamese (Vietnam)\n"
|
9 |
"Language: vi_VN\n"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=1; plural=0;\n"
|
14 |
+
"X-Generator: Poedit 2.0\n"
|
15 |
"X-Loco-Source-Locale: en-IN\n"
|
16 |
"X-Loco-Project-Id: 22543\n"
|
17 |
"X-Loco-Api-Version: 1.0.17 20170516-2\n"
|
lib/action-library.php
CHANGED
@@ -15,8 +15,8 @@ if (!is_user_logged_in()) {
|
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
-
|
19 |
-
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
@@ -24,293 +24,293 @@ if (!is_user_logged_in()) {
|
|
24 |
} else {
|
25 |
|
26 |
function get_mail_bank_details_maybe_unserialize($email_data_manage, $mb_date1, $mb_date2) {
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
}
|
37 |
|
38 |
if (isset($_REQUEST["param"])) {
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
|
112 |
-
|
113 |
-
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
|
253 |
-
|
254 |
|
255 |
-
|
256 |
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
}
|
315 |
}
|
316 |
}
|
15 |
$access_granted = false;
|
16 |
foreach ($user_role_permission as $permission) {
|
17 |
if (current_user_can($permission)) {
|
18 |
+
$access_granted = true;
|
19 |
+
break;
|
20 |
}
|
21 |
}
|
22 |
if (!$access_granted) {
|
24 |
} else {
|
25 |
|
26 |
function get_mail_bank_details_maybe_unserialize($email_data_manage, $mb_date1, $mb_date2) {
|
27 |
+
$email_details = array();
|
28 |
+
foreach ($email_data_manage as $raw_row) {
|
29 |
+
$unserialize_data = maybe_unserialize($raw_row->meta_value);
|
30 |
+
$unserialize_data["id"] = $raw_row->id;
|
31 |
+
$unserialize_data["meta_id"] = $raw_row->meta_id;
|
32 |
+
if ($unserialize_data["timestamp"] >= $mb_date1 && $unserialize_data["timestamp"] <= $mb_date2)
|
33 |
+
array_push($email_details, $unserialize_data);
|
34 |
+
}
|
35 |
+
return $email_details;
|
36 |
}
|
37 |
|
38 |
if (isset($_REQUEST["param"])) {
|
39 |
+
$obj_dbHelper_mail_bank = new dbHelper_mail_bank();
|
40 |
+
switch (esc_attr($_REQUEST["param"])) {
|
41 |
+
case "wizard_wp_mail_bank":
|
42 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "wp_mail_bank_check_status")) {
|
43 |
+
$type = isset($_REQUEST["type"]) ? esc_attr($_REQUEST["type"]) : "";
|
44 |
+
update_option("wp-mail-bank-wizard-set-up", $type);
|
45 |
+
if ($type == "opt_in") {
|
46 |
+
$plugin_info_wp_mail_bank = new plugin_info_wp_mail_bank();
|
47 |
+
global $wp_version;
|
48 |
+
$url = tech_banker_stats_url . "/wp-admin/admin-ajax.php";
|
49 |
+
$theme_details = array();
|
50 |
+
if ($wp_version >= 3.4) {
|
51 |
+
$active_theme = wp_get_theme();
|
52 |
+
$theme_details["theme_name"] = strip_tags($active_theme->Name);
|
53 |
+
$theme_details["theme_version"] = strip_tags($active_theme->Version);
|
54 |
+
$theme_details["author_url"] = strip_tags($active_theme->{"Author URI"});
|
55 |
+
}
|
56 |
|
57 |
+
$plugin_stat_data = array();
|
58 |
+
$plugin_stat_data["plugin_slug"] = "wp-mail-bank";
|
59 |
+
$plugin_stat_data["type"] = "standard_edition";
|
60 |
+
$plugin_stat_data["version_number"] = mail_bank_version_number;
|
61 |
+
$plugin_stat_data["status"] = $type;
|
62 |
+
$plugin_stat_data["event"] = "activate";
|
63 |
+
$plugin_stat_data["domain_url"] = site_url();
|
64 |
+
$plugin_stat_data["wp_language"] = defined("WPLANG") && WPLANG ? WPLANG : get_locale();
|
65 |
+
$plugin_stat_data["email"] = get_option("admin_email");
|
66 |
+
$plugin_stat_data["wp_version"] = $wp_version;
|
67 |
+
$plugin_stat_data["php_version"] = esc_html(phpversion());
|
68 |
+
$plugin_stat_data["mysql_version"] = $wpdb->db_version();
|
69 |
+
$plugin_stat_data["max_input_vars"] = ini_get("max_input_vars");
|
70 |
+
$plugin_stat_data["operating_system"] = PHP_OS . " (" . PHP_INT_SIZE * 8 . ") BIT";
|
71 |
+
$plugin_stat_data["php_memory_limit"] = ini_get("memory_limit") ? ini_get("memory_limit") : "N/A";
|
72 |
+
$plugin_stat_data["extensions"] = get_loaded_extensions();
|
73 |
+
$plugin_stat_data["plugins"] = $plugin_info_wp_mail_bank->get_plugin_info_wp_mail_bank();
|
74 |
+
$plugin_stat_data["themes"] = $theme_details;
|
75 |
|
76 |
+
$response = wp_safe_remote_post($url, array
|
77 |
+
(
|
78 |
+
"method" => "POST",
|
79 |
+
"timeout" => 45,
|
80 |
+
"redirection" => 5,
|
81 |
+
"httpversion" => "1.0",
|
82 |
+
"blocking" => true,
|
83 |
+
"headers" => array(),
|
84 |
+
"body" => array("data" => serialize($plugin_stat_data), "site_id" => get_option("mb_tech_banker_site_id") != "" ? get_option("mb_tech_banker_site_id") : "", "action" => "plugin_analysis_data")
|
85 |
+
));
|
86 |
+
if (!is_wp_error($response)) {
|
87 |
+
$response["body"] != "" ? update_option("mb_tech_banker_site_id", $response["body"]) : "";
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
break;
|
92 |
|
93 |
+
case "mail_bank_set_hostname_port_module":
|
94 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_set_hostname_port")) {
|
95 |
+
$smtp_user = isset($_REQUEST["smtp_user"]) ? esc_attr($_REQUEST["smtp_user"]) : "";
|
96 |
+
$hostname = substr(strrchr($smtp_user, "@"), 1);
|
97 |
+
$obj_mail_bank_discover_host = new mail_bank_discover_host();
|
98 |
+
$hostname_to_set = $obj_mail_bank_discover_host->get_smtp_from_email($hostname);
|
99 |
+
echo $hostname_to_set;
|
100 |
+
}
|
101 |
+
break;
|
102 |
|
103 |
+
case "mail_bank_test_email_configuration_module":
|
104 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_test_email_configuration")) {
|
105 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $form_data);
|
106 |
+
global $phpmailer;
|
107 |
+
$logs = array();
|
108 |
+
if (!is_object($phpmailer) || !is_a($phpmailer, "PHPMailer")) {
|
109 |
+
if (file_exists(ABSPATH . WPINC . "/class-phpmailer.php"))
|
110 |
+
require_once ABSPATH . WPINC . "/class-phpmailer.php";
|
111 |
|
112 |
+
if (file_exists(ABSPATH . WPINC . "/class-smtp.php"))
|
113 |
+
require_once ABSPATH . WPINC . "/class-smtp.php";
|
114 |
|
115 |
+
$phpmailer = new PHPMailer(true);
|
116 |
+
}
|
117 |
+
$phpmailer->SMTPDebug = true;
|
118 |
|
119 |
+
$to = isset($form_data["ux_txt_email"]) ? esc_attr($form_data["ux_txt_email"]) : "";
|
120 |
+
$subject = stripcslashes(htmlspecialchars_decode($form_data["ux_txt_subject"], ENT_QUOTES));
|
121 |
+
$message = htmlspecialchars_decode(!empty($form_data["ux_email_configuration_text_area"]) ? esc_attr($form_data["ux_email_configuration_text_area"]) : "This is a demo Test Email for Email Setup - Mail Bank");
|
122 |
+
$headers = "Content-Type: text/html; charset= utf-8" . "\r\n";
|
123 |
+
$result = wp_mail($to, $subject, $message, $headers);
|
124 |
+
$mb_email_configuration_data = $wpdb->get_row
|
125 |
+
(
|
126 |
+
$wpdb->prepare
|
127 |
+
(
|
128 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
129 |
+
" WHERE meta_key = %s", "email_configuration"
|
130 |
+
)
|
131 |
+
);
|
132 |
+
$unserialized_email_configuration_data = maybe_unserialize($mb_email_configuration_data->meta_value);
|
133 |
|
134 |
+
$settings_data = $wpdb->get_var
|
135 |
+
(
|
136 |
+
$wpdb->prepare
|
137 |
+
(
|
138 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
139 |
+
" WHERE meta_key=%s", "settings"
|
140 |
+
)
|
141 |
+
);
|
142 |
+
$settings_data_array = maybe_unserialize($settings_data);
|
143 |
+
$debugging_output = "";
|
144 |
+
$mailer_type_mail_bank = isset($unserialized_email_configuration_data["mailer_type"]) ? esc_attr($unserialized_email_configuration_data["mailer_type"]) : "";
|
145 |
|
146 |
+
if ($mailer_type_mail_bank == "smtp") {
|
147 |
+
$mail_bank_mail_status = get_option("mail_bank_mail_status");
|
148 |
+
$debug_mode_mail_bank = isset($settings_data_array["debug_mode"]) ? esc_attr($settings_data_array["debug_mode"]) : "";
|
149 |
+
if ($debug_mode_mail_bank == "enable") {
|
150 |
+
$debugging_output .= $mb_email_configuration_send_test_email_textarea . "\n";
|
151 |
+
$debugging_output .= $mb_test_email_sending_test_email . " " . $to . "\n";
|
152 |
+
$debugging_output .= $mb_test_email_status . " : ";
|
153 |
+
$debugging_output .= get_option("mail_bank_is_mail_sent") == "Sent" ? $mb_status_sent : $mb_status_not_sent;
|
154 |
+
$debugging_output .= "\n----------------------------------------------------------------------------------------\n";
|
155 |
+
$debugging_output .= $mb_email_logs_debugging_output . " :\n";
|
156 |
+
$debugging_output .= "----------------------------------------------------------------------------------------\n";
|
157 |
+
}
|
158 |
+
$debugging_output .= $mail_bank_mail_status;
|
159 |
+
echo $debugging_output;
|
160 |
+
} else {
|
161 |
+
$to_address = $phpmailer->getToAddresses();
|
162 |
|
163 |
+
$email_logs_data_array = array();
|
164 |
+
$email_logs_data_array["email_to"] = $to_address[0][0];
|
165 |
+
$monitor_email_logs = isset($settings_data_array["monitor_email_logs"]) ? esc_attr($settings_data_array["monitor_email_logs"]) : "";
|
166 |
+
if ($monitor_email_logs == "enable") {
|
167 |
+
$email_logs_data_array["sender_name"] = isset($unserialized_email_configuration_data["sender_name"]) ? esc_attr($unserialized_email_configuration_data["sender_name"]) : "";
|
168 |
+
$email_logs_data_array["sender_email"] = isset($unserialized_email_configuration_data["sender_email"]) ? esc_attr($unserialized_email_configuration_data["sender_email"]) : "";
|
169 |
+
$email_logs_data_array["cc"] = "";
|
170 |
+
$email_logs_data_array["bcc"] = "";
|
171 |
+
$email_logs_data_array["subject"] = $phpmailer->Subject;
|
172 |
+
$email_logs_data_array["content"] = $phpmailer->Body;
|
173 |
+
$email_logs_data_array["timestamp"] = MAIL_BANK_LOCAL_TIME;
|
174 |
|
175 |
+
if ($result == "true" || $result == "1") {
|
176 |
+
$email_logs_data_array["status"] = "Sent";
|
177 |
+
} else {
|
178 |
+
$email_logs_data_array["status"] = "Not Sent";
|
179 |
+
}
|
180 |
+
$email_logs_id = $wpdb->get_var
|
181 |
+
(
|
182 |
+
$wpdb->prepare
|
183 |
+
(
|
184 |
+
"SELECT id FROM " . mail_bank() .
|
185 |
+
" WHERE type = %s", "email_logs"
|
186 |
+
)
|
187 |
+
);
|
188 |
|
189 |
+
$email_logs_data = array();
|
190 |
+
$email_logs_data["meta_id"] = $email_logs_id;
|
191 |
+
$email_logs_data["meta_key"] = "email_logs";
|
192 |
+
$email_logs_data["meta_value"] = serialize($email_logs_data_array);
|
193 |
+
$obj_dbHelper_mail_bank->insertCommand(mail_bank_meta(), $email_logs_data);
|
194 |
+
}
|
195 |
+
echo $result;
|
196 |
+
}
|
197 |
+
}
|
198 |
+
break;
|
199 |
|
200 |
+
case "mail_bank_settings_module":
|
201 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_settings")) {
|
202 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $settings_array);
|
203 |
|
204 |
+
$settings_data = array();
|
205 |
+
$settings_data["debug_mode"] = esc_attr($settings_array["ux_ddl_debug_mode"]);
|
206 |
+
$settings_data["remove_tables_at_uninstall"] = esc_attr($settings_array["ux_ddl_remove_tables"]);
|
207 |
+
$settings_data["monitor_email_logs"] = esc_attr($settings_array["ux_ddl_monitor_email_logs"]);
|
208 |
+
$where = array();
|
209 |
+
$settings_data_array = array();
|
210 |
+
$where["meta_key"] = "settings";
|
211 |
+
$settings_data_array["meta_value"] = serialize($settings_data);
|
212 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $settings_data_array, $where);
|
213 |
+
}
|
214 |
+
break;
|
215 |
|
216 |
+
case "mail_bank_email_configuration_settings_module":
|
217 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "mail_bank_email_configuration_settings")) {
|
218 |
+
parse_str(isset($_REQUEST["data"]) ? base64_decode($_REQUEST["data"]) : "", $form_data);
|
219 |
+
$update_email_configuration_array = array();
|
220 |
+
$update_email_configuration_array["email_address"] = esc_attr($form_data["ux_txt_email_address"]);
|
221 |
+
$update_email_configuration_array["reply_to"] = "";
|
222 |
+
$update_email_configuration_array["cc"] = "";
|
223 |
+
$update_email_configuration_array["bcc"] = "";
|
224 |
+
$update_email_configuration_array["mailer_type"] = esc_attr($form_data["ux_ddl_type"]);
|
225 |
+
$update_email_configuration_array["sender_name_configuration"] = esc_attr($form_data["ux_ddl_from_name"]);
|
226 |
+
$update_email_configuration_array["sender_name"] = isset($form_data["ux_txt_mb_from_name"]) ? esc_html($form_data["ux_txt_mb_from_name"]) : "";
|
227 |
+
$update_email_configuration_array["from_email_configuration"] = esc_attr($form_data["ux_ddl_from_email"]);
|
228 |
+
$update_email_configuration_array["sender_email"] = isset($form_data["ux_txt_mb_from_email_configuration"]) ? esc_html($form_data["ux_txt_mb_from_email_configuration"]) : "";
|
229 |
+
$update_email_configuration_array["hostname"] = esc_html($form_data["ux_txt_host"]);
|
230 |
+
$update_email_configuration_array["port"] = intval($form_data["ux_txt_port"]);
|
231 |
+
$update_email_configuration_array["enc_type"] = esc_attr($form_data["ux_ddl_encryption"]);
|
232 |
+
$update_email_configuration_array["auth_type"] = esc_attr($form_data["ux_ddl_mb_authentication"]);
|
233 |
+
$update_email_configuration_array["client_id"] = esc_html(trim($form_data["ux_txt_client_id"]));
|
234 |
+
$update_email_configuration_array["client_secret"] = esc_html(trim($form_data["ux_txt_client_secret"]));
|
235 |
+
$update_email_configuration_array["username"] = esc_html($form_data["ux_txt_username"]);
|
236 |
+
$update_email_configuration_array["automatic_mail"] = isset($form_data["ux_chk_automatic_sent_mail"]) ? esc_html($form_data["ux_chk_automatic_sent_mail"]) : "";
|
237 |
|
238 |
+
if (preg_match('/^\**$/', $form_data["ux_txt_password"])) {
|
239 |
+
$email_configuration_data = $wpdb->get_var
|
240 |
+
(
|
241 |
+
$wpdb->prepare
|
242 |
+
(
|
243 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
244 |
+
" WHERE meta_key=%s", "email_configuration"
|
245 |
+
)
|
246 |
+
);
|
247 |
+
$email_configuration_array = maybe_unserialize($email_configuration_data);
|
248 |
+
$update_email_configuration_array["password"] = isset($email_configuration_array["password"]) ? esc_attr($email_configuration_array["password"]) : "";
|
249 |
+
} else {
|
250 |
+
$update_email_configuration_array["password"] = base64_encode(esc_html($form_data["ux_txt_password"]));
|
251 |
+
}
|
252 |
|
253 |
+
$update_email_configuration_array["redirect_uri"] = esc_html($form_data["ux_txt_redirect_uri"]);
|
254 |
|
255 |
+
update_option("update_email_configuration", $update_email_configuration_array);
|
256 |
|
257 |
+
$mail_bank_auth_host = new mail_bank_auth_host($update_email_configuration_array);
|
258 |
+
if (!in_array($form_data["ux_txt_host"], $mail_bank_auth_host->oauth_domains) && $form_data["ux_ddl_mb_authentication"] == "oauth2") {
|
259 |
+
echo "100";
|
260 |
+
die();
|
261 |
+
}
|
262 |
|
263 |
+
if ($update_email_configuration_array["auth_type"] == "oauth2" && $update_email_configuration_array["mailer_type"] == "smtp") {
|
264 |
+
if ($update_email_configuration_array["hostname"] == "smtp.gmail.com") {
|
265 |
+
$mail_bank_auth_host->google_authentication();
|
266 |
+
} elseif ($update_email_configuration_array["hostname"] == "smtp.live.com" && $update_email_configuration_array["mailer_type"] == "smtp") {
|
267 |
+
$mail_bank_auth_host->microsoft_authentication();
|
268 |
+
} elseif (in_array($update_email_configuration_array["hostname"], $mail_bank_auth_host->yahoo_domains)) {
|
269 |
+
$mail_bank_auth_host->yahoo_authentication();
|
270 |
+
}
|
271 |
+
} else {
|
272 |
+
$update_email_configuration_data_array = array();
|
273 |
+
$where = array();
|
274 |
+
$where["meta_key"] = "email_configuration";
|
275 |
+
$update_email_configuration_data_array["meta_value"] = serialize($update_email_configuration_array);
|
276 |
+
$obj_dbHelper_mail_bank->updateCommand(mail_bank_meta(), $update_email_configuration_data_array, $where);
|
277 |
+
}
|
278 |
+
}
|
279 |
+
break;
|
280 |
|
281 |
+
case "mail_bank_connectivity_test":
|
282 |
+
if (wp_verify_nonce(isset($_REQUEST["_wp_nonce"]) ? esc_attr($_REQUEST["_wp_nonce"]) : "", "connectivity_test_nonce")) {
|
283 |
+
$host = isset($_REQUEST["smtp_host"]) ? esc_attr($_REQUEST["smtp_host"]) : "";
|
284 |
+
$ports = array(25, 587, 465, 2525, 4065, 25025);
|
285 |
+
$ports_result = array();
|
286 |
+
foreach ($ports as $port) {
|
287 |
+
$connection = @fsockopen($host, $port);
|
288 |
+
if (is_resource($connection)) {
|
289 |
+
$ports_result[$port] = "Open";
|
290 |
+
fclose($connection);
|
291 |
+
} else {
|
292 |
+
$ports_result[$port] = "Close";
|
293 |
+
}
|
294 |
+
}
|
295 |
+
foreach ($ports_result as $results => $val) {
|
296 |
+
?>
|
297 |
+
<tr>
|
298 |
+
<td>
|
299 |
+
<?php echo $mb_smtp; ?>
|
300 |
+
</td>
|
301 |
+
<td>
|
302 |
+
<?php echo $host . ":" . intval($results); ?>
|
303 |
+
</td>
|
304 |
+
<td>
|
305 |
+
<span style="<?php echo $val == 'Close' ? 'color:red' : ""; ?>"><?php echo $val; ?>
|
306 |
+
</td>
|
307 |
+
</tr>
|
308 |
+
<?php
|
309 |
+
}
|
310 |
+
}
|
311 |
+
break;
|
312 |
+
}
|
313 |
+
die();
|
314 |
}
|
315 |
}
|
316 |
}
|
lib/admin-bar-menu.php
CHANGED
@@ -16,8 +16,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -26,121 +26,121 @@ if (!is_user_logged_in()) {
|
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
-
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
-
|
42 |
} else {
|
43 |
-
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
|
71 |
if ($flag == "1") {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
}
|
146 |
}
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
+
$access_granted = true;
|
20 |
+
break;
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
+
(
|
30 |
+
$wpdb->prepare
|
31 |
+
(
|
32 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
+
)
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
+
$mb_role = "administrator";
|
42 |
} else {
|
43 |
+
$mb_role = check_user_roles_mail_bank();
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
+
case "administrator":
|
47 |
+
$flag = $capabilities[0];
|
48 |
+
break;
|
49 |
|
50 |
+
case "author":
|
51 |
+
$flag = $capabilities[1];
|
52 |
+
break;
|
53 |
|
54 |
+
case "editor":
|
55 |
+
$flag = $capabilities[2];
|
56 |
+
break;
|
57 |
|
58 |
+
case "contributor":
|
59 |
+
$flag = $capabilities[3];
|
60 |
+
break;
|
61 |
|
62 |
+
case "subscriber":
|
63 |
+
$flag = $capabilities[4];
|
64 |
+
break;
|
65 |
|
66 |
+
default:
|
67 |
+
$flag = $capabilities[5];
|
68 |
+
break;
|
69 |
}
|
70 |
|
71 |
if ($flag == "1") {
|
72 |
+
global $wp_version;
|
73 |
+
$icon = "<img style=\"vertical-align:middle; margin-right:3px;\" src=" . plugins_url("assets/global/img/icon.png", dirname(__FILE__)) . ">";
|
74 |
+
$wp_admin_bar->add_menu(array
|
75 |
+
(
|
76 |
+
"id" => "wp_mail_bank",
|
77 |
+
"title" => $icon . "<span class=\"ab-label\">" . $wp_mail_bank . "</span>",
|
78 |
+
"href" => admin_url("admin.php?page=mb_email_configuration")
|
79 |
+
));
|
80 |
+
$wp_admin_bar->add_menu(array
|
81 |
+
(
|
82 |
+
"parent" => "wp_mail_bank",
|
83 |
+
"id" => "email_configuration_mail_bank",
|
84 |
+
"title" => $mb_email_configuration,
|
85 |
+
"href" => admin_url("admin.php?page=mb_email_configuration")
|
86 |
+
));
|
87 |
+
$wp_admin_bar->add_menu(array
|
88 |
+
(
|
89 |
+
"parent" => "wp_mail_bank",
|
90 |
+
"id" => "test_email_mail_bank",
|
91 |
+
"title" => $mb_test_email,
|
92 |
+
"href" => admin_url("admin.php?page=mb_test_email")
|
93 |
+
));
|
94 |
+
$wp_admin_bar->add_menu(array
|
95 |
+
(
|
96 |
+
"parent" => "wp_mail_bank",
|
97 |
+
"id" => "connectivity_test_mail_bank",
|
98 |
+
"title" => $mb_connectivity_test,
|
99 |
+
"href" => admin_url("admin.php?page=mb_connectivity_test")
|
100 |
+
));
|
101 |
+
$wp_admin_bar->add_menu(array
|
102 |
+
(
|
103 |
+
"parent" => "wp_mail_bank",
|
104 |
+
"id" => "email_logs_mail_bank",
|
105 |
+
"title" => $mb_email_logs,
|
106 |
+
"href" => admin_url("admin.php?page=mb_email_logs")
|
107 |
+
));
|
108 |
|
109 |
+
$wp_admin_bar->add_menu(array
|
110 |
+
(
|
111 |
+
"parent" => "wp_mail_bank",
|
112 |
+
"id" => "general_settings_mail_bank",
|
113 |
+
"title" => $mb_settings,
|
114 |
+
"href" => admin_url("admin.php?page=mb_settings")
|
115 |
+
));
|
116 |
+
$wp_admin_bar->add_menu(array
|
117 |
+
(
|
118 |
+
"parent" => "wp_mail_bank",
|
119 |
+
"id" => "roles_and_capabilities_mail_bank",
|
120 |
+
"title" => $mb_roles_and_capabilities,
|
121 |
+
"href" => admin_url("admin.php?page=mb_roles_and_capabilities")
|
122 |
+
));
|
123 |
+
$wp_admin_bar->add_menu(array
|
124 |
+
(
|
125 |
+
"parent" => "wp_mail_bank",
|
126 |
+
"id" => "feedbacks_mail_bank",
|
127 |
+
"title" => $mb_feedbacks,
|
128 |
+
"href" => admin_url("admin.php?page=mb_feedbacks")
|
129 |
+
));
|
130 |
+
$wp_admin_bar->add_menu(array
|
131 |
+
(
|
132 |
+
"parent" => "wp_mail_bank",
|
133 |
+
"id" => "system_information_mail_bank",
|
134 |
+
"title" => $mb_system_information,
|
135 |
+
"href" => admin_url("admin.php?page=mb_system_information")
|
136 |
+
));
|
137 |
+
$wp_admin_bar->add_menu(array
|
138 |
+
(
|
139 |
+
"parent" => "wp_mail_bank",
|
140 |
+
"id" => "mb_upgrade",
|
141 |
+
"title" => $mb_upgrade,
|
142 |
+
"href" => admin_url("admin.php?page=mb_upgrade")
|
143 |
+
));
|
144 |
}
|
145 |
}
|
146 |
}
|
lib/helper.php
CHANGED
@@ -16,8 +16,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -32,77 +32,77 @@ if (!is_user_logged_in()) {
|
|
32 |
*/
|
33 |
|
34 |
class dbHelper_mail_bank {
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
|
107 |
}
|
108 |
|
@@ -116,111 +116,111 @@ if (!is_user_logged_in()) {
|
|
116 |
|
117 |
class mail_bank_discover_host {
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
|
195 |
}
|
196 |
|
197 |
class plugin_info_wp_mail_bank {
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
|
225 |
}
|
226 |
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
+
$access_granted = true;
|
20 |
+
break;
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
32 |
*/
|
33 |
|
34 |
class dbHelper_mail_bank {
|
35 |
+
/*
|
36 |
+
Function Name: insertCommand
|
37 |
+
Parameters: Yes($table_name,$data)
|
38 |
+
Description: This Function is used for Insert data in database.
|
39 |
+
Created On: 15-06-2016 10:43
|
40 |
+
Created By: Tech Banker Team
|
41 |
+
*/
|
42 |
+
|
43 |
+
function insertCommand($table_name, $data) {
|
44 |
+
global $wpdb;
|
45 |
+
$wpdb->insert($table_name, $data);
|
46 |
+
return $wpdb->insert_id;
|
47 |
+
}
|
48 |
+
|
49 |
+
/*
|
50 |
+
Function Name: updateCommand
|
51 |
+
Parameters: Yes($table_name,$data,$where)
|
52 |
+
Description: This function is used for Update data in database.
|
53 |
+
Created On: 15-06-2016 10:43
|
54 |
+
Created By: Tech Banker Team
|
55 |
+
*/
|
56 |
+
|
57 |
+
function updateCommand($table_name, $data, $where) {
|
58 |
+
global $wpdb;
|
59 |
+
$wpdb->update($table_name, $data, $where);
|
60 |
+
}
|
61 |
+
|
62 |
+
/*
|
63 |
+
Function Name: deleteCommand
|
64 |
+
Parameters: Yes($table_name,$where)
|
65 |
+
Description: This function is used for delete data from database.
|
66 |
+
Created On: 15-06-2016 10:43
|
67 |
+
Created By: Tech Banker Team
|
68 |
+
*/
|
69 |
+
|
70 |
+
function deleteCommand($table_name, $where) {
|
71 |
+
global $wpdb;
|
72 |
+
$wpdb->delete($table_name, $where);
|
73 |
+
}
|
74 |
+
|
75 |
+
/*
|
76 |
+
Function Name: file_reader
|
77 |
+
Parameters: Yes($filepath)
|
78 |
+
Description: This function is used to read file contents
|
79 |
+
Created On: 18-01-2017 11:24
|
80 |
+
Created By: Tech Banker Team
|
81 |
+
*/
|
82 |
+
|
83 |
+
public static function file_reader($filepath) {
|
84 |
+
$reader = "";
|
85 |
+
if (file_exists($filepath)) {
|
86 |
+
$reader = file_get_contents($filepath);
|
87 |
+
}
|
88 |
+
return $reader;
|
89 |
+
}
|
90 |
+
|
91 |
+
/*
|
92 |
+
Function Name: bulk_deleteCommand
|
93 |
+
Parameters: Yes($table_name,$data,$where)
|
94 |
+
Decription: This function is being used to delete multiple data from database.
|
95 |
+
Created On: 15-06-2016 10:43
|
96 |
+
Created By: Tech Banker Team
|
97 |
+
*/
|
98 |
+
|
99 |
+
function bulk_deleteCommand($table_name, $where, $data) {
|
100 |
+
global $wpdb;
|
101 |
+
$wpdb->query
|
102 |
+
(
|
103 |
+
"DELETE FROM $table_name WHERE $where IN ($data)"
|
104 |
+
);
|
105 |
+
}
|
106 |
|
107 |
}
|
108 |
|
116 |
|
117 |
class mail_bank_discover_host {
|
118 |
|
119 |
+
public $domain;
|
120 |
+
public $email_domains = array(
|
121 |
+
"1and1.com" => "smtp.1and1.com",
|
122 |
+
"airmail.net" => "smtp.airmail.net",
|
123 |
+
"aol.com" => "smtp.aol.com",
|
124 |
+
"Bluewin.ch" => "Smtpauths.bluewin.ch",
|
125 |
+
"Comcast.net" => "Smtp.comcast.net",
|
126 |
+
"Earthlink.net" => "Smtpauth.earthlink.net",
|
127 |
+
"gmail.com" => "smtp.gmail.com",
|
128 |
+
"Gmx.com" => "mail.gmx.com",
|
129 |
+
"Gmx.net" => "mail.gmx.com",
|
130 |
+
"Gmx.us" => "mail.gmx.com",
|
131 |
+
"hotmail.com" => "smtp.live.com",
|
132 |
+
"outlook.com" => "smtp.live.com",
|
133 |
+
"icloud.com" => "smtp.mail.me.com",
|
134 |
+
"mail.com" => "smtp.mail.com",
|
135 |
+
"ntlworld.com" => "smtp.ntlworld.com",
|
136 |
+
"rocketmail.com" => "smtp.mail.yahoo.com",
|
137 |
+
"rogers.com" => "smtp.broadband.rogers.com",
|
138 |
+
"yahoo.ca" => "smtp.mail.yahoo.ca",
|
139 |
+
"yahoo.co.id" => "smtp.mail.yahoo.co.id",
|
140 |
+
"yahoo.co.in" => "smtp.mail.yahoo.co.in",
|
141 |
+
"yahoo.co.kr" => "smtp.mail.yahoo.com",
|
142 |
+
"yahoo.com" => "smtp.mail.yahoo.com",
|
143 |
+
"yahoo.com.ar" => "smtp.mail.yahoo.com.ar",
|
144 |
+
"yahoo.com.au" => "smtp.mail.yahoo.com.au",
|
145 |
+
"yahoo.com.br" => "smtp.mail.yahoo.com.br",
|
146 |
+
"yahoo.com.cn" => "smtp.mail.yahoo.com.cn",
|
147 |
+
"yahoo.com.hk" => "smtp.mail.yahoo.com.hk",
|
148 |
+
"yahoo.com.mx" => "smtp.mail.yahoo.com",
|
149 |
+
"yahoo.com.my" => "smtp.mail.yahoo.com.my",
|
150 |
+
"yahoo.com.ph" => "smtp.mail.yahoo.com.ph",
|
151 |
+
"yahoo.com.sg" => "smtp.mail.yahoo.com.sg",
|
152 |
+
"yahoo.com.tw" => "smtp.mail.yahoo.com.tw",
|
153 |
+
"yahoo.com.vn" => "smtp.mail.yahoo.com.vn",
|
154 |
+
"yahoo.co.nz" => "smtp.mail.yahoo.com.au",
|
155 |
+
"yahoo.co.th" => "smtp.mail.yahoo.co.th",
|
156 |
+
"yahoo.co.uk" => "smtp.mail.yahoo.co.uk",
|
157 |
+
"ymail.com" => "smtp.mail.yahoo.com",
|
158 |
+
"yahoo.de" => "smtp.mail.yahoo.de",
|
159 |
+
"yahoo.es" => "smtp.correo.yahoo.es",
|
160 |
+
"yahoo.fr" => "smtp.mail.yahoo.fr",
|
161 |
+
"yahoo.ie" => "smtp.mail.yahoo.co.uk",
|
162 |
+
"yahoo.it" => "smtp.mail.yahoo.it",
|
163 |
+
"zoho.com" => "smtp.zoho.com",
|
164 |
+
"ameritech.net" => "outbound.att.net",
|
165 |
+
"att.net" => "outbound.att.net",
|
166 |
+
"bellsouth.net" => "outbound.att.net",
|
167 |
+
"flash.net" => "outbound.att.net",
|
168 |
+
"nvbell.net" => "outbound.att.net",
|
169 |
+
"pacbell.net" => "outbound.att.net",
|
170 |
+
"prodigy.net" => "outbound.att.net",
|
171 |
+
"sbcglobal.net" => "outbound.att.net",
|
172 |
+
"snet.net" => "outbound.att.net",
|
173 |
+
"swbell.net" => "outbound.att.net",
|
174 |
+
"wans.net" => "outbound.att.net"
|
175 |
+
);
|
176 |
+
|
177 |
+
/*
|
178 |
+
Function Name: get_smtp_from_email
|
179 |
+
Parameters: Yes($hostname)
|
180 |
+
Description: This Function is used for getting hostname.
|
181 |
+
Created On: 15-06-2016 10:43
|
182 |
+
Created By: Tech Banker Team
|
183 |
+
*/
|
184 |
+
|
185 |
+
public function get_smtp_from_email($hostname) {
|
186 |
+
reset($this->email_domains);
|
187 |
+
while (list($domain, $smtp) = each($this->email_domains)) {
|
188 |
+
if (strcasecmp($hostname, $domain) == 0) {
|
189 |
+
return $smtp;
|
190 |
+
}
|
191 |
+
}
|
192 |
+
return false;
|
193 |
+
}
|
194 |
|
195 |
}
|
196 |
|
197 |
class plugin_info_wp_mail_bank {
|
198 |
+
/*
|
199 |
+
Function Name: get_plugin_info_wp_mail_bank
|
200 |
+
Parameters: No
|
201 |
+
Decription: This function is used to return the information about plugins.
|
202 |
+
Created On: 21-04-2017 09:48
|
203 |
+
Created By: Tech Banker Team
|
204 |
+
*/
|
205 |
+
|
206 |
+
function get_plugin_info_wp_mail_bank() {
|
207 |
+
$active_plugins = (array) get_option("active_plugins", array());
|
208 |
+
if (is_multisite())
|
209 |
+
$active_plugins = array_merge($active_plugins, get_site_option("active_sitewide_plugins", array()));
|
210 |
+
$plugins = array();
|
211 |
+
if (count($active_plugins) > 0) {
|
212 |
+
$get_plugins = array();
|
213 |
+
foreach ($active_plugins as $plugin) {
|
214 |
+
$plugin_data = @get_plugin_data(WP_PLUGIN_DIR . "/" . $plugin);
|
215 |
+
|
216 |
+
$get_plugins["plugin_name"] = strip_tags($plugin_data["Name"]);
|
217 |
+
$get_plugins["plugin_author"] = strip_tags($plugin_data["Author"]);
|
218 |
+
$get_plugins["plugin_version"] = strip_tags($plugin_data["Version"]);
|
219 |
+
array_push($plugins, $get_plugins);
|
220 |
+
}
|
221 |
+
return $plugins;
|
222 |
+
}
|
223 |
+
}
|
224 |
|
225 |
}
|
226 |
|
lib/install-script.php
CHANGED
@@ -25,42 +25,42 @@ if (!is_user_logged_in()) {
|
|
25 |
*/
|
26 |
|
27 |
class dbHelper_install_script_mail_bank {
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
|
55 |
}
|
56 |
|
57 |
if (file_exists(ABSPATH . "wp-admin/includes/upgrade.php"))
|
58 |
-
|
59 |
|
60 |
$mail_bank_version_number = get_option("mail-bank-version-number");
|
61 |
|
62 |
function mail_bank_table() {
|
63 |
-
|
64 |
(
|
65 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
66 |
`type` varchar(100) NOT NULL,
|
@@ -68,20 +68,20 @@ if (!is_user_logged_in()) {
|
|
68 |
PRIMARY KEY (`id`)
|
69 |
)
|
70 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
71 |
-
|
72 |
|
73 |
-
|
74 |
('email_configuration', 0),
|
75 |
('email_logs', 0),
|
76 |
('settings', 0),
|
77 |
('roles_and_capabilities', 0)";
|
78 |
-
|
79 |
}
|
80 |
|
81 |
function mail_bank_meta_table() {
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
(
|
86 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
87 |
`meta_id` int(11) NOT NULL,
|
@@ -90,293 +90,293 @@ if (!is_user_logged_in()) {
|
|
90 |
PRIMARY KEY (`id`)
|
91 |
)
|
92 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
}
|
184 |
|
185 |
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
186 |
switch ($mail_bank_version_number) {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
WHERE meta_key = %s", "settings"
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
}
|
381 |
update_option("mail-bank-version-number", "3.0.0");
|
382 |
}
|
25 |
*/
|
26 |
|
27 |
class dbHelper_install_script_mail_bank {
|
28 |
+
/*
|
29 |
+
Function Name: insertCommand
|
30 |
+
Parameters: Yes($table_name,$data)
|
31 |
+
Description: This Function is used to Insert data in database.
|
32 |
+
Created On: 05-02-2016 11:40
|
33 |
+
Created By: Tech Banker Team
|
34 |
+
*/
|
35 |
+
|
36 |
+
function insertCommand($table_name, $data) {
|
37 |
+
global $wpdb;
|
38 |
+
$wpdb->insert($table_name, $data);
|
39 |
+
return $wpdb->insert_id;
|
40 |
+
}
|
41 |
+
|
42 |
+
/*
|
43 |
+
Function Name: updateCommand
|
44 |
+
Parameters: Yes($table_name,$data,$where)
|
45 |
+
Description: This function is used to Update data.
|
46 |
+
Created On: 05-02-2016 11:40
|
47 |
+
Created By: Tech Banker Team
|
48 |
+
*/
|
49 |
+
|
50 |
+
function updateCommand($table_name, $data, $where) {
|
51 |
+
global $wpdb;
|
52 |
+
$wpdb->update($table_name, $data, $where);
|
53 |
+
}
|
54 |
|
55 |
}
|
56 |
|
57 |
if (file_exists(ABSPATH . "wp-admin/includes/upgrade.php"))
|
58 |
+
require_once ABSPATH . "wp-admin/includes/upgrade.php";
|
59 |
|
60 |
$mail_bank_version_number = get_option("mail-bank-version-number");
|
61 |
|
62 |
function mail_bank_table() {
|
63 |
+
$sql = "CREATE TABLE IF NOT EXISTS " . mail_bank() . "
|
64 |
(
|
65 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
66 |
`type` varchar(100) NOT NULL,
|
68 |
PRIMARY KEY (`id`)
|
69 |
)
|
70 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
71 |
+
dbDelta($sql);
|
72 |
|
73 |
+
$data = "INSERT INTO " . mail_bank() . " (`type`, `parent_id`) VALUES
|
74 |
('email_configuration', 0),
|
75 |
('email_logs', 0),
|
76 |
('settings', 0),
|
77 |
('roles_and_capabilities', 0)";
|
78 |
+
dbDelta($data);
|
79 |
}
|
80 |
|
81 |
function mail_bank_meta_table() {
|
82 |
+
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
83 |
+
global $wpdb;
|
84 |
+
$sql = "CREATE TABLE IF NOT EXISTS " . mail_bank_meta() . "
|
85 |
(
|
86 |
`id` int(11) NOT NULL AUTO_INCREMENT,
|
87 |
`meta_id` int(11) NOT NULL,
|
90 |
PRIMARY KEY (`id`)
|
91 |
)
|
92 |
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
|
93 |
+
dbDelta($sql);
|
94 |
+
|
95 |
+
$admin_email = get_option("admin_email");
|
96 |
+
$admin_name = get_option("blogname");
|
97 |
+
|
98 |
+
$mail_bank_table_data = $wpdb->get_results
|
99 |
+
(
|
100 |
+
"SELECT * FROM " . mail_bank()
|
101 |
+
);
|
102 |
+
|
103 |
+
foreach ($mail_bank_table_data as $row) {
|
104 |
+
switch ($row->type) {
|
105 |
+
case "email_configuration":
|
106 |
+
$email_configuration_array = array();
|
107 |
+
$email_configuration_array["email_address"] = $admin_email;
|
108 |
+
$email_configuration_array["reply_to"] = "";
|
109 |
+
$email_configuration_array["cc"] = "";
|
110 |
+
$email_configuration_array["bcc"] = "";
|
111 |
+
$email_configuration_array["mailer_type"] = "smtp";
|
112 |
+
$email_configuration_array["sender_name"] = $admin_name;
|
113 |
+
$email_configuration_array["sender_name_configuration"] = "override";
|
114 |
+
$email_configuration_array["hostname"] = "";
|
115 |
+
$email_configuration_array["port"] = "587";
|
116 |
+
$email_configuration_array["client_id"] = "";
|
117 |
+
$email_configuration_array["client_secret"] = "";
|
118 |
+
$email_configuration_array["redirect_uri"] = "";
|
119 |
+
$email_configuration_array["sender_email"] = $admin_email;
|
120 |
+
$email_configuration_array["from_email_configuration"] = "override";
|
121 |
+
$email_configuration_array["auth_type"] = "none";
|
122 |
+
$email_configuration_array["username"] = $admin_email;
|
123 |
+
$email_configuration_array["password"] = "";
|
124 |
+
$email_configuration_array["enc_type"] = "tls";
|
125 |
+
|
126 |
+
$email_configuration_array_data = array();
|
127 |
+
$email_configuration_array_data["meta_id"] = $row->id;
|
128 |
+
$email_configuration_array_data["meta_key"] = "email_configuration";
|
129 |
+
$email_configuration_array_data["meta_value"] = serialize($email_configuration_array);
|
130 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $email_configuration_array_data);
|
131 |
+
break;
|
132 |
+
|
133 |
+
case "settings":
|
134 |
+
$settings_data_array = array();
|
135 |
+
$settings_data_array["debug_mode"] = "enable";
|
136 |
+
$settings_data_array["remove_tables_at_uninstall"] = "enable";
|
137 |
+
$settings_data_array["monitor_email_logs"] = "enable";
|
138 |
+
|
139 |
+
$settings_array = array();
|
140 |
+
$settings_array["meta_id"] = $row->id;
|
141 |
+
$settings_array["meta_key"] = "settings";
|
142 |
+
$settings_array["meta_value"] = serialize($settings_data_array);
|
143 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $settings_array);
|
144 |
+
break;
|
145 |
+
|
146 |
+
case "roles_and_capabilities":
|
147 |
+
$roles_capabilities_data_array = array();
|
148 |
+
$roles_capabilities_data_array["roles_and_capabilities"] = "1,1,1,0,0,0";
|
149 |
+
$roles_capabilities_data_array["show_mail_bank_top_bar_menu"] = "enable";
|
150 |
+
$roles_capabilities_data_array["others_full_control_capability"] = "0";
|
151 |
+
$roles_capabilities_data_array["administrator_privileges"] = "1,1,1,1,1,1,1,1,1,1";
|
152 |
+
$roles_capabilities_data_array["author_privileges"] = "0,0,1,0,0,0,0,0,0,0";
|
153 |
+
$roles_capabilities_data_array["editor_privileges"] = "0,0,1,0,0,0,1,0,0,0";
|
154 |
+
$roles_capabilities_data_array["contributor_privileges"] = "0,0,0,0,0,0,1,0,0,0";
|
155 |
+
$roles_capabilities_data_array["subscriber_privileges"] = "0,0,0,0,0,0,0,0,0,0";
|
156 |
+
$roles_capabilities_data_array["other_roles_privileges"] = "0,0,0,0,0,0,0,0,0,0";
|
157 |
+
$user_capabilities = get_others_capabilities_mail_bank();
|
158 |
+
$other_roles_array = array();
|
159 |
+
$other_roles_access_array = array(
|
160 |
+
"manage_options",
|
161 |
+
"edit_plugins",
|
162 |
+
"edit_posts",
|
163 |
+
"publish_posts",
|
164 |
+
"publish_pages",
|
165 |
+
"edit_pages",
|
166 |
+
"read"
|
167 |
+
);
|
168 |
+
foreach ($other_roles_access_array as $role) {
|
169 |
+
if (in_array($role, $user_capabilities)) {
|
170 |
+
array_push($other_roles_array, $role);
|
171 |
+
}
|
172 |
+
}
|
173 |
+
$roles_capabilities_data_array["capabilities"] = $other_roles_array;
|
174 |
+
|
175 |
+
$roles_data_array = array();
|
176 |
+
$roles_data_array["meta_id"] = $row->id;
|
177 |
+
$roles_data_array["meta_key"] = "roles_and_capabilities";
|
178 |
+
$roles_data_array["meta_value"] = serialize($roles_capabilities_data_array);
|
179 |
+
$obj_dbHelper_install_script_mail_bank->insertCommand(mail_bank_meta(), $roles_data_array);
|
180 |
+
break;
|
181 |
+
}
|
182 |
+
}
|
183 |
}
|
184 |
|
185 |
$obj_dbHelper_install_script_mail_bank = new dbHelper_install_script_mail_bank();
|
186 |
switch ($mail_bank_version_number) {
|
187 |
+
case "":
|
188 |
+
if (count($wpdb->get_var("SHOW TABLES LIKE '" . $wpdb->prefix . "mail_bank'")) != 0) {
|
189 |
+
$mail_bank_data = $wpdb->get_row
|
190 |
+
(
|
191 |
+
"SELECT * FROM " . $wpdb->prefix . "mail_bank"
|
192 |
+
);
|
193 |
+
|
194 |
+
$wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . "mail_bank");
|
195 |
+
mail_bank_table();
|
196 |
+
mail_bank_meta_table();
|
197 |
+
|
198 |
+
$get_from_name = get_option("show_from_name_in_email");
|
199 |
+
$get_from_email = get_option("show_from_email_in_email");
|
200 |
+
|
201 |
+
if (count($mail_bank_data) > 0) {
|
202 |
+
$update_mail_bank_data = array();
|
203 |
+
$update_mail_bank_data["email_address"] = get_option("admin_email");
|
204 |
+
$update_mail_bank_data["reply_to"] = "";
|
205 |
+
$update_mail_bank_data["cc"] = "";
|
206 |
+
$update_mail_bank_data["bcc"] = "";
|
207 |
+
$update_mail_bank_data["mailer_type"] = isset($mail_bank_data->mailer_type) && $mail_bank_data->mailer_type == 1 ? "php_mail_function" : "smtp";
|
208 |
+
$update_mail_bank_data["sender_name_configuration"] = isset($get_from_name) && $get_from_name == 1 ? "override" : "dont_override";
|
209 |
+
$update_mail_bank_data["sender_name"] = isset($mail_bank_data->from_name) ? esc_html($mail_bank_data->from_name) : esc_html(get_option("blogname"));
|
210 |
+
$update_mail_bank_data["from_email_configuration"] = isset($get_from_email) && $get_from_email == 1 ? "override" : "dont_override";
|
211 |
+
$update_mail_bank_data["sender_email"] = isset($mail_bank_data->from_email) ? esc_attr($mail_bank_data->from_email) : get_option("admin_email");
|
212 |
+
$update_mail_bank_data["hostname"] = isset($mail_bank_data->smtp_host) ? esc_attr($mail_bank_data->smtp_host) : "";
|
213 |
+
$update_mail_bank_data["port"] = isset($mail_bank_data->smtp_port) ? intval($mail_bank_data->smtp_port) : 0;
|
214 |
+
$update_mail_bank_data["enc_type"] = isset($mail_bank_data->encryption) && (($mail_bank_data->encryption) == 0) ? "none" : ((($mail_bank_data->encryption) == 1) ? "ssl" : "tls");
|
215 |
+
$update_mail_bank_data["auth_type"] = "login";
|
216 |
+
$update_mail_bank_data["client_id"] = "";
|
217 |
+
$update_mail_bank_data["client_secret"] = "";
|
218 |
+
$update_mail_bank_data["redirect_uri"] = "";
|
219 |
+
$update_mail_bank_data["username"] = isset($mail_bank_data->smtp_username) ? esc_attr($mail_bank_data->smtp_username) : "";
|
220 |
+
$update_mail_bank_data["password"] = isset($mail_bank_data->smtp_password) ? base64_encode($mail_bank_data->smtp_password) : "";
|
221 |
+
$update_mail_bank_data["automatic_mail"] = "1";
|
222 |
+
|
223 |
+
$update_mail_bank_data_serialize = array();
|
224 |
+
$where = array();
|
225 |
+
$where["meta_id"] = $mail_bank_data->id;
|
226 |
+
$where["meta_key"] = "email_configuration";
|
227 |
+
$update_mail_bank_data_serialize["meta_value"] = serialize($update_mail_bank_data);
|
228 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $update_mail_bank_data_serialize, $where);
|
229 |
+
}
|
230 |
+
$plugin_settings_data = $wpdb->get_var
|
231 |
+
(
|
232 |
+
$wpdb->prepare
|
233 |
+
(
|
234 |
+
"SELECT meta_value FROM " . mail_bank_meta() . "
|
235 |
WHERE meta_key = %s", "settings"
|
236 |
+
)
|
237 |
+
);
|
238 |
+
$plugin_settings_data_unserialize = maybe_unserialize($plugin_settings_data);
|
239 |
+
|
240 |
+
$update_plugin_data = array();
|
241 |
+
$update_plugin_data["debug_mode"] = isset($plugin_settings_data_unserialize["debug_mode"]) ? esc_attr($plugin_settings_data_unserialize["debug_mode"]) : "enable";
|
242 |
+
$update_plugin_data["remove_tables_at_uninstall"] = isset($plugin_settings_data_unserialize["remove_tables_at_uninstall"]) ? esc_attr($plugin_settings_data_unserialize["remove_tables_at_uninstall"]) : "disable";
|
243 |
+
$update_plugin_data["monitor_email_logs"] = isset($plugin_settings_data_unserialize["monitor_email_logs"]) ? esc_attr($plugin_settings_data_unserialize["monitor_email_logs"]) : "enable";
|
244 |
+
|
245 |
+
$update_plugin_settings_data_serialize = array();
|
246 |
+
$where = array();
|
247 |
+
$where["meta_key"] = "settings";
|
248 |
+
$update_plugin_settings_data_serialize["meta_value"] = serialize($update_plugin_data);
|
249 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $update_plugin_settings_data_serialize, $where);
|
250 |
+
} else {
|
251 |
+
mail_bank_table();
|
252 |
+
mail_bank_meta_table();
|
253 |
+
}
|
254 |
+
break;
|
255 |
+
|
256 |
+
default:
|
257 |
+
if (count($wpdb->get_var("SHOW TABLES LIKE '" . mail_bank() . "'")) != 0 && count($wpdb->get_var("SHOW TABLES LIKE '" . mail_bank_meta() . "'")) != 0) {
|
258 |
+
$settings_data = $wpdb->get_var
|
259 |
+
(
|
260 |
+
$wpdb->prepare
|
261 |
+
(
|
262 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
263 |
+
" WHERE meta_key=%s", "settings"
|
264 |
+
)
|
265 |
+
);
|
266 |
+
|
267 |
+
$settings_data_array = maybe_unserialize($settings_data);
|
268 |
+
if (!array_key_exists("monitor_email_logs", $settings_data_array)) {
|
269 |
+
$settings_data_array["monitor_email_logs"] = "enable";
|
270 |
+
}
|
271 |
+
$where = array();
|
272 |
+
$settings_array = array();
|
273 |
+
$where["meta_key"] = "settings";
|
274 |
+
$settings_array["meta_value"] = serialize($settings_data_array);
|
275 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $settings_array, $where);
|
276 |
+
|
277 |
+
$get_roles_settings_data = $wpdb->get_var
|
278 |
+
(
|
279 |
+
$wpdb->prepare
|
280 |
+
(
|
281 |
+
"SELECT meta_value FROM " . mail_bank_meta() .
|
282 |
+
" WHERE meta_key=%s", "roles_and_capabilities"
|
283 |
+
)
|
284 |
+
);
|
285 |
+
|
286 |
+
$get_roles_settings_data_array = maybe_unserialize($get_roles_settings_data);
|
287 |
+
|
288 |
+
if (array_key_exists("roles_and_capabilities", $get_roles_settings_data_array)) {
|
289 |
+
$roles_and_capabilities_data = isset($get_roles_settings_data_array["roles_and_capabilities"]) ? explode(",", $get_roles_settings_data_array["roles_and_capabilities"]) : "1,1,1,0,0,0";
|
290 |
+
$administrator_privileges_data = isset($get_roles_settings_data_array["administrator_privileges"]) ? explode(",", $get_roles_settings_data_array["administrator_privileges"]) : "1,1,1,1,1,1,1,1,1,1";
|
291 |
+
$author_privileges_data = isset($get_roles_settings_data_array["author_privileges"]) ? explode(",", $get_roles_settings_data_array["author_privileges"]) : "0,0,1,0,0,0,0,0,0,0";
|
292 |
+
$editor_privileges_data = isset($get_roles_settings_data_array["editor_privileges"]) ? explode(",", $get_roles_settings_data_array["editor_privileges"]) : "0,0,1,0,0,0,1,0,0,0";
|
293 |
+
$contributor_privileges_data = isset($get_roles_settings_data_array["contributor_privileges"]) ? explode(",", $get_roles_settings_data_array["contributor_privileges"]) : "0,0,0,0,0,0,1,0,0,0";
|
294 |
+
$subscriber_privileges_data = isset($get_roles_settings_data_array["subscriber_privileges"]) ? explode(",", $get_roles_settings_data_array["subscriber_privileges"]) : "0,0,0,0,0,0,0,0,0,0";
|
295 |
+
$other_privileges_data = isset($get_roles_settings_data_array["other_roles_privileges"]) ? explode(",", $get_roles_settings_data_array["other_roles_privileges"]) : "0,0,0,0,0,0,0,0,0,0";
|
296 |
+
|
297 |
+
if (count($roles_and_capabilities_data) == 5) {
|
298 |
+
array_push($roles_and_capabilities_data, 0);
|
299 |
+
}
|
300 |
+
|
301 |
+
if (count($administrator_privileges_data) == 8) {
|
302 |
+
array_splice($administrator_privileges_data, 3, 0, 1);
|
303 |
+
array_splice($administrator_privileges_data, 8, 0, 1);
|
304 |
+
} elseif (count($administrator_privileges_data) == 9) {
|
305 |
+
array_splice($administrator_privileges_data, 3, 0, 1);
|
306 |
+
}
|
307 |
+
|
308 |
+
if (count($author_privileges_data) == 8) {
|
309 |
+
array_splice($author_privileges_data, 3, 0, 0);
|
310 |
+
array_splice($author_privileges_data, 8, 0, 0);
|
311 |
+
} elseif (count($author_privileges_data) == 9) {
|
312 |
+
array_splice($author_privileges_data, 3, 0, 0);
|
313 |
+
}
|
314 |
+
|
315 |
+
if (count($editor_privileges_data) == 8) {
|
316 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
317 |
+
array_splice($editor_privileges_data, 8, 0, 0);
|
318 |
+
} elseif (count($editor_privileges_data) == 9) {
|
319 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
320 |
+
}
|
321 |
+
|
322 |
+
if (count($contributor_privileges_data) == 8) {
|
323 |
+
array_splice($contributor_privileges_data, 3, 0, 0);
|
324 |
+
array_splice($contributor_privileges_data, 8, 0, 0);
|
325 |
+
} elseif (count($contributor_privileges_data) == 9) {
|
326 |
+
array_splice($editor_privileges_data, 3, 0, 0);
|
327 |
+
}
|
328 |
+
|
329 |
+
if (count($subscriber_privileges_data) == 8) {
|
330 |
+
array_splice($subscriber_privileges_data, 3, 0, 0);
|
331 |
+
array_splice($subscriber_privileges_data, 8, 0, 0);
|
332 |
+
} elseif (count($subscriber_privileges_data) == 9) {
|
333 |
+
array_splice($subscriber_privileges_data, 3, 0, 0);
|
334 |
+
}
|
335 |
+
|
336 |
+
if (count($other_privileges_data) == 8) {
|
337 |
+
array_splice($other_privileges_data, 3, 0, 0);
|
338 |
+
array_splice($other_privileges_data, 8, 0, 0);
|
339 |
+
} elseif (count($other_privileges_data) == 9) {
|
340 |
+
array_splice($other_privileges_data, 3, 0, 0);
|
341 |
+
}
|
342 |
+
|
343 |
+
if (!array_key_exists("others_full_control_capability", $get_roles_settings_data_array)) {
|
344 |
+
$get_roles_settings_data_array["others_full_control_capability"] = "0";
|
345 |
+
}
|
346 |
+
|
347 |
+
if (!array_key_exists("capabilities", $get_roles_settings_data_array)) {
|
348 |
+
$user_capabilities = get_others_capabilities_mail_bank();
|
349 |
+
$other_roles_array = array();
|
350 |
+
$other_roles_access_array = array(
|
351 |
+
"manage_options",
|
352 |
+
"edit_plugins",
|
353 |
+
"edit_posts",
|
354 |
+
"publish_posts",
|
355 |
+
"publish_pages",
|
356 |
+
"edit_pages",
|
357 |
+
"read"
|
358 |
+
);
|
359 |
+
foreach ($other_roles_access_array as $role) {
|
360 |
+
if (in_array($role, $user_capabilities)) {
|
361 |
+
array_push($other_roles_array, $role);
|
362 |
+
}
|
363 |
+
}
|
364 |
+
$get_roles_settings_data_array["capabilities"] = $other_roles_array;
|
365 |
+
}
|
366 |
+
$get_roles_settings_data_array["roles_and_capabilities"] = implode(",", $roles_and_capabilities_data);
|
367 |
+
$get_roles_settings_data_array["administrator_privileges"] = implode(",", $administrator_privileges_data);
|
368 |
+
$get_roles_settings_data_array["author_privileges"] = implode(",", $author_privileges_data);
|
369 |
+
$get_roles_settings_data_array["editor_privileges"] = implode(",", $editor_privileges_data);
|
370 |
+
$get_roles_settings_data_array["contributor_privileges"] = implode(",", $contributor_privileges_data);
|
371 |
+
$get_roles_settings_data_array["subscriber_privileges"] = implode(",", $subscriber_privileges_data);
|
372 |
+
$get_roles_settings_data_array["other_roles_privileges"] = implode(",", $other_privileges_data);
|
373 |
+
$where = array();
|
374 |
+
$roles_capabilities_array = array();
|
375 |
+
$where["meta_key"] = "roles_and_capabilities";
|
376 |
+
$roles_capabilities_array["meta_value"] = serialize($get_roles_settings_data_array);
|
377 |
+
$obj_dbHelper_install_script_mail_bank->updateCommand(mail_bank_meta(), $roles_capabilities_array, $where);
|
378 |
+
}
|
379 |
+
}
|
380 |
}
|
381 |
update_option("mail-bank-version-number", "3.0.0");
|
382 |
}
|
lib/sidebar-menu.php
CHANGED
@@ -16,8 +16,8 @@ if (!is_user_logged_in()) {
|
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
-
|
20 |
-
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
@@ -26,99 +26,99 @@ if (!is_user_logged_in()) {
|
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
-
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
-
|
42 |
} else {
|
43 |
-
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
}
|
76 |
|
77 |
foreach ($roles_and_capabilities_unserialized_data as $key => $value) {
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
}
|
83 |
|
84 |
$full_control = explode(",", $privileges_value);
|
85 |
if (!defined("full_control"))
|
86 |
-
|
87 |
if (!defined("email_configuration_mail_bank"))
|
88 |
-
|
89 |
if (!defined("test_email_mail_bank"))
|
90 |
-
|
91 |
if (!defined("conectivity_test_email_mail_bank"))
|
92 |
-
|
93 |
if (!defined("email_logs_mail_bank"))
|
94 |
-
|
95 |
if (!defined("settings_mail_bank"))
|
96 |
-
|
97 |
if (!defined("roles_and_capabilities_mail_bank"))
|
98 |
-
|
99 |
if (!defined("system_information_mail_bank"))
|
100 |
-
|
101 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
102 |
if ($flag == "1") {
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
}
|
123 |
|
124 |
|
@@ -131,17 +131,17 @@ if (!is_user_logged_in()) {
|
|
131 |
*/
|
132 |
|
133 |
function wp_mail_bank_wizard() {
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
}
|
146 |
|
147 |
/*
|
@@ -153,26 +153,26 @@ if (!is_user_logged_in()) {
|
|
153 |
*/
|
154 |
|
155 |
function mb_email_configuration() {
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
}
|
177 |
|
178 |
/*
|
@@ -184,26 +184,26 @@ if (!is_user_logged_in()) {
|
|
184 |
*/
|
185 |
|
186 |
function mb_test_email() {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
}
|
208 |
|
209 |
/*
|
@@ -215,26 +215,26 @@ if (!is_user_logged_in()) {
|
|
215 |
*/
|
216 |
|
217 |
function mb_connectivity_test() {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
}
|
239 |
|
240 |
/*
|
@@ -246,26 +246,26 @@ if (!is_user_logged_in()) {
|
|
246 |
*/
|
247 |
|
248 |
function mb_email_logs() {
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
}
|
270 |
|
271 |
/*
|
@@ -277,26 +277,26 @@ if (!is_user_logged_in()) {
|
|
277 |
*/
|
278 |
|
279 |
function mb_settings() {
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
}
|
301 |
|
302 |
/*
|
@@ -308,26 +308,26 @@ if (!is_user_logged_in()) {
|
|
308 |
*/
|
309 |
|
310 |
function mb_roles_and_capabilities() {
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
}
|
332 |
|
333 |
/*
|
@@ -339,26 +339,26 @@ if (!is_user_logged_in()) {
|
|
339 |
*/
|
340 |
|
341 |
function mb_feedbacks() {
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
}
|
363 |
|
364 |
/*
|
@@ -370,26 +370,26 @@ if (!is_user_logged_in()) {
|
|
370 |
*/
|
371 |
|
372 |
function mb_system_information() {
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
}
|
394 |
|
395 |
/*
|
@@ -401,26 +401,26 @@ if (!is_user_logged_in()) {
|
|
401 |
*/
|
402 |
|
403 |
function mb_upgrade() {
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
}
|
425 |
|
426 |
}
|
16 |
$access_granted = false;
|
17 |
foreach ($user_role_permission as $permission) {
|
18 |
if (current_user_can($permission)) {
|
19 |
+
$access_granted = true;
|
20 |
+
break;
|
21 |
}
|
22 |
}
|
23 |
if (!$access_granted) {
|
26 |
$flag = 0;
|
27 |
|
28 |
$role_capabilities = $wpdb->get_var
|
29 |
+
(
|
30 |
+
$wpdb->prepare
|
31 |
+
(
|
32 |
+
"SELECT meta_value from " . mail_bank_meta() . "
|
33 |
WHERE meta_key = %s", "roles_and_capabilities"
|
34 |
+
)
|
35 |
);
|
36 |
|
37 |
$roles_and_capabilities_unserialized_data = maybe_unserialize($role_capabilities);
|
38 |
$capabilities = explode(",", isset($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) ? esc_attr($roles_and_capabilities_unserialized_data["roles_and_capabilities"]) : "");
|
39 |
|
40 |
if (is_super_admin()) {
|
41 |
+
$mb_role = "administrator";
|
42 |
} else {
|
43 |
+
$mb_role = check_user_roles_mail_bank();
|
44 |
}
|
45 |
switch ($mb_role) {
|
46 |
+
case "administrator":
|
47 |
+
$privileges = "administrator_privileges";
|
48 |
+
$flag = $capabilities[0];
|
49 |
+
break;
|
50 |
+
|
51 |
+
case "author":
|
52 |
+
$privileges = "author_privileges";
|
53 |
+
$flag = $capabilities[1];
|
54 |
+
break;
|
55 |
+
|
56 |
+
case "editor":
|
57 |
+
$privileges = "editor_privileges";
|
58 |
+
$flag = $capabilities[2];
|
59 |
+
break;
|
60 |
+
|
61 |
+
case "contributor":
|
62 |
+
$privileges = "contributor_privileges";
|
63 |
+
$flag = $capabilities[3];
|
64 |
+
break;
|
65 |
+
|
66 |
+
case "subscriber":
|
67 |
+
$privileges = "subscriber_privileges";
|
68 |
+
$flag = $capabilities[4];
|
69 |
+
break;
|
70 |
+
|
71 |
+
default:
|
72 |
+
$privileges = "other_roles_privileges";
|
73 |
+
$flag = $capabilities[5];
|
74 |
+
break;
|
75 |
}
|
76 |
|
77 |
foreach ($roles_and_capabilities_unserialized_data as $key => $value) {
|
78 |
+
if ($privileges == $key) {
|
79 |
+
$privileges_value = $value;
|
80 |
+
break;
|
81 |
+
}
|
82 |
}
|
83 |
|
84 |
$full_control = explode(",", $privileges_value);
|
85 |
if (!defined("full_control"))
|
86 |
+
define("full_control", "$full_control[0]");
|
87 |
if (!defined("email_configuration_mail_bank"))
|
88 |
+
define("email_configuration_mail_bank", "$full_control[1]");
|
89 |
if (!defined("test_email_mail_bank"))
|
90 |
+
define("test_email_mail_bank", "$full_control[2]");
|
91 |
if (!defined("conectivity_test_email_mail_bank"))
|
92 |
+
define("conectivity_test_email_mail_bank", "$full_control[3]");
|
93 |
if (!defined("email_logs_mail_bank"))
|
94 |
+
define("email_logs_mail_bank", "$full_control[4]");
|
95 |
if (!defined("settings_mail_bank"))
|
96 |
+
define("settings_mail_bank", "$full_control[5]");
|
97 |
if (!defined("roles_and_capabilities_mail_bank"))
|
98 |
+
define("roles_and_capabilities_mail_bank", "$full_control[6]");
|
99 |
if (!defined("system_information_mail_bank"))
|
100 |
+
define("system_information_mail_bank", "$full_control[7]");
|
101 |
$check_wp_mail_bank_wizard = get_option("wp-mail-bank-wizard-set-up");
|
102 |
if ($flag == "1") {
|
103 |
+
global $wp_version;
|
104 |
+
|
105 |
+
$icon = plugins_url("assets/global/img/icon.png", dirname(__FILE__));
|
106 |
+
if ($check_wp_mail_bank_wizard) {
|
107 |
+
add_menu_page($wp_mail_bank, $wp_mail_bank, "read", "mb_email_configuration", "", $icon);
|
108 |
+
} else {
|
109 |
+
add_menu_page($wp_mail_bank, $wp_mail_bank, "read", "wp_mail_bank_wizard", "", plugins_url("assets/global/img/icon.png", dirname(__FILE__)));
|
110 |
+
add_submenu_page($wp_mail_bank, $wp_mail_bank, "", "read", "wp_mail_bank_wizard", "wp_mail_bank_wizard");
|
111 |
+
}
|
112 |
+
|
113 |
+
add_submenu_page("mb_email_configuration", $mb_email_configuration, $mb_email_configuration, "read", "mb_email_configuration", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_email_configuration");
|
114 |
+
add_submenu_page("mb_email_configuration", $mb_test_email, $mb_test_email, "read", "mb_test_email", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_test_email");
|
115 |
+
add_submenu_page("mb_email_configuration", $mb_connectivity_test, $mb_connectivity_test, "read", "mb_connectivity_test", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_connectivity_test");
|
116 |
+
add_submenu_page("mb_email_configuration", $mb_email_logs, $mb_email_logs, "read", "mb_email_logs", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_email_logs");
|
117 |
+
add_submenu_page("mb_email_configuration", $mb_settings, $mb_settings, "read", "mb_settings", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_settings");
|
118 |
+
add_submenu_page("mb_email_configuration", $mb_roles_and_capabilities, $mb_roles_and_capabilities, "read", "mb_roles_and_capabilities", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_roles_and_capabilities");
|
119 |
+
add_submenu_page("mb_email_configuration", $mb_feedbacks, $mb_feedbacks, "read", "mb_feedbacks", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_feedbacks");
|
120 |
+
add_submenu_page("mb_email_configuration", $mb_system_information, $mb_system_information, "read", "mb_system_information", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_system_information");
|
121 |
+
add_submenu_page("mb_email_configuration", $mb_upgrade, $mb_upgrade, "read", "mb_upgrade", $check_wp_mail_bank_wizard == "" ? "wp_mail_bank_wizard" : "mb_upgrade");
|
122 |
}
|
123 |
|
124 |
|
131 |
*/
|
132 |
|
133 |
function wp_mail_bank_wizard() {
|
134 |
+
global $wpdb;
|
135 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
136 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
137 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
138 |
+
}
|
139 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/wizard/wizard.php")) {
|
140 |
+
include_once MAIL_BANK_DIR_PATH . "views/wizard/wizard.php";
|
141 |
+
}
|
142 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
143 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
144 |
+
}
|
145 |
}
|
146 |
|
147 |
/*
|
153 |
*/
|
154 |
|
155 |
function mb_email_configuration() {
|
156 |
+
global $wpdb;
|
157 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
158 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
159 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
160 |
+
}
|
161 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
162 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
163 |
+
}
|
164 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
165 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
166 |
+
}
|
167 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
168 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
169 |
+
}
|
170 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/email-setup/email-setup.php")) {
|
171 |
+
include_once MAIL_BANK_DIR_PATH . "views/email-setup/email-setup.php";
|
172 |
+
}
|
173 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
174 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
175 |
+
}
|
176 |
}
|
177 |
|
178 |
/*
|
184 |
*/
|
185 |
|
186 |
function mb_test_email() {
|
187 |
+
global $wpdb;
|
188 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
189 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
190 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
191 |
+
}
|
192 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
193 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
194 |
+
}
|
195 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
196 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
197 |
+
}
|
198 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
199 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
200 |
+
}
|
201 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/test-email/test-email.php")) {
|
202 |
+
include_once MAIL_BANK_DIR_PATH . "views/test-email/test-email.php";
|
203 |
+
}
|
204 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
205 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
206 |
+
}
|
207 |
}
|
208 |
|
209 |
/*
|
215 |
*/
|
216 |
|
217 |
function mb_connectivity_test() {
|
218 |
+
global $wpdb;
|
219 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
220 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
221 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
222 |
+
}
|
223 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
224 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
225 |
+
}
|
226 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
227 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
228 |
+
}
|
229 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
230 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
231 |
+
}
|
232 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/connectivity-test/connectivity-test.php")) {
|
233 |
+
include_once MAIL_BANK_DIR_PATH . "views/connectivity-test/connectivity-test.php";
|
234 |
+
}
|
235 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
236 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
237 |
+
}
|
238 |
}
|
239 |
|
240 |
/*
|
246 |
*/
|
247 |
|
248 |
function mb_email_logs() {
|
249 |
+
global $wpdb;
|
250 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
251 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
252 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
253 |
+
}
|
254 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
255 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
256 |
+
}
|
257 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
258 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
259 |
+
}
|
260 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
261 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
262 |
+
}
|
263 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/email-logs/email-logs.php")) {
|
264 |
+
include_once MAIL_BANK_DIR_PATH . "views/email-logs/email-logs.php";
|
265 |
+
}
|
266 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
267 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
268 |
+
}
|
269 |
}
|
270 |
|
271 |
/*
|
277 |
*/
|
278 |
|
279 |
function mb_settings() {
|
280 |
+
global $wpdb;
|
281 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
282 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
283 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
284 |
+
}
|
285 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
286 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
287 |
+
}
|
288 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
289 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
290 |
+
}
|
291 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
292 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
293 |
+
}
|
294 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/settings/settings.php")) {
|
295 |
+
include_once MAIL_BANK_DIR_PATH . "views/settings/settings.php";
|
296 |
+
}
|
297 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
298 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
299 |
+
}
|
300 |
}
|
301 |
|
302 |
/*
|
308 |
*/
|
309 |
|
310 |
function mb_roles_and_capabilities() {
|
311 |
+
global $wpdb;
|
312 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
313 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
314 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
315 |
+
}
|
316 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
317 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
318 |
+
}
|
319 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
320 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
321 |
+
}
|
322 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
323 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
324 |
+
}
|
325 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/roles-and-capabilities/roles-and-capabilities.php")) {
|
326 |
+
include_once MAIL_BANK_DIR_PATH . "views/roles-and-capabilities/roles-and-capabilities.php";
|
327 |
+
}
|
328 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
329 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
330 |
+
}
|
331 |
}
|
332 |
|
333 |
/*
|
339 |
*/
|
340 |
|
341 |
function mb_feedbacks() {
|
342 |
+
global $wpdb;
|
343 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
344 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
345 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
346 |
+
}
|
347 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
348 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
349 |
+
}
|
350 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
351 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
352 |
+
}
|
353 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
354 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
355 |
+
}
|
356 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/feedbacks/feedbacks.php")) {
|
357 |
+
include_once MAIL_BANK_DIR_PATH . "views/feedbacks/feedbacks.php";
|
358 |
+
}
|
359 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
360 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
361 |
+
}
|
362 |
}
|
363 |
|
364 |
/*
|
370 |
*/
|
371 |
|
372 |
function mb_system_information() {
|
373 |
+
global $wpdb;
|
374 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
375 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
376 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
377 |
+
}
|
378 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
379 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
380 |
+
}
|
381 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
382 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
383 |
+
}
|
384 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
385 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
386 |
+
}
|
387 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/system-information/system-information.php")) {
|
388 |
+
include_once MAIL_BANK_DIR_PATH . "views/system-information/system-information.php";
|
389 |
+
}
|
390 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
391 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
392 |
+
}
|
393 |
}
|
394 |
|
395 |
/*
|
401 |
*/
|
402 |
|
403 |
function mb_upgrade() {
|
404 |
+
global $wpdb;
|
405 |
+
$user_role_permission = get_users_capabilities_mail_bank();
|
406 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/translations.php")) {
|
407 |
+
include MAIL_BANK_DIR_PATH . "includes/translations.php";
|
408 |
+
}
|
409 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/header.php")) {
|
410 |
+
include_once MAIL_BANK_DIR_PATH . "includes/header.php";
|
411 |
+
}
|
412 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/sidebar.php")) {
|
413 |
+
include_once MAIL_BANK_DIR_PATH . "includes/sidebar.php";
|
414 |
+
}
|
415 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/queries.php")) {
|
416 |
+
include_once MAIL_BANK_DIR_PATH . "includes/queries.php";
|
417 |
+
}
|
418 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "views/premium-editions/premium-editions.php")) {
|
419 |
+
include_once MAIL_BANK_DIR_PATH . "views/premium-editions/premium-editions.php";
|
420 |
+
}
|
421 |
+
if (file_exists(MAIL_BANK_DIR_PATH . "includes/footer.php")) {
|
422 |
+
include_once MAIL_BANK_DIR_PATH . "includes/footer.php";
|
423 |
+
}
|
424 |
}
|
425 |
|
426 |
}
|
lib/zend/exception.php
CHANGED
@@ -46,10 +46,10 @@ class mail_bank_Zend_Exception extends Exception {
|
|
46 |
*/
|
47 |
public function __construct($msg = '', $code = 0, Exception $previous = null) {
|
48 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
49 |
-
|
50 |
-
|
51 |
} else {
|
52 |
-
|
53 |
}
|
54 |
}
|
55 |
|
@@ -64,7 +64,7 @@ class mail_bank_Zend_Exception extends Exception {
|
|
64 |
*/
|
65 |
public function __call($method, array $args) {
|
66 |
if ('getprevious' == strtolower($method)) {
|
67 |
-
|
68 |
}
|
69 |
return null;
|
70 |
}
|
@@ -76,11 +76,11 @@ class mail_bank_Zend_Exception extends Exception {
|
|
76 |
*/
|
77 |
public function __toString() {
|
78 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
}
|
85 |
return parent::__toString();
|
86 |
}
|
46 |
*/
|
47 |
public function __construct($msg = '', $code = 0, Exception $previous = null) {
|
48 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
49 |
+
parent::__construct($msg, (int) $code);
|
50 |
+
$this->_previous = $previous;
|
51 |
} else {
|
52 |
+
parent::__construct($msg, (int) $code, $previous);
|
53 |
}
|
54 |
}
|
55 |
|
64 |
*/
|
65 |
public function __call($method, array $args) {
|
66 |
if ('getprevious' == strtolower($method)) {
|
67 |
+
return $this->_getPrevious();
|
68 |
}
|
69 |
return null;
|
70 |
}
|
76 |
*/
|
77 |
public function __toString() {
|
78 |
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
|
79 |
+
if (null !== ($e = $this->getPrevious())) {
|
80 |
+
return $e->__toString()
|
81 |
+
. "\n\nNext "
|
82 |
+
. parent::__toString();
|
83 |
+
}
|
84 |
}
|
85 |
return parent::__toString();
|
86 |
}
|
lib/zend/loader.php
CHANGED
@@ -55,41 +55,41 @@ class mail_bank_Zend_Loader {
|
|
55 |
*/
|
56 |
public static function loadClass($class, $dirs = null) {
|
57 |
if (class_exists($class, false) || interface_exists($class, false)) {
|
58 |
-
|
59 |
}
|
60 |
|
61 |
if ((null !== $dirs) && !is_string($dirs) && !is_array($dirs)) {
|
62 |
-
|
63 |
-
|
64 |
|
65 |
-
|
66 |
}
|
67 |
|
68 |
$file = self::standardiseFile($class);
|
69 |
if (!empty($dirs)) {
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
} else {
|
86 |
-
|
87 |
}
|
88 |
if (!class_exists($class, false) && !interface_exists($class, false)) {
|
89 |
-
|
90 |
-
|
91 |
|
92 |
-
|
93 |
}
|
94 |
}
|
95 |
|
@@ -124,30 +124,30 @@ class mail_bank_Zend_Loader {
|
|
124 |
*/
|
125 |
$incPath = false;
|
126 |
if (!empty($dirs) && (is_array($dirs) || is_string($dirs))) {
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
* Try finding for the plain filename in the include_path.
|
136 |
*/
|
137 |
if ($once) {
|
138 |
-
|
139 |
-
|
140 |
}
|
141 |
else {
|
142 |
-
|
143 |
-
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
* If searching in directories, reset include_path
|
148 |
*/
|
149 |
if ($incPath) {
|
150 |
-
|
151 |
}
|
152 |
|
153 |
return true;
|
@@ -168,29 +168,29 @@ class mail_bank_Zend_Loader {
|
|
168 |
*/
|
169 |
public static function isReadable($filename) {
|
170 |
if (is_readable($filename)) {
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
}
|
175 |
|
176 |
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && preg_match('/^[a-z]:/i', $filename)
|
177 |
) {
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
}
|
182 |
|
183 |
foreach (self::explodeIncludePath() as $path) {
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
}
|
195 |
return false;
|
196 |
}
|
@@ -206,16 +206,16 @@ class mail_bank_Zend_Loader {
|
|
206 |
*/
|
207 |
public static function explodeIncludePath($path = null) {
|
208 |
if (null === $path) {
|
209 |
-
|
210 |
}
|
211 |
|
212 |
if (PATH_SEPARATOR == ':') {
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
} else {
|
218 |
-
|
219 |
}
|
220 |
return $paths;
|
221 |
}
|
@@ -235,10 +235,10 @@ class mail_bank_Zend_Loader {
|
|
235 |
public static function autoload($class) {
|
236 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
237 |
try {
|
238 |
-
|
239 |
-
|
240 |
} catch (Exception $e) {
|
241 |
-
|
242 |
}
|
243 |
}
|
244 |
|
@@ -255,28 +255,28 @@ class mail_bank_Zend_Loader {
|
|
255 |
public static function registerAutoload($class = 'mail_bank_Zend_Loader', $enabled = true) {
|
256 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use mail_bank_Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
257 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php'))
|
258 |
-
|
259 |
|
260 |
$autoloader = mail_bank_Zend_Loader_Autoloader::getInstance();
|
261 |
$autoloader->setFallbackAutoloader(true);
|
262 |
|
263 |
if ('mail_bank_Zend_Loader' != $class) {
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
|
270 |
-
|
271 |
-
|
272 |
|
273 |
-
|
274 |
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
}
|
281 |
}
|
282 |
|
@@ -292,10 +292,10 @@ class mail_bank_Zend_Loader {
|
|
292 |
* Security check
|
293 |
*/
|
294 |
if (preg_match('/[^a-z0-9\\/\\\\_.:-]/i', $filename)) {
|
295 |
-
|
296 |
-
|
297 |
|
298 |
-
|
299 |
}
|
300 |
}
|
301 |
|
@@ -315,12 +315,12 @@ class mail_bank_Zend_Loader {
|
|
315 |
*/
|
316 |
protected static function _includeFile($filespec, $once = false) {
|
317 |
if ($once) {
|
318 |
-
|
319 |
-
|
320 |
}
|
321 |
else {
|
322 |
-
|
323 |
-
|
324 |
}
|
325 |
}
|
326 |
|
@@ -341,9 +341,9 @@ class mail_bank_Zend_Loader {
|
|
341 |
$file = '';
|
342 |
$namespace = '';
|
343 |
if ($lastNsPos = strripos($fileName, '\\')) {
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
}
|
348 |
$file .= str_replace('_', DIRECTORY_SEPARATOR, $fileName) . '.php';
|
349 |
return $file;
|
55 |
*/
|
56 |
public static function loadClass($class, $dirs = null) {
|
57 |
if (class_exists($class, false) || interface_exists($class, false)) {
|
58 |
+
return;
|
59 |
}
|
60 |
|
61 |
if ((null !== $dirs) && !is_string($dirs) && !is_array($dirs)) {
|
62 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
63 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
64 |
|
65 |
+
throw new mail_bank_Zend_Exception('Directory argument must be a string or an array');
|
66 |
}
|
67 |
|
68 |
$file = self::standardiseFile($class);
|
69 |
if (!empty($dirs)) {
|
70 |
+
// use the autodiscovered path
|
71 |
+
$dirPath = dirname($file);
|
72 |
+
if (is_string($dirs)) {
|
73 |
+
$dirs = explode(PATH_SEPARATOR, $dirs);
|
74 |
+
}
|
75 |
+
foreach ($dirs as $key => $dir) {
|
76 |
+
if ($dir == '.') {
|
77 |
+
$dirs[$key] = $dirPath;
|
78 |
+
} else {
|
79 |
+
$dir = rtrim($dir, '\\/');
|
80 |
+
$dirs[$key] = $dir . DIRECTORY_SEPARATOR . $dirPath;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
$file = basename($file);
|
84 |
+
self::loadFile($file, $dirs, true);
|
85 |
} else {
|
86 |
+
self::loadFile($file, null, true);
|
87 |
}
|
88 |
if (!class_exists($class, false) && !interface_exists($class, false)) {
|
89 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
90 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
91 |
|
92 |
+
throw new mail_bank_Zend_Exception("File \"$file\" does not exist or class \"$class\" was not found in the file");
|
93 |
}
|
94 |
}
|
95 |
|
124 |
*/
|
125 |
$incPath = false;
|
126 |
if (!empty($dirs) && (is_array($dirs) || is_string($dirs))) {
|
127 |
+
if (is_array($dirs)) {
|
128 |
+
$dirs = implode(PATH_SEPARATOR, $dirs);
|
129 |
+
}
|
130 |
+
$incPath = get_include_path();
|
131 |
+
set_include_path($dirs . PATH_SEPARATOR . $incPath);
|
132 |
}
|
133 |
|
134 |
/**
|
135 |
* Try finding for the plain filename in the include_path.
|
136 |
*/
|
137 |
if ($once) {
|
138 |
+
if (file_exists($filename))
|
139 |
+
include_once $filename;
|
140 |
}
|
141 |
else {
|
142 |
+
if (file_exists($filename))
|
143 |
+
include $filename;
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
* If searching in directories, reset include_path
|
148 |
*/
|
149 |
if ($incPath) {
|
150 |
+
set_include_path($incPath);
|
151 |
}
|
152 |
|
153 |
return true;
|
168 |
*/
|
169 |
public static function isReadable($filename) {
|
170 |
if (is_readable($filename)) {
|
171 |
+
// Return early if the filename is readable without needing the
|
172 |
+
// include_path
|
173 |
+
return true;
|
174 |
}
|
175 |
|
176 |
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' && preg_match('/^[a-z]:/i', $filename)
|
177 |
) {
|
178 |
+
// If on windows, and path provided is clearly an absolute path,
|
179 |
+
// return false immediately
|
180 |
+
return false;
|
181 |
}
|
182 |
|
183 |
foreach (self::explodeIncludePath() as $path) {
|
184 |
+
if ($path == '.') {
|
185 |
+
if (is_readable($filename)) {
|
186 |
+
return true;
|
187 |
+
}
|
188 |
+
continue;
|
189 |
+
}
|
190 |
+
$file = $path . '/' . $filename;
|
191 |
+
if (is_readable($file)) {
|
192 |
+
return true;
|
193 |
+
}
|
194 |
}
|
195 |
return false;
|
196 |
}
|
206 |
*/
|
207 |
public static function explodeIncludePath($path = null) {
|
208 |
if (null === $path) {
|
209 |
+
$path = get_include_path();
|
210 |
}
|
211 |
|
212 |
if (PATH_SEPARATOR == ':') {
|
213 |
+
// On *nix systems, include_paths which include paths with a stream
|
214 |
+
// schema cannot be safely explode'd, so we have to be a bit more
|
215 |
+
// intelligent in the approach.
|
216 |
+
$paths = preg_split('#:(?!//)#', $path);
|
217 |
} else {
|
218 |
+
$paths = explode(PATH_SEPARATOR, $path);
|
219 |
}
|
220 |
return $paths;
|
221 |
}
|
235 |
public static function autoload($class) {
|
236 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
237 |
try {
|
238 |
+
@self::loadClass($class);
|
239 |
+
return $class;
|
240 |
} catch (Exception $e) {
|
241 |
+
return false;
|
242 |
}
|
243 |
}
|
244 |
|
255 |
public static function registerAutoload($class = 'mail_bank_Zend_Loader', $enabled = true) {
|
256 |
trigger_error(__CLASS__ . '::' . __METHOD__ . ' is deprecated as of 1.8.0 and will be removed with 2.0.0; use mail_bank_Zend_Loader_Autoloader instead', E_USER_NOTICE);
|
257 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php'))
|
258 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/loader/autoloader.php';
|
259 |
|
260 |
$autoloader = mail_bank_Zend_Loader_Autoloader::getInstance();
|
261 |
$autoloader->setFallbackAutoloader(true);
|
262 |
|
263 |
if ('mail_bank_Zend_Loader' != $class) {
|
264 |
+
self::loadClass($class);
|
265 |
+
$methods = get_class_methods($class);
|
266 |
+
if (!in_array('autoload', (array) $methods)) {
|
267 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
268 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
269 |
|
270 |
+
throw new mail_bank_Zend_Exception("The class \"$class\" does not have an autoload() method");
|
271 |
+
}
|
272 |
|
273 |
+
$callback = array($class, 'autoload');
|
274 |
|
275 |
+
if ($enabled) {
|
276 |
+
$autoloader->pushAutoloader($callback);
|
277 |
+
} else {
|
278 |
+
$autoloader->removeAutoloader($callback);
|
279 |
+
}
|
280 |
}
|
281 |
}
|
282 |
|
292 |
* Security check
|
293 |
*/
|
294 |
if (preg_match('/[^a-z0-9\\/\\\\_.:-]/i', $filename)) {
|
295 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/exception.php'))
|
296 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/exception.php';
|
297 |
|
298 |
+
throw new mail_bank_Zend_Exception('Security check: Illegal character in filename');
|
299 |
}
|
300 |
}
|
301 |
|
315 |
*/
|
316 |
protected static function _includeFile($filespec, $once = false) {
|
317 |
if ($once) {
|
318 |
+
if (file_exists($filespec))
|
319 |
+
return include_once $filespec;
|
320 |
}
|
321 |
else {
|
322 |
+
if (file_exists($filespec))
|
323 |
+
return include $filespec;
|
324 |
}
|
325 |
}
|
326 |
|
341 |
$file = '';
|
342 |
$namespace = '';
|
343 |
if ($lastNsPos = strripos($fileName, '\\')) {
|
344 |
+
$namespace = substr($fileName, 0, $lastNsPos);
|
345 |
+
$fileName = substr($fileName, $lastNsPos + 1);
|
346 |
+
$file = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
|
347 |
}
|
348 |
$file .= str_replace('_', DIRECTORY_SEPARATOR, $fileName) . '.php';
|
349 |
return $file;
|
lib/zend/loader/autoloader.php
CHANGED
@@ -92,7 +92,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
92 |
*/
|
93 |
public static function getInstance() {
|
94 |
if (null === self::$_instance) {
|
95 |
-
|
96 |
}
|
97 |
return self::$_instance;
|
98 |
}
|
@@ -116,19 +116,19 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
116 |
$self = self::getInstance();
|
117 |
|
118 |
foreach ($self->getClassAutoloaders($class) as $autoloader) {
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
}
|
133 |
return false;
|
134 |
}
|
@@ -141,7 +141,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
141 |
*/
|
142 |
public function setDefaultAutoloader($callback) {
|
143 |
if (!is_callable($callback)) {
|
144 |
-
|
145 |
}
|
146 |
|
147 |
$this->_defaultAutoloader = $callback;
|
@@ -186,7 +186,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
186 |
public function getNamespaceAutoloaders($namespace) {
|
187 |
$namespace = (string) $namespace;
|
188 |
if (!array_key_exists($namespace, $this->_namespaceAutoloaders)) {
|
189 |
-
|
190 |
}
|
191 |
return $this->_namespaceAutoloaders[$namespace];
|
192 |
}
|
@@ -199,15 +199,15 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
199 |
*/
|
200 |
public function registerNamespace($namespace) {
|
201 |
if (is_string($namespace)) {
|
202 |
-
|
203 |
} elseif (!is_array($namespace)) {
|
204 |
-
|
205 |
}
|
206 |
|
207 |
foreach ($namespace as $ns) {
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
}
|
212 |
return $this;
|
213 |
}
|
@@ -220,15 +220,15 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
220 |
*/
|
221 |
public function unregisterNamespace($namespace) {
|
222 |
if (is_string($namespace)) {
|
223 |
-
|
224 |
} elseif (!is_array($namespace)) {
|
225 |
-
|
226 |
}
|
227 |
|
228 |
foreach ($namespace as $ns) {
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
}
|
233 |
return $this;
|
234 |
}
|
@@ -245,19 +245,19 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
245 |
public function setZfPath($spec, $version = 'latest') {
|
246 |
$path = $spec;
|
247 |
if (is_array($spec)) {
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
}
|
256 |
|
257 |
$this->_zfPath = $this->_getVersionPath($path, $version);
|
258 |
set_include_path(implode(PATH_SEPARATOR, array(
|
259 |
-
|
260 |
-
|
261 |
)));
|
262 |
return $this;
|
263 |
}
|
@@ -274,7 +274,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
274 |
*/
|
275 |
public function suppressNotFoundWarnings($flag = null) {
|
276 |
if (null === $flag) {
|
277 |
-
|
278 |
}
|
279 |
$this->_suppressNotFoundWarnings = (bool) $flag;
|
280 |
return $this;
|
@@ -316,38 +316,38 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
316 |
|
317 |
// Add concrete namespaced autoloaders
|
318 |
foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
}
|
329 |
|
330 |
// Add internal namespaced autoloader
|
331 |
foreach ($this->getRegisteredNamespaces() as $ns) {
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
}
|
338 |
|
339 |
// Add non-namespaced autoloaders
|
340 |
$autoloadersNonNamespace = $this->getNamespaceAutoloaders('');
|
341 |
if (count($autoloadersNonNamespace)) {
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
}
|
347 |
|
348 |
// Add fallback autoloader
|
349 |
if (!$namespace && $this->isFallbackAutoloader()) {
|
350 |
-
|
351 |
}
|
352 |
|
353 |
return $autoloaders;
|
@@ -367,9 +367,9 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
367 |
|
368 |
$namespace = (array) $namespace;
|
369 |
foreach ($namespace as $ns) {
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
}
|
374 |
|
375 |
return $this;
|
@@ -389,9 +389,9 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
389 |
|
390 |
$namespace = (array) $namespace;
|
391 |
foreach ($namespace as $ns) {
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
}
|
396 |
|
397 |
return $this;
|
@@ -406,27 +406,27 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
406 |
*/
|
407 |
public function removeAutoloader($callback, $namespace = null) {
|
408 |
if (null === $namespace) {
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
} else {
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
}
|
431 |
|
432 |
return $this;
|
@@ -453,14 +453,14 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
453 |
protected function _autoload($class) {
|
454 |
$callback = $this->getDefaultAutoloader();
|
455 |
try {
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
} catch (mail_bank_Zend_Exception $e) {
|
463 |
-
|
464 |
}
|
465 |
}
|
466 |
|
@@ -488,12 +488,12 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
488 |
$type = $this->_getVersionType($version);
|
489 |
|
490 |
if ($type == 'latest') {
|
491 |
-
|
492 |
}
|
493 |
|
494 |
$availableVersions = $this->_getAvailableVersions($path, $version);
|
495 |
if (empty($availableVersions)) {
|
496 |
-
|
497 |
}
|
498 |
|
499 |
$matchedVersion = array_pop($availableVersions);
|
@@ -509,19 +509,19 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
509 |
*/
|
510 |
protected function _getVersionType($version) {
|
511 |
if (strtolower($version) == 'latest') {
|
512 |
-
|
513 |
}
|
514 |
|
515 |
$parts = explode('.', $version);
|
516 |
$count = count($parts);
|
517 |
if (1 == $count) {
|
518 |
-
|
519 |
}
|
520 |
if (2 == $count) {
|
521 |
-
|
522 |
}
|
523 |
if (3 < $count) {
|
524 |
-
|
525 |
}
|
526 |
return 'specific';
|
527 |
}
|
@@ -535,7 +535,7 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
535 |
*/
|
536 |
protected function _getAvailableVersions($path, $version) {
|
537 |
if (!is_dir($path)) {
|
538 |
-
|
539 |
}
|
540 |
|
541 |
$path = rtrim($path, '/');
|
@@ -544,17 +544,17 @@ class mail_bank_Zend_Loader_Autoloader {
|
|
544 |
$versions = array();
|
545 |
$dirs = glob("$path/*", GLOB_ONLYDIR);
|
546 |
foreach ((array) $dirs as $dir) {
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
|
552 |
-
|
553 |
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
}
|
559 |
|
560 |
uksort($versions, 'version_compare');
|
92 |
*/
|
93 |
public static function getInstance() {
|
94 |
if (null === self::$_instance) {
|
95 |
+
self::$_instance = new self();
|
96 |
}
|
97 |
return self::$_instance;
|
98 |
}
|
116 |
$self = self::getInstance();
|
117 |
|
118 |
foreach ($self->getClassAutoloaders($class) as $autoloader) {
|
119 |
+
if ($autoloader instanceof mail_bank_Zend_Loader_Autoloader_Interface) {
|
120 |
+
if ($autoloader->autoload($class)) {
|
121 |
+
return true;
|
122 |
+
}
|
123 |
+
} elseif (is_array($autoloader)) {
|
124 |
+
if (call_user_func($autoloader, $class)) {
|
125 |
+
return true;
|
126 |
+
}
|
127 |
+
} elseif (is_string($autoloader) || is_callable($autoloader)) {
|
128 |
+
if ($autoloader($class)) {
|
129 |
+
return true;
|
130 |
+
}
|
131 |
+
}
|
132 |
}
|
133 |
return false;
|
134 |
}
|
141 |
*/
|
142 |
public function setDefaultAutoloader($callback) {
|
143 |
if (!is_callable($callback)) {
|
144 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid callback specified for default autoloader');
|
145 |
}
|
146 |
|
147 |
$this->_defaultAutoloader = $callback;
|
186 |
public function getNamespaceAutoloaders($namespace) {
|
187 |
$namespace = (string) $namespace;
|
188 |
if (!array_key_exists($namespace, $this->_namespaceAutoloaders)) {
|
189 |
+
return array();
|
190 |
}
|
191 |
return $this->_namespaceAutoloaders[$namespace];
|
192 |
}
|
199 |
*/
|
200 |
public function registerNamespace($namespace) {
|
201 |
if (is_string($namespace)) {
|
202 |
+
$namespace = (array) $namespace;
|
203 |
} elseif (!is_array($namespace)) {
|
204 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid namespace provided');
|
205 |
}
|
206 |
|
207 |
foreach ($namespace as $ns) {
|
208 |
+
if (!isset($this->_namespaces[$ns])) {
|
209 |
+
$this->_namespaces[$ns] = true;
|
210 |
+
}
|
211 |
}
|
212 |
return $this;
|
213 |
}
|
220 |
*/
|
221 |
public function unregisterNamespace($namespace) {
|
222 |
if (is_string($namespace)) {
|
223 |
+
$namespace = (array) $namespace;
|
224 |
} elseif (!is_array($namespace)) {
|
225 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid namespace provided');
|
226 |
}
|
227 |
|
228 |
foreach ($namespace as $ns) {
|
229 |
+
if (isset($this->_namespaces[$ns])) {
|
230 |
+
unset($this->_namespaces[$ns]);
|
231 |
+
}
|
232 |
}
|
233 |
return $this;
|
234 |
}
|
245 |
public function setZfPath($spec, $version = 'latest') {
|
246 |
$path = $spec;
|
247 |
if (is_array($spec)) {
|
248 |
+
if (!isset($spec['path'])) {
|
249 |
+
throw new mail_bank_Zend_Loader_Exception('No path specified for ZF');
|
250 |
+
}
|
251 |
+
$path = $spec['path'];
|
252 |
+
if (isset($spec['version'])) {
|
253 |
+
$version = $spec['version'];
|
254 |
+
}
|
255 |
}
|
256 |
|
257 |
$this->_zfPath = $this->_getVersionPath($path, $version);
|
258 |
set_include_path(implode(PATH_SEPARATOR, array(
|
259 |
+
$this->_zfPath,
|
260 |
+
get_include_path(),
|
261 |
)));
|
262 |
return $this;
|
263 |
}
|
274 |
*/
|
275 |
public function suppressNotFoundWarnings($flag = null) {
|
276 |
if (null === $flag) {
|
277 |
+
return $this->_suppressNotFoundWarnings;
|
278 |
}
|
279 |
$this->_suppressNotFoundWarnings = (bool) $flag;
|
280 |
return $this;
|
316 |
|
317 |
// Add concrete namespaced autoloaders
|
318 |
foreach (array_keys($this->_namespaceAutoloaders) as $ns) {
|
319 |
+
if ('' == $ns) {
|
320 |
+
continue;
|
321 |
+
}
|
322 |
+
if (0 === strpos($class, $ns)) {
|
323 |
+
if ((false === $namespace) || (strlen($ns) > strlen($namespace))) {
|
324 |
+
$namespace = $ns;
|
325 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
326 |
+
}
|
327 |
+
}
|
328 |
}
|
329 |
|
330 |
// Add internal namespaced autoloader
|
331 |
foreach ($this->getRegisteredNamespaces() as $ns) {
|
332 |
+
if (0 === strpos($class, $ns)) {
|
333 |
+
$namespace = $ns;
|
334 |
+
$autoloaders[] = $this->_internalAutoloader;
|
335 |
+
break;
|
336 |
+
}
|
337 |
}
|
338 |
|
339 |
// Add non-namespaced autoloaders
|
340 |
$autoloadersNonNamespace = $this->getNamespaceAutoloaders('');
|
341 |
if (count($autoloadersNonNamespace)) {
|
342 |
+
foreach ($autoloadersNonNamespace as $ns) {
|
343 |
+
$autoloaders[] = $ns;
|
344 |
+
}
|
345 |
+
unset($autoloadersNonNamespace);
|
346 |
}
|
347 |
|
348 |
// Add fallback autoloader
|
349 |
if (!$namespace && $this->isFallbackAutoloader()) {
|
350 |
+
$autoloaders[] = $this->_internalAutoloader;
|
351 |
}
|
352 |
|
353 |
return $autoloaders;
|
367 |
|
368 |
$namespace = (array) $namespace;
|
369 |
foreach ($namespace as $ns) {
|
370 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
371 |
+
array_unshift($autoloaders, $callback);
|
372 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
373 |
}
|
374 |
|
375 |
return $this;
|
389 |
|
390 |
$namespace = (array) $namespace;
|
391 |
foreach ($namespace as $ns) {
|
392 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
393 |
+
array_push($autoloaders, $callback);
|
394 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
395 |
}
|
396 |
|
397 |
return $this;
|
406 |
*/
|
407 |
public function removeAutoloader($callback, $namespace = null) {
|
408 |
if (null === $namespace) {
|
409 |
+
$autoloaders = $this->getAutoloaders();
|
410 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
411 |
+
unset($autoloaders[$index]);
|
412 |
+
$this->setAutoloaders($autoloaders);
|
413 |
+
}
|
414 |
+
|
415 |
+
foreach ($this->_namespaceAutoloaders as $ns => $autoloaders) {
|
416 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
417 |
+
unset($autoloaders[$index]);
|
418 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
419 |
+
}
|
420 |
+
}
|
421 |
} else {
|
422 |
+
$namespace = (array) $namespace;
|
423 |
+
foreach ($namespace as $ns) {
|
424 |
+
$autoloaders = $this->getNamespaceAutoloaders($ns);
|
425 |
+
if (false !== ($index = array_search($callback, $autoloaders, true))) {
|
426 |
+
unset($autoloaders[$index]);
|
427 |
+
$this->_setNamespaceAutoloaders($autoloaders, $ns);
|
428 |
+
}
|
429 |
+
}
|
430 |
}
|
431 |
|
432 |
return $this;
|
453 |
protected function _autoload($class) {
|
454 |
$callback = $this->getDefaultAutoloader();
|
455 |
try {
|
456 |
+
if ($this->suppressNotFoundWarnings()) {
|
457 |
+
@call_user_func($callback, $class);
|
458 |
+
} else {
|
459 |
+
call_user_func($callback, $class);
|
460 |
+
}
|
461 |
+
return $class;
|
462 |
} catch (mail_bank_Zend_Exception $e) {
|
463 |
+
return false;
|
464 |
}
|
465 |
}
|
466 |
|
488 |
$type = $this->_getVersionType($version);
|
489 |
|
490 |
if ($type == 'latest') {
|
491 |
+
$version = 'latest';
|
492 |
}
|
493 |
|
494 |
$availableVersions = $this->_getAvailableVersions($path, $version);
|
495 |
if (empty($availableVersions)) {
|
496 |
+
throw new mail_bank_Zend_Loader_Exception('No valid ZF installations discovered');
|
497 |
}
|
498 |
|
499 |
$matchedVersion = array_pop($availableVersions);
|
509 |
*/
|
510 |
protected function _getVersionType($version) {
|
511 |
if (strtolower($version) == 'latest') {
|
512 |
+
return 'latest';
|
513 |
}
|
514 |
|
515 |
$parts = explode('.', $version);
|
516 |
$count = count($parts);
|
517 |
if (1 == $count) {
|
518 |
+
return 'major';
|
519 |
}
|
520 |
if (2 == $count) {
|
521 |
+
return 'minor';
|
522 |
}
|
523 |
if (3 < $count) {
|
524 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid version string provided');
|
525 |
}
|
526 |
return 'specific';
|
527 |
}
|
535 |
*/
|
536 |
protected function _getAvailableVersions($path, $version) {
|
537 |
if (!is_dir($path)) {
|
538 |
+
throw new mail_bank_Zend_Loader_Exception('Invalid ZF path provided');
|
539 |
}
|
540 |
|
541 |
$path = rtrim($path, '/');
|
544 |
$versions = array();
|
545 |
$dirs = glob("$path/*", GLOB_ONLYDIR);
|
546 |
foreach ((array) $dirs as $dir) {
|
547 |
+
$dirName = substr($dir, strlen($path) + 1);
|
548 |
+
if (!preg_match('/^(?:ZendFramework-)?(\d+\.\d+\.\d+((a|b|pl|pr|p|rc)\d+)?)(?:-minimal)?$/i', $dirName, $matches)) {
|
549 |
+
continue;
|
550 |
+
}
|
551 |
|
552 |
+
$matchedVersion = $matches[1];
|
553 |
|
554 |
+
if (('latest' == $version) || ((strlen($matchedVersion) >= $versionLen) && (0 === strpos($matchedVersion, $version)))
|
555 |
+
) {
|
556 |
+
$versions[$matchedVersion] = $dir . '/library';
|
557 |
+
}
|
558 |
}
|
559 |
|
560 |
uksort($versions, 'version_compare');
|
lib/zend/mail.php
CHANGED
@@ -212,7 +212,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
212 |
*/
|
213 |
public function __construct($charset = null) {
|
214 |
if ($charset != null) {
|
215 |
-
|
216 |
}
|
217 |
}
|
218 |
|
@@ -236,18 +236,18 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
236 |
*/
|
237 |
public function setType($type) {
|
238 |
$allowed = array(
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
);
|
243 |
if (!in_array($type, $allowed)) {
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
|
250 |
-
|
251 |
}
|
252 |
|
253 |
$this->_type = $type;
|
@@ -328,17 +328,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
328 |
*/
|
329 |
public function setHeaderEncoding($encoding) {
|
330 |
$allowed = array(
|
331 |
-
|
332 |
-
|
333 |
);
|
334 |
if (!in_array($encoding, $allowed)) {
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
|
341 |
-
|
342 |
}
|
343 |
$this->_headerEncoding = $encoding;
|
344 |
|
@@ -355,7 +355,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
355 |
*/
|
356 |
public function setBodyText($txt, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
357 |
if ($charset === null) {
|
358 |
-
|
359 |
}
|
360 |
|
361 |
$mp = new mail_bank_Zend_Mime_Part($txt);
|
@@ -378,8 +378,8 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
378 |
*/
|
379 |
public function getBodyText($textOnly = false) {
|
380 |
if ($textOnly && $this->_bodyText) {
|
381 |
-
|
382 |
-
|
383 |
}
|
384 |
|
385 |
return $this->_bodyText;
|
@@ -395,7 +395,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
395 |
*/
|
396 |
public function setBodyHtml($html, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
397 |
if ($charset === null) {
|
398 |
-
|
399 |
}
|
400 |
|
401 |
$mp = new mail_bank_Zend_Mime_Part($html);
|
@@ -417,8 +417,8 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
417 |
*/
|
418 |
public function getBodyHtml($htmlOnly = false) {
|
419 |
if ($htmlOnly && $this->_bodyHtml) {
|
420 |
-
|
421 |
-
|
422 |
}
|
423 |
|
424 |
return $this->_bodyHtml;
|
@@ -483,11 +483,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
483 |
*/
|
484 |
protected function _encodeHeader($value) {
|
485 |
if (mail_bank_Zend_Mime::isPrintable($value) === false) {
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
}
|
492 |
|
493 |
return $value;
|
@@ -505,13 +505,13 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
505 |
*/
|
506 |
protected function _storeHeader($headerName, $value, $append = false) {
|
507 |
if (isset($this->_headers[$headerName])) {
|
508 |
-
|
509 |
} else {
|
510 |
-
|
511 |
}
|
512 |
|
513 |
if ($append) {
|
514 |
-
|
515 |
}
|
516 |
}
|
517 |
|
@@ -550,12 +550,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
550 |
*/
|
551 |
public function addTo($email, $name = '') {
|
552 |
if (!is_array($email)) {
|
553 |
-
|
554 |
}
|
555 |
|
556 |
foreach ($email as $n => $recipient) {
|
557 |
-
|
558 |
-
|
559 |
}
|
560 |
|
561 |
return $this;
|
@@ -571,11 +571,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
571 |
*/
|
572 |
public function addCc($email, $name = '') {
|
573 |
if (!is_array($email)) {
|
574 |
-
|
575 |
}
|
576 |
|
577 |
foreach ($email as $n => $recipient) {
|
578 |
-
|
579 |
}
|
580 |
|
581 |
return $this;
|
@@ -589,11 +589,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
589 |
*/
|
590 |
public function addBcc($email) {
|
591 |
if (!is_array($email)) {
|
592 |
-
|
593 |
}
|
594 |
|
595 |
foreach ($email as $recipient) {
|
596 |
-
|
597 |
}
|
598 |
|
599 |
return $this;
|
@@ -616,7 +616,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
616 |
*/
|
617 |
public function clearHeader($headerName) {
|
618 |
if (isset($this->_headers[$headerName])) {
|
619 |
-
|
620 |
}
|
621 |
return $this;
|
622 |
}
|
@@ -647,13 +647,13 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
647 |
*/
|
648 |
public function setFrom($email, $name = null) {
|
649 |
if (null !== $this->_from) {
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
|
656 |
-
|
657 |
}
|
658 |
|
659 |
$email = $this->_filterEmail($email);
|
@@ -674,13 +674,13 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
674 |
*/
|
675 |
public function setReplyTo($email, $name = null) {
|
676 |
if (null !== $this->_replyTo) {
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
|
683 |
-
|
684 |
}
|
685 |
|
686 |
$email = $this->_filterEmail($email);
|
@@ -771,11 +771,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
771 |
public function setFromToDefaultFrom() {
|
772 |
$from = self::getDefaultFrom();
|
773 |
if ($from === null) {
|
774 |
-
|
775 |
-
|
776 |
|
777 |
-
|
778 |
-
|
779 |
}
|
780 |
|
781 |
$this->setFrom($from['email'], $from['name']);
|
@@ -821,11 +821,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
821 |
public function setReplyToFromDefault() {
|
822 |
$replyTo = self::getDefaultReplyTo();
|
823 |
if ($replyTo === null) {
|
824 |
-
|
825 |
-
|
826 |
|
827 |
-
|
828 |
-
|
829 |
}
|
830 |
|
831 |
$this->setReplyTo($replyTo['email'], $replyTo['name']);
|
@@ -842,17 +842,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
842 |
*/
|
843 |
public function setReturnPath($email) {
|
844 |
if ($this->_returnPath === null) {
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
} else {
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
|
855 |
-
|
856 |
}
|
857 |
return $this;
|
858 |
}
|
@@ -866,7 +866,7 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
866 |
*/
|
867 |
public function getReturnPath() {
|
868 |
if (null !== $this->_returnPath) {
|
869 |
-
|
870 |
}
|
871 |
|
872 |
return $this->_from;
|
@@ -893,17 +893,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
893 |
*/
|
894 |
public function setSubject($subject) {
|
895 |
if ($this->_subject === null) {
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
} else {
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
|
906 |
-
|
907 |
}
|
908 |
return $this;
|
909 |
}
|
@@ -939,47 +939,47 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
939 |
*/
|
940 |
public function setDate($date = null) {
|
941 |
if ($this->_date === null) {
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
}
|
975 |
else {
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
|
982 |
-
|
983 |
}
|
984 |
return $this;
|
985 |
}
|
@@ -1018,23 +1018,23 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1018 |
*/
|
1019 |
public function setMessageId($id = true) {
|
1020 |
if ($id === null || $id === false) {
|
1021 |
-
|
1022 |
} elseif ($id === true) {
|
1023 |
-
|
1024 |
}
|
1025 |
|
1026 |
if ($this->_messageId === null) {
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
} else {
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
|
1037 |
-
|
1038 |
}
|
1039 |
|
1040 |
return $this;
|
@@ -1070,25 +1070,25 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1070 |
$time = time();
|
1071 |
|
1072 |
if ($this->_from !== null) {
|
1073 |
-
|
1074 |
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
|
1075 |
-
|
1076 |
} else {
|
1077 |
-
|
1078 |
}
|
1079 |
|
1080 |
$rand = mt_rand();
|
1081 |
|
1082 |
if ($this->_recipients !== array()) {
|
1083 |
-
|
1084 |
} else {
|
1085 |
-
|
1086 |
}
|
1087 |
|
1088 |
if (isset($_SERVER["SERVER_NAME"])) {
|
1089 |
-
|
1090 |
} else {
|
1091 |
-
|
1092 |
}
|
1093 |
|
1094 |
return sha1($time . $user . $rand . $recipient) . '@' . $hostName;
|
@@ -1105,17 +1105,17 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1105 |
*/
|
1106 |
public function addHeader($name, $value, $append = false) {
|
1107 |
$prohibit = array('to', 'cc', 'bcc', 'from', 'subject',
|
1108 |
-
|
1109 |
-
|
1110 |
);
|
1111 |
if (in_array(strtolower($name), $prohibit)) {
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
|
1118 |
-
|
1119 |
}
|
1120 |
|
1121 |
$value = $this->_filterOther($value);
|
@@ -1144,27 +1144,27 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1144 |
*/
|
1145 |
public function send($transport = null) {
|
1146 |
if ($transport === null) {
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
}
|
1157 |
|
1158 |
if ($this->_date === null) {
|
1159 |
-
|
1160 |
}
|
1161 |
|
1162 |
if (null === $this->_from && null !== self::getDefaultFrom()) {
|
1163 |
-
|
1164 |
}
|
1165 |
|
1166 |
if (null === $this->_replyTo && null !== self::getDefaultReplyTo()) {
|
1167 |
-
|
1168 |
}
|
1169 |
|
1170 |
$transport->send($this);
|
@@ -1180,12 +1180,12 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1180 |
*/
|
1181 |
protected function _filterEmail($email) {
|
1182 |
$rule = array("\r" => '',
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
);
|
1190 |
|
1191 |
return strtr($email, $rule);
|
@@ -1199,11 +1199,11 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1199 |
*/
|
1200 |
protected function _filterName($name) {
|
1201 |
$rule = array("\r" => '',
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
);
|
1208 |
|
1209 |
return trim(strtr($name, $rule));
|
@@ -1217,8 +1217,8 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1217 |
*/
|
1218 |
protected function _filterOther($data) {
|
1219 |
$rule = array("\r" => '',
|
1220 |
-
|
1221 |
-
|
1222 |
);
|
1223 |
|
1224 |
return strtr($data, $rule);
|
@@ -1233,15 +1233,15 @@ class mail_bank_Zend_Mail extends mail_bank_Zend_Mime_Message {
|
|
1233 |
*/
|
1234 |
protected function _formatAddress($email, $name) {
|
1235 |
if ($name === '' || $name === null || $name === $email) {
|
1236 |
-
|
1237 |
} else {
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
}
|
1246 |
}
|
1247 |
|
212 |
*/
|
213 |
public function __construct($charset = null) {
|
214 |
if ($charset != null) {
|
215 |
+
$this->_charset = $charset;
|
216 |
}
|
217 |
}
|
218 |
|
236 |
*/
|
237 |
public function setType($type) {
|
238 |
$allowed = array(
|
239 |
+
mail_bank_Zend_Mime::MULTIPART_ALTERNATIVE,
|
240 |
+
mail_bank_Zend_Mime::MULTIPART_MIXED,
|
241 |
+
mail_bank_Zend_Mime::MULTIPART_RELATED,
|
242 |
);
|
243 |
if (!in_array($type, $allowed)) {
|
244 |
+
/**
|
245 |
+
* @see mail_bank_Zend_Mail_Exception
|
246 |
+
*/
|
247 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
248 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
249 |
|
250 |
+
throw new mail_bank_Zend_Mail_Exception('Invalid content type "' . $type . '"');
|
251 |
}
|
252 |
|
253 |
$this->_type = $type;
|
328 |
*/
|
329 |
public function setHeaderEncoding($encoding) {
|
330 |
$allowed = array(
|
331 |
+
mail_bank_Zend_Mime::ENCODING_BASE64,
|
332 |
+
mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE
|
333 |
);
|
334 |
if (!in_array($encoding, $allowed)) {
|
335 |
+
/**
|
336 |
+
* @see mail_bank_Zend_Mail_Exception
|
337 |
+
*/
|
338 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
339 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
340 |
|
341 |
+
throw new mail_bank_Zend_Mail_Exception('Invalid encoding "' . $encoding . '"');
|
342 |
}
|
343 |
$this->_headerEncoding = $encoding;
|
344 |
|
355 |
*/
|
356 |
public function setBodyText($txt, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
357 |
if ($charset === null) {
|
358 |
+
$charset = $this->_charset;
|
359 |
}
|
360 |
|
361 |
$mp = new mail_bank_Zend_Mime_Part($txt);
|
378 |
*/
|
379 |
public function getBodyText($textOnly = false) {
|
380 |
if ($textOnly && $this->_bodyText) {
|
381 |
+
$body = $this->_bodyText;
|
382 |
+
return $body->getContent();
|
383 |
}
|
384 |
|
385 |
return $this->_bodyText;
|
395 |
*/
|
396 |
public function setBodyHtml($html, $charset = null, $encoding = mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
397 |
if ($charset === null) {
|
398 |
+
$charset = $this->_charset;
|
399 |
}
|
400 |
|
401 |
$mp = new mail_bank_Zend_Mime_Part($html);
|
417 |
*/
|
418 |
public function getBodyHtml($htmlOnly = false) {
|
419 |
if ($htmlOnly && $this->_bodyHtml) {
|
420 |
+
$body = $this->_bodyHtml;
|
421 |
+
return $body->getContent();
|
422 |
}
|
423 |
|
424 |
return $this->_bodyHtml;
|
483 |
*/
|
484 |
protected function _encodeHeader($value) {
|
485 |
if (mail_bank_Zend_Mime::isPrintable($value) === false) {
|
486 |
+
if ($this->getHeaderEncoding() === mail_bank_Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
|
487 |
+
$value = mail_bank_Zend_Mime::encodeQuotedPrintableHeader($value, $this->getCharset(), mail_bank_Zend_Mime::LINELENGTH, mail_bank_Zend_Mime::LINEEND);
|
488 |
+
} else {
|
489 |
+
$value = mail_bank_Zend_Mime::encodeBase64Header($value, $this->getCharset(), mail_bank_Zend_Mime::LINELENGTH, mail_bank_Zend_Mime::LINEEND);
|
490 |
+
}
|
491 |
}
|
492 |
|
493 |
return $value;
|
505 |
*/
|
506 |
protected function _storeHeader($headerName, $value, $append = false) {
|
507 |
if (isset($this->_headers[$headerName])) {
|
508 |
+
$this->_headers[$headerName][] = $value;
|
509 |
} else {
|
510 |
+
$this->_headers[$headerName] = array($value);
|
511 |
}
|
512 |
|
513 |
if ($append) {
|
514 |
+
$this->_headers[$headerName]['append'] = true;
|
515 |
}
|
516 |
}
|
517 |
|
550 |
*/
|
551 |
public function addTo($email, $name = '') {
|
552 |
if (!is_array($email)) {
|
553 |
+
$email = array($name => $email);
|
554 |
}
|
555 |
|
556 |
foreach ($email as $n => $recipient) {
|
557 |
+
$this->_addRecipientAndHeader('To', $recipient, is_int($n) ? '' : $n);
|
558 |
+
$this->_to[] = $recipient;
|
559 |
}
|
560 |
|
561 |
return $this;
|
571 |
*/
|
572 |
public function addCc($email, $name = '') {
|
573 |
if (!is_array($email)) {
|
574 |
+
$email = array($name => $email);
|
575 |
}
|
576 |
|
577 |
foreach ($email as $n => $recipient) {
|
578 |
+
$this->_addRecipientAndHeader('Cc', $recipient, is_int($n) ? '' : $n);
|
579 |
}
|
580 |
|
581 |
return $this;
|
589 |
*/
|
590 |
public function addBcc($email) {
|
591 |
if (!is_array($email)) {
|
592 |
+
$email = array($email);
|
593 |
}
|
594 |
|
595 |
foreach ($email as $recipient) {
|
596 |
+
$this->_addRecipientAndHeader('Bcc', $recipient, '');
|
597 |
}
|
598 |
|
599 |
return $this;
|
616 |
*/
|
617 |
public function clearHeader($headerName) {
|
618 |
if (isset($this->_headers[$headerName])) {
|
619 |
+
unset($this->_headers[$headerName]);
|
620 |
}
|
621 |
return $this;
|
622 |
}
|
647 |
*/
|
648 |
public function setFrom($email, $name = null) {
|
649 |
if (null !== $this->_from) {
|
650 |
+
/**
|
651 |
+
* @see mail_bank_Zend_Mail_Exception
|
652 |
+
*/
|
653 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
654 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
655 |
|
656 |
+
throw new mail_bank_Zend_Mail_Exception('From Header set twice');
|
657 |
}
|
658 |
|
659 |
$email = $this->_filterEmail($email);
|
674 |
*/
|
675 |
public function setReplyTo($email, $name = null) {
|
676 |
if (null !== $this->_replyTo) {
|
677 |
+
/**
|
678 |
+
* @see mail_bank_Zend_Mail_Exception
|
679 |
+
*/
|
680 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
681 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
682 |
|
683 |
+
throw new mail_bank_Zend_Mail_Exception('Reply-To Header set twice');
|
684 |
}
|
685 |
|
686 |
$email = $this->_filterEmail($email);
|
771 |
public function setFromToDefaultFrom() {
|
772 |
$from = self::getDefaultFrom();
|
773 |
if ($from === null) {
|
774 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
775 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
776 |
|
777 |
+
throw new mail_bank_Zend_Mail_Exception(
|
778 |
+
'No default From Address set to use');
|
779 |
}
|
780 |
|
781 |
$this->setFrom($from['email'], $from['name']);
|
821 |
public function setReplyToFromDefault() {
|
822 |
$replyTo = self::getDefaultReplyTo();
|
823 |
if ($replyTo === null) {
|
824 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
825 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
826 |
|
827 |
+
throw new mail_bank_Zend_Mail_Exception(
|
828 |
+
'No default Reply-To Address set to use');
|
829 |
}
|
830 |
|
831 |
$this->setReplyTo($replyTo['email'], $replyTo['name']);
|
842 |
*/
|
843 |
public function setReturnPath($email) {
|
844 |
if ($this->_returnPath === null) {
|
845 |
+
$email = $this->_filterEmail($email);
|
846 |
+
$this->_returnPath = $email;
|
847 |
+
$this->_storeHeader('Return-Path', $email, false);
|
848 |
} else {
|
849 |
+
/**
|
850 |
+
* @see mail_bank_Zend_Mail_Exception
|
851 |
+
*/
|
852 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
853 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
854 |
|
855 |
+
throw new mail_bank_Zend_Mail_Exception('Return-Path Header set twice');
|
856 |
}
|
857 |
return $this;
|
858 |
}
|
866 |
*/
|
867 |
public function getReturnPath() {
|
868 |
if (null !== $this->_returnPath) {
|
869 |
+
return $this->_returnPath;
|
870 |
}
|
871 |
|
872 |
return $this->_from;
|
893 |
*/
|
894 |
public function setSubject($subject) {
|
895 |
if ($this->_subject === null) {
|
896 |
+
$subject = $this->_filterOther($subject);
|
897 |
+
$this->_subject = $this->_encodeHeader($subject);
|
898 |
+
$this->_storeHeader('Subject', $this->_subject);
|
899 |
} else {
|
900 |
+
/**
|
901 |
+
* @see mail_bank_Zend_Mail_Exception
|
902 |
+
*/
|
903 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
904 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
905 |
|
906 |
+
throw new mail_bank_Zend_Mail_Exception('Subject set twice');
|
907 |
}
|
908 |
return $this;
|
909 |
}
|
939 |
*/
|
940 |
public function setDate($date = null) {
|
941 |
if ($this->_date === null) {
|
942 |
+
if ($date === null) {
|
943 |
+
$date = date('r');
|
944 |
+
} else if (is_int($date)) {
|
945 |
+
$date = date('r', $date);
|
946 |
+
} else if (is_string($date)) {
|
947 |
+
$date = strtotime($date);
|
948 |
+
if ($date === false || $date < 0) {
|
949 |
+
/**
|
950 |
+
* @see mail_bank_Zend_Mail_Exception
|
951 |
+
*/
|
952 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
953 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
954 |
+
|
955 |
+
throw new mail_bank_Zend_Mail_Exception('String representations of Date Header must be ' .
|
956 |
+
'strtotime()-compatible');
|
957 |
+
}
|
958 |
+
$date = date('r', $date);
|
959 |
+
}
|
960 |
+
else if ($date instanceof mail_bank_Zend_Date) {
|
961 |
+
$date = $date->get(mail_bank_Zend_Date::RFC_2822);
|
962 |
+
} else {
|
963 |
+
/**
|
964 |
+
* @see mail_bank_Zend_Mail_Exception
|
965 |
+
*/
|
966 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
967 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
968 |
+
|
969 |
+
throw new mail_bank_Zend_Mail_Exception(__METHOD__ . ' only accepts UNIX timestamps, Zend_Date objects, ' .
|
970 |
+
' and strtotime()-compatible strings');
|
971 |
+
}
|
972 |
+
$this->_date = $date;
|
973 |
+
$this->_storeHeader('Date', $date);
|
974 |
}
|
975 |
else {
|
976 |
+
/**
|
977 |
+
* @see mail_bank_Zend_Mail_Exception
|
978 |
+
*/
|
979 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
980 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
981 |
|
982 |
+
throw new mail_bank_Zend_Mail_Exception('Date Header set twice');
|
983 |
}
|
984 |
return $this;
|
985 |
}
|
1018 |
*/
|
1019 |
public function setMessageId($id = true) {
|
1020 |
if ($id === null || $id === false) {
|
1021 |
+
return $this;
|
1022 |
} elseif ($id === true) {
|
1023 |
+
$id = $this->createMessageId();
|
1024 |
}
|
1025 |
|
1026 |
if ($this->_messageId === null) {
|
1027 |
+
$id = $this->_filterOther($id);
|
1028 |
+
$this->_messageId = $id;
|
1029 |
+
$this->_storeHeader('Message-Id', '<' . $this->_messageId . '>');
|
1030 |
} else {
|
1031 |
+
/**
|
1032 |
+
* @see mail_bank_Zend_Mail_Exception
|
1033 |
+
*/
|
1034 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
1035 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
1036 |
|
1037 |
+
throw new mail_bank_Zend_Mail_Exception('Message-ID set twice');
|
1038 |
}
|
1039 |
|
1040 |
return $this;
|
1070 |
$time = time();
|
1071 |
|
1072 |
if ($this->_from !== null) {
|
1073 |
+
$user = $this->_from;
|
1074 |
} elseif (isset($_SERVER['REMOTE_ADDR'])) {
|
1075 |
+
$user = $_SERVER['REMOTE_ADDR'];
|
1076 |
} else {
|
1077 |
+
$user = getmypid();
|
1078 |
}
|
1079 |
|
1080 |
$rand = mt_rand();
|
1081 |
|
1082 |
if ($this->_recipients !== array()) {
|
1083 |
+
$recipient = array_rand($this->_recipients);
|
1084 |
} else {
|
1085 |
+
$recipient = 'unknown';
|
1086 |
}
|
1087 |
|
1088 |
if (isset($_SERVER["SERVER_NAME"])) {
|
1089 |
+
$hostName = $_SERVER["SERVER_NAME"];
|
1090 |
} else {
|
1091 |
+
$hostName = php_uname('n');
|
1092 |
}
|
1093 |
|
1094 |
return sha1($time . $user . $rand . $recipient) . '@' . $hostName;
|
1105 |
*/
|
1106 |
public function addHeader($name, $value, $append = false) {
|
1107 |
$prohibit = array('to', 'cc', 'bcc', 'from', 'subject',
|
1108 |
+
'reply-to', 'return-path',
|
1109 |
+
'date', 'message-id',
|
1110 |
);
|
1111 |
if (in_array(strtolower($name), $prohibit)) {
|
1112 |
+
/**
|
1113 |
+
* @see mail_bank_Zend_Mail_Exception
|
1114 |
+
*/
|
1115 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
1116 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
1117 |
|
1118 |
+
throw new mail_bank_Zend_Mail_Exception('Cannot set standard header from addHeader()');
|
1119 |
}
|
1120 |
|
1121 |
$value = $this->_filterOther($value);
|
1144 |
*/
|
1145 |
public function send($transport = null) {
|
1146 |
if ($transport === null) {
|
1147 |
+
if (!self::$_defaultTransport instanceof mail_bank_Zend_Mail_Transport_Abstract) {
|
1148 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/transport/sendmail.php'))
|
1149 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/transport/sendmail.php';
|
1150 |
+
|
1151 |
+
$transport = new mail_bank_Zend_Mail_Transport_Sendmail();
|
1152 |
+
}
|
1153 |
+
else {
|
1154 |
+
$transport = self::$_defaultTransport;
|
1155 |
+
}
|
1156 |
}
|
1157 |
|
1158 |
if ($this->_date === null) {
|
1159 |
+
$this->setDate();
|
1160 |
}
|
1161 |
|
1162 |
if (null === $this->_from && null !== self::getDefaultFrom()) {
|
1163 |
+
$this->setFromToDefaultFrom();
|
1164 |
}
|
1165 |
|
1166 |
if (null === $this->_replyTo && null !== self::getDefaultReplyTo()) {
|
1167 |
+
$this->setReplyToFromDefault();
|
1168 |
}
|
1169 |
|
1170 |
$transport->send($this);
|
1180 |
*/
|
1181 |
protected function _filterEmail($email) {
|
1182 |
$rule = array("\r" => '',
|
1183 |
+
"\n" => '',
|
1184 |
+
"\t" => '',
|
1185 |
+
'"' => '',
|
1186 |
+
',' => '',
|
1187 |
+
'<' => '',
|
1188 |
+
'>' => '',
|
1189 |
);
|
1190 |
|
1191 |
return strtr($email, $rule);
|
1199 |
*/
|
1200 |
protected function _filterName($name) {
|
1201 |
$rule = array("\r" => '',
|
1202 |
+
"\n" => '',
|
1203 |
+
"\t" => '',
|
1204 |
+
'"' => "'",
|
1205 |
+
'<' => '[',
|
1206 |
+
'>' => ']',
|
1207 |
);
|
1208 |
|
1209 |
return trim(strtr($name, $rule));
|
1217 |
*/
|
1218 |
protected function _filterOther($data) {
|
1219 |
$rule = array("\r" => '',
|
1220 |
+
"\n" => '',
|
1221 |
+
"\t" => '',
|
1222 |
);
|
1223 |
|
1224 |
return strtr($data, $rule);
|
1233 |
*/
|
1234 |
protected function _formatAddress($email, $name) {
|
1235 |
if ($name === '' || $name === null || $name === $email) {
|
1236 |
+
return $email;
|
1237 |
} else {
|
1238 |
+
$encodedName = $this->_encodeHeader($name);
|
1239 |
+
if ($encodedName === $name && strcspn($name, '()<>[]:;@\\,.') != strlen($name)) {
|
1240 |
+
$format = '"%s" <%s>';
|
1241 |
+
} else {
|
1242 |
+
$format = '%s <%s>';
|
1243 |
+
}
|
1244 |
+
return sprintf($format, $encodedName, $email);
|
1245 |
}
|
1246 |
}
|
1247 |
|
lib/zend/mail/message.php
CHANGED
@@ -59,27 +59,27 @@ class mail_bank_Zend_Mail_Message extends mail_bank_Zend_Mail_Part implements ma
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (isset($params['file'])) {
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
}
|
79 |
|
80 |
if (!empty($params['flags'])) {
|
81 |
-
|
82 |
-
|
83 |
}
|
84 |
|
85 |
parent::__construct($params);
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (isset($params['file'])) {
|
62 |
+
if (!is_resource($params['file'])) {
|
63 |
+
$params['raw'] = @file_get_contents($params['file']);
|
64 |
+
if ($params['raw'] === false) {
|
65 |
+
/**
|
66 |
+
* @see mail_bank_Zend_Mail_Exception
|
67 |
+
*/
|
68 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
69 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
70 |
|
71 |
+
throw new mail_bank_Zend_Mail_Exception('could not open file');
|
72 |
+
}
|
73 |
+
}
|
74 |
+
else {
|
75 |
+
$params['raw'] = stream_get_contents($params['file']);
|
76 |
+
}
|
77 |
+
$params['raw'] = preg_replace("/(?<!\r)\n/", "\r\n", $params['raw']);
|
78 |
}
|
79 |
|
80 |
if (!empty($params['flags'])) {
|
81 |
+
// set key and value to the same value for easy lookup
|
82 |
+
$this->_flags = array_merge($this->_flags, array_combine($params['flags'], $params['flags']));
|
83 |
}
|
84 |
|
85 |
parent::__construct($params);
|
lib/zend/mail/message/file.php
CHANGED
@@ -59,8 +59,8 @@ class mail_bank_Zend_Mail_Message_File extends mail_bank_Zend_Mail_Part_File imp
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (!empty($params['flags'])) {
|
62 |
-
|
63 |
-
|
64 |
}
|
65 |
|
66 |
parent::__construct($params);
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (!empty($params['flags'])) {
|
62 |
+
// set key and value to the same value for easy lookup
|
63 |
+
$this->_flags = array_combine($params['flags'], $params['flags']);
|
64 |
}
|
65 |
|
66 |
parent::__construct($params);
|
lib/zend/mail/part/file.php
CHANGED
@@ -59,96 +59,96 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (empty($params['file'])) {
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
}
|
70 |
|
71 |
if (!is_resource($params['file'])) {
|
72 |
-
|
73 |
} else {
|
74 |
-
|
75 |
}
|
76 |
if (!$this->_fh) {
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
84 |
}
|
85 |
if (isset($params['startPos'])) {
|
86 |
-
|
87 |
}
|
88 |
$header = '';
|
89 |
$endPos = isset($params['endPos']) ? $params['endPos'] : null;
|
90 |
while (($endPos === null || ftell($this->_fh) < $endPos) && trim($line = fgets($this->_fh))) {
|
91 |
-
|
92 |
}
|
93 |
|
94 |
mail_bank_Zend_Mime_Decode::splitMessage($header, $this->_headers, $null);
|
95 |
|
96 |
$this->_contentPos[0] = ftell($this->_fh);
|
97 |
if ($endPos !== null) {
|
98 |
-
|
99 |
} else {
|
100 |
-
|
101 |
-
|
102 |
}
|
103 |
if (!$this->isMultipart()) {
|
104 |
-
|
105 |
}
|
106 |
|
107 |
$boundary = $this->getHeaderField('content-type', 'boundary');
|
108 |
if (!$boundary) {
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
|
115 |
-
|
116 |
}
|
117 |
|
118 |
$part = array();
|
119 |
$pos = $this->_contentPos[0];
|
120 |
fseek($this->_fh, $pos);
|
121 |
while (!feof($this->_fh) && ($endPos === null || $pos < $endPos)) {
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
}
|
153 |
$this->_countParts = count($this->_partPos);
|
154 |
}
|
@@ -164,7 +164,7 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
164 |
public function getContent($stream = null) {
|
165 |
fseek($this->_fh, $this->_contentPos[0]);
|
166 |
if ($stream !== null) {
|
167 |
-
|
168 |
}
|
169 |
$length = $this->_contentPos[1] - $this->_contentPos[0];
|
170 |
return $length < 1 ? '' : fread($this->_fh, $length);
|
@@ -191,17 +191,17 @@ class mail_bank_Zend_Mail_Part_File extends mail_bank_Zend_Mail_Part {
|
|
191 |
public function getPart($num) {
|
192 |
--$num;
|
193 |
if (!isset($this->_partPos[$num])) {
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
|
200 |
-
|
201 |
}
|
202 |
|
203 |
return new self(array('file' => $this->_fh, 'startPos' => $this->_partPos[$num][0],
|
204 |
-
|
205 |
}
|
206 |
|
207 |
}
|
59 |
*/
|
60 |
public function __construct(array $params) {
|
61 |
if (empty($params['file'])) {
|
62 |
+
/**
|
63 |
+
* @see mail_bank_Zend_Mail_Exception
|
64 |
+
*/
|
65 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
66 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
67 |
|
68 |
+
throw new mail_bank_Zend_Mail_Exception('no file given in params');
|
69 |
}
|
70 |
|
71 |
if (!is_resource($params['file'])) {
|
72 |
+
$this->_fh = fopen($params['file'], 'r');
|
73 |
} else {
|
74 |
+
$this->_fh = $params['file'];
|
75 |
}
|
76 |
if (!$this->_fh) {
|
77 |
+
/**
|
78 |
+
* @see mail_bank_Zend_Mail_Exception
|
79 |
+
*/
|
80 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
81 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
82 |
|
83 |
+
throw new mail_bank_Zend_Mail_Exception('could not open file');
|
84 |
}
|
85 |
if (isset($params['startPos'])) {
|
86 |
+
fseek($this->_fh, $params['startPos']);
|
87 |
}
|
88 |
$header = '';
|
89 |
$endPos = isset($params['endPos']) ? $params['endPos'] : null;
|
90 |
while (($endPos === null || ftell($this->_fh) < $endPos) && trim($line = fgets($this->_fh))) {
|
91 |
+
$header .= $line;
|
92 |
}
|
93 |
|
94 |
mail_bank_Zend_Mime_Decode::splitMessage($header, $this->_headers, $null);
|
95 |
|
96 |
$this->_contentPos[0] = ftell($this->_fh);
|
97 |
if ($endPos !== null) {
|
98 |
+
$this->_contentPos[1] = $endPos;
|
99 |
} else {
|
100 |
+
fseek($this->_fh, 0, SEEK_END);
|
101 |
+
$this->_contentPos[1] = ftell($this->_fh);
|
102 |
}
|
103 |
if (!$this->isMultipart()) {
|
104 |
+
return;
|
105 |
}
|
106 |
|
107 |
$boundary = $this->getHeaderField('content-type', 'boundary');
|
108 |
if (!$boundary) {
|
109 |
+
/**
|
110 |
+
* @see mail_bank_Zend_Mail_Exception
|
111 |
+
*/
|
112 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
113 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
114 |
|
115 |
+
throw new mail_bank_Zend_Mail_Exception('no boundary found in content type to split message');
|
116 |
}
|
117 |
|
118 |
$part = array();
|
119 |
$pos = $this->_contentPos[0];
|
120 |
fseek($this->_fh, $pos);
|
121 |
while (!feof($this->_fh) && ($endPos === null || $pos < $endPos)) {
|
122 |
+
$line = fgets($this->_fh);
|
123 |
+
if ($line === false) {
|
124 |
+
if (feof($this->_fh)) {
|
125 |
+
break;
|
126 |
+
}
|
127 |
+
/**
|
128 |
+
* @see mail_bank_Zend_Mail_Exception
|
129 |
+
*/
|
130 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
131 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
132 |
+
|
133 |
+
throw new mail_bank_Zend_Mail_Exception('error reading file');
|
134 |
+
}
|
135 |
+
|
136 |
+
$lastPos = $pos;
|
137 |
+
$pos = ftell($this->_fh);
|
138 |
+
$line = trim($line);
|
139 |
+
|
140 |
+
if ($line == '--' . $boundary) {
|
141 |
+
if ($part) {
|
142 |
+
// not first part
|
143 |
+
$part[1] = $lastPos;
|
144 |
+
$this->_partPos[] = $part;
|
145 |
+
}
|
146 |
+
$part = array($pos);
|
147 |
+
} else if ($line == '--' . $boundary . '--') {
|
148 |
+
$part[1] = $lastPos;
|
149 |
+
$this->_partPos[] = $part;
|
150 |
+
break;
|
151 |
+
}
|
152 |
}
|
153 |
$this->_countParts = count($this->_partPos);
|
154 |
}
|
164 |
public function getContent($stream = null) {
|
165 |
fseek($this->_fh, $this->_contentPos[0]);
|
166 |
if ($stream !== null) {
|
167 |
+
return stream_copy_to_stream($this->_fh, $stream, $this->_contentPos[1] - $this->_contentPos[0]);
|
168 |
}
|
169 |
$length = $this->_contentPos[1] - $this->_contentPos[0];
|
170 |
return $length < 1 ? '' : fread($this->_fh, $length);
|
191 |
public function getPart($num) {
|
192 |
--$num;
|
193 |
if (!isset($this->_partPos[$num])) {
|
194 |
+
/**
|
195 |
+
* @see mail_bank_Zend_Mail_Exception
|
196 |
+
*/
|
197 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php'))
|
198 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/exception.php';
|
199 |
|
200 |
+
throw new mail_bank_Zend_Mail_Exception('part not found');
|
201 |
}
|
202 |
|
203 |
return new self(array('file' => $this->_fh, 'startPos' => $this->_partPos[$num][0],
|
204 |
+
'endPos' => $this->_partPos[$num][1]));
|
205 |
}
|
206 |
|
207 |
}
|
lib/zend/mail/protocol/abstract.php
CHANGED
@@ -129,13 +129,13 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
129 |
$this->_validHost->addValidator(new mail_bank_Zend_Validate_Hostname(mail_bank_Zend_Validate_Hostname::ALLOW_ALL));
|
130 |
|
131 |
if (!$this->_validHost->isValid($host)) {
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
|
138 |
-
|
139 |
}
|
140 |
|
141 |
$this->_host = $host;
|
@@ -221,7 +221,7 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
221 |
*/
|
222 |
protected function _addLog($value) {
|
223 |
if ($this->_maximumLog >= 0 && count($this->_log) >= $this->_maximumLog) {
|
224 |
-
|
225 |
}
|
226 |
|
227 |
$this->_log[] = $value;
|
@@ -244,26 +244,26 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
244 |
$this->_socket = @stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);
|
245 |
|
246 |
if ($this->_socket === false) {
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
}
|
258 |
|
259 |
if (($result = $this->_setStreamTimeout(self::TIMEOUT_CONNECTION)) === false) {
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
|
266 |
-
|
267 |
}
|
268 |
|
269 |
return $result;
|
@@ -276,7 +276,7 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
276 |
*/
|
277 |
protected function _disconnect() {
|
278 |
if (is_resource($this->_socket)) {
|
279 |
-
|
280 |
}
|
281 |
}
|
282 |
|
@@ -289,13 +289,13 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
289 |
*/
|
290 |
protected function _send($request) {
|
291 |
if (!is_resource($this->_socket)) {
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
|
298 |
-
|
299 |
}
|
300 |
|
301 |
$this->_request = $request;
|
@@ -306,13 +306,13 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
306 |
$this->_addLog($request . self::EOL);
|
307 |
|
308 |
if ($result === false) {
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
|
315 |
-
|
316 |
}
|
317 |
|
318 |
return $result;
|
@@ -327,18 +327,18 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
327 |
*/
|
328 |
protected function _receive($timeout = null) {
|
329 |
if (!is_resource($this->_socket)) {
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
|
336 |
-
|
337 |
}
|
338 |
|
339 |
// Adapters may wish to supply per-commend timeouts according to appropriate RFC
|
340 |
if ($timeout !== null) {
|
341 |
-
|
342 |
}
|
343 |
|
344 |
// Retrieve response
|
@@ -351,23 +351,23 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
351 |
$info = stream_get_meta_data($this->_socket);
|
352 |
|
353 |
if (!empty($info['timed_out'])) {
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
|
360 |
-
|
361 |
}
|
362 |
|
363 |
if ($reponse === false) {
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
|
370 |
-
|
371 |
}
|
372 |
|
373 |
return $reponse;
|
@@ -391,28 +391,28 @@ abstract class mail_bank_Zend_Mail_Protocol_Abstract {
|
|
391 |
$errMsg = '';
|
392 |
|
393 |
if (!is_array($code)) {
|
394 |
-
|
395 |
}
|
396 |
|
397 |
do {
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
} while (strpos($more, '-') === 0); // The '-' message prefix indicates an information string instead of a response string.
|
407 |
|
408 |
if ($errMsg !== '') {
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
|
415 |
-
|
416 |
}
|
417 |
|
418 |
return $msg;
|
129 |
$this->_validHost->addValidator(new mail_bank_Zend_Validate_Hostname(mail_bank_Zend_Validate_Hostname::ALLOW_ALL));
|
130 |
|
131 |
if (!$this->_validHost->isValid($host)) {
|
132 |
+
/**
|
133 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
134 |
+
*/
|
135 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
136 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
137 |
|
138 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception(join(', ', $this->_validHost->getMessages()));
|
139 |
}
|
140 |
|
141 |
$this->_host = $host;
|
221 |
*/
|
222 |
protected function _addLog($value) {
|
223 |
if ($this->_maximumLog >= 0 && count($this->_log) >= $this->_maximumLog) {
|
224 |
+
array_shift($this->_log);
|
225 |
}
|
226 |
|
227 |
$this->_log[] = $value;
|
244 |
$this->_socket = @stream_socket_client($remote, $errorNum, $errorStr, self::TIMEOUT_CONNECTION);
|
245 |
|
246 |
if ($this->_socket === false) {
|
247 |
+
if ($errorNum == 0) {
|
248 |
+
$errorStr = 'Could not open socket';
|
249 |
+
}
|
250 |
+
/**
|
251 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
252 |
+
*/
|
253 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
254 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
255 |
+
|
256 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception($errorStr);
|
257 |
}
|
258 |
|
259 |
if (($result = $this->_setStreamTimeout(self::TIMEOUT_CONNECTION)) === false) {
|
260 |
+
/**
|
261 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
262 |
+
*/
|
263 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
264 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
265 |
|
266 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Could not set stream timeout');
|
267 |
}
|
268 |
|
269 |
return $result;
|
276 |
*/
|
277 |
protected function _disconnect() {
|
278 |
if (is_resource($this->_socket)) {
|
279 |
+
fclose($this->_socket);
|
280 |
}
|
281 |
}
|
282 |
|
289 |
*/
|
290 |
protected function _send($request) {
|
291 |
if (!is_resource($this->_socket)) {
|
292 |
+
/**
|
293 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
294 |
+
*/
|
295 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
296 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
297 |
|
298 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('No connection has been established to ' . $this->_host);
|
299 |
}
|
300 |
|
301 |
$this->_request = $request;
|
306 |
$this->_addLog($request . self::EOL);
|
307 |
|
308 |
if ($result === false) {
|
309 |
+
/**
|
310 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
311 |
+
*/
|
312 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
313 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
314 |
|
315 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Could not send request to ' . $this->_host);
|
316 |
}
|
317 |
|
318 |
return $result;
|
327 |
*/
|
328 |
protected function _receive($timeout = null) {
|
329 |
if (!is_resource($this->_socket)) {
|
330 |
+
/**
|
331 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
332 |
+
*/
|
333 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
334 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
335 |
|
336 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('No connection has been established to ' . $this->_host);
|
337 |
}
|
338 |
|
339 |
// Adapters may wish to supply per-commend timeouts according to appropriate RFC
|
340 |
if ($timeout !== null) {
|
341 |
+
$this->_setStreamTimeout($timeout);
|
342 |
}
|
343 |
|
344 |
// Retrieve response
|
351 |
$info = stream_get_meta_data($this->_socket);
|
352 |
|
353 |
if (!empty($info['timed_out'])) {
|
354 |
+
/**
|
355 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
356 |
+
*/
|
357 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
358 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
359 |
|
360 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception($this->_host . ' has timed out');
|
361 |
}
|
362 |
|
363 |
if ($reponse === false) {
|
364 |
+
/**
|
365 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
366 |
+
*/
|
367 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
368 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
369 |
|
370 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Could not read from ' . $this->_host);
|
371 |
}
|
372 |
|
373 |
return $reponse;
|
391 |
$errMsg = '';
|
392 |
|
393 |
if (!is_array($code)) {
|
394 |
+
$code = array($code);
|
395 |
}
|
396 |
|
397 |
do {
|
398 |
+
$this->_response[] = $result = $this->_receive($timeout);
|
399 |
+
list($cmd, $more, $msg) = preg_split('/([\s-]+)/', $result, 2, PREG_SPLIT_DELIM_CAPTURE);
|
400 |
+
|
401 |
+
if ($errMsg !== '') {
|
402 |
+
$errMsg .= ' ' . $msg;
|
403 |
+
} elseif ($cmd === null || !in_array($cmd, $code)) {
|
404 |
+
$errMsg = $msg;
|
405 |
+
}
|
406 |
} while (strpos($more, '-') === 0); // The '-' message prefix indicates an information string instead of a response string.
|
407 |
|
408 |
if ($errMsg !== '') {
|
409 |
+
/**
|
410 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
411 |
+
*/
|
412 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
413 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
414 |
|
415 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception($errMsg, $cmd);
|
416 |
}
|
417 |
|
418 |
return $msg;
|
lib/zend/mail/protocol/smtp.php
CHANGED
@@ -115,36 +115,36 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
115 |
*/
|
116 |
public function __construct($host = '127.0.0.1', $port = null, array $config = array()) {
|
117 |
if (isset($config['ssl'])) {
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
}
|
142 |
|
143 |
// If no port has been specified then check the bank PHP ini file. Defaults to 25 if the ini setting is null.
|
144 |
if ($port == null) {
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
}
|
149 |
|
150 |
parent::__construct($host, $port);
|
@@ -169,24 +169,24 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
169 |
public function helo($host = '127.0.0.1') {
|
170 |
// Respect RFC 2821 and disallow HELO attempts if session is already initiated.
|
171 |
if ($this->_sess === true) {
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
|
178 |
-
|
179 |
}
|
180 |
|
181 |
// Validate client hostname
|
182 |
if (!$this->_validHost->isValid($host)) {
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
|
189 |
-
|
190 |
}
|
191 |
|
192 |
// Initiate helo sequence
|
@@ -195,22 +195,22 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
195 |
|
196 |
// If a TLS session is required, commence negotiation
|
197 |
if ($this->_secure == 'tls') {
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
}
|
215 |
|
216 |
$this->_startSession();
|
@@ -227,13 +227,13 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
227 |
protected function _ehlo($host) {
|
228 |
// Support for older, less-compliant remote servers. Tries multiple attempts of EHLO or HELO.
|
229 |
try {
|
230 |
-
|
231 |
-
|
232 |
} catch (mail_bank_Zend_Mail_Protocol_Exception $e) {
|
233 |
-
|
234 |
-
|
235 |
} catch (mail_bank_Zend_Mail_Protocol_Exception $e) {
|
236 |
-
|
237 |
}
|
238 |
}
|
239 |
|
@@ -246,13 +246,13 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
246 |
*/
|
247 |
public function mail($from) {
|
248 |
if ($this->_sess !== true) {
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
|
255 |
-
|
256 |
}
|
257 |
|
258 |
$this->_send('MAIL FROM:<' . $from . '>');
|
@@ -272,13 +272,13 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
272 |
*/
|
273 |
public function rcpt($to) {
|
274 |
if ($this->_mail !== true) {
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
|
281 |
-
|
282 |
}
|
283 |
|
284 |
// Set rcpt to true, as per 4.1.1.3 of RFC 2821
|
@@ -297,24 +297,24 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
297 |
public function data($data) {
|
298 |
// Ensure recipients have been set
|
299 |
if ($this->_rcpt !== true) {
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
|
306 |
-
|
307 |
}
|
308 |
|
309 |
$this->_send('DATA');
|
310 |
$this->_expect(354, 120); // Timeout set for 2 minutes as per RFC 2821 4.5.3.2
|
311 |
|
312 |
foreach (explode(mail_bank_Zend_Mime::LINEEND, $data) as $line) {
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
}
|
319 |
|
320 |
$this->_send('.');
|
@@ -371,9 +371,9 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
371 |
*/
|
372 |
public function quit() {
|
373 |
if ($this->_sess) {
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
}
|
378 |
}
|
379 |
|
@@ -387,13 +387,13 @@ class mail_bank_Zend_Mail_Protocol_Smtp extends mail_bank_Zend_Mail_Protocol_Abs
|
|
387 |
*/
|
388 |
public function auth() {
|
389 |
if ($this->_auth === true) {
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
|
396 |
-
|
397 |
}
|
398 |
}
|
399 |
|
115 |
*/
|
116 |
public function __construct($host = '127.0.0.1', $port = null, array $config = array()) {
|
117 |
if (isset($config['ssl'])) {
|
118 |
+
switch (strtolower($config['ssl'])) {
|
119 |
+
case 'tls':
|
120 |
+
$this->_secure = 'tls';
|
121 |
+
break;
|
122 |
+
|
123 |
+
case 'ssl':
|
124 |
+
$this->_transport = 'ssl';
|
125 |
+
$this->_secure = 'ssl';
|
126 |
+
if ($port == null) {
|
127 |
+
$port = 465;
|
128 |
+
}
|
129 |
+
break;
|
130 |
+
|
131 |
+
default:
|
132 |
+
/**
|
133 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
134 |
+
*/
|
135 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
136 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
137 |
+
|
138 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception($config['ssl'] . ' is unsupported SSL type');
|
139 |
+
break;
|
140 |
+
}
|
141 |
}
|
142 |
|
143 |
// If no port has been specified then check the bank PHP ini file. Defaults to 25 if the ini setting is null.
|
144 |
if ($port == null) {
|
145 |
+
if (($port = ini_get('smtp_port')) == '') {
|
146 |
+
$port = 25;
|
147 |
+
}
|
148 |
}
|
149 |
|
150 |
parent::__construct($host, $port);
|
169 |
public function helo($host = '127.0.0.1') {
|
170 |
// Respect RFC 2821 and disallow HELO attempts if session is already initiated.
|
171 |
if ($this->_sess === true) {
|
172 |
+
/**
|
173 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
174 |
+
*/
|
175 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
176 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
177 |
|
178 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Cannot issue HELO to existing session');
|
179 |
}
|
180 |
|
181 |
// Validate client hostname
|
182 |
if (!$this->_validHost->isValid($host)) {
|
183 |
+
/**
|
184 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
185 |
+
*/
|
186 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
187 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
188 |
|
189 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception(join(', ', $this->_validHost->getMessages()));
|
190 |
}
|
191 |
|
192 |
// Initiate helo sequence
|
195 |
|
196 |
// If a TLS session is required, commence negotiation
|
197 |
if ($this->_secure == 'tls') {
|
198 |
+
$this->_send('STARTTLS');
|
199 |
+
$this->_expect(220, 180);
|
200 |
+
stream_context_set_option($this->_socket, 'ssl', 'verify_peer', false);
|
201 |
+
stream_context_set_option($this->_socket, 'ssl', 'verify_peer_name', false);
|
202 |
+
if (extension_loaded("openssl")) {
|
203 |
+
if (!stream_socket_enable_crypto($this->_socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
|
204 |
+
/**
|
205 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
206 |
+
*/
|
207 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
208 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
209 |
+
|
210 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Unable to connect via TLS');
|
211 |
+
}
|
212 |
+
}
|
213 |
+
$this->_ehlo($host);
|
214 |
}
|
215 |
|
216 |
$this->_startSession();
|
227 |
protected function _ehlo($host) {
|
228 |
// Support for older, less-compliant remote servers. Tries multiple attempts of EHLO or HELO.
|
229 |
try {
|
230 |
+
$this->_send('EHLO ' . $host);
|
231 |
+
$this->_expect(250, 300); // Timeout set for 5 minutes as per RFC 2821 4.5.3.2
|
232 |
} catch (mail_bank_Zend_Mail_Protocol_Exception $e) {
|
233 |
+
$this->_send('HELO ' . $host);
|
234 |
+
$this->_expect(250, 300); // Timeout set for 5 minutes as per RFC 2821 4.5.3.2
|
235 |
} catch (mail_bank_Zend_Mail_Protocol_Exception $e) {
|
236 |
+
throw $e;
|
237 |
}
|
238 |
}
|
239 |
|
246 |
*/
|
247 |
public function mail($from) {
|
248 |
if ($this->_sess !== true) {
|
249 |
+
/**
|
250 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
251 |
+
*/
|
252 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
253 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
254 |
|
255 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('A valid session has not been started');
|
256 |
}
|
257 |
|
258 |
$this->_send('MAIL FROM:<' . $from . '>');
|
272 |
*/
|
273 |
public function rcpt($to) {
|
274 |
if ($this->_mail !== true) {
|
275 |
+
/**
|
276 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
277 |
+
*/
|
278 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
279 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
280 |
|
281 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('No sender reverse path has been supplied');
|
282 |
}
|
283 |
|
284 |
// Set rcpt to true, as per 4.1.1.3 of RFC 2821
|
297 |
public function data($data) {
|
298 |
// Ensure recipients have been set
|
299 |
if ($this->_rcpt !== true) {
|
300 |
+
/**
|
301 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
302 |
+
*/
|
303 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
304 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
305 |
|
306 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('No recipient forward path has been supplied');
|
307 |
}
|
308 |
|
309 |
$this->_send('DATA');
|
310 |
$this->_expect(354, 120); // Timeout set for 2 minutes as per RFC 2821 4.5.3.2
|
311 |
|
312 |
foreach (explode(mail_bank_Zend_Mime::LINEEND, $data) as $line) {
|
313 |
+
if (strpos($line, '.') === 0) {
|
314 |
+
// Escape lines prefixed with a '.'
|
315 |
+
$line = '.' . $line;
|
316 |
+
}
|
317 |
+
$this->_send($line);
|
318 |
}
|
319 |
|
320 |
$this->_send('.');
|
371 |
*/
|
372 |
public function quit() {
|
373 |
if ($this->_sess) {
|
374 |
+
$this->_send('QUIT');
|
375 |
+
$this->_expect(221, 300); // Timeout set for 5 minutes as per RFC 2821 4.5.3.2
|
376 |
+
$this->_stopSession();
|
377 |
}
|
378 |
}
|
379 |
|
387 |
*/
|
388 |
public function auth() {
|
389 |
if ($this->_auth === true) {
|
390 |
+
/**
|
391 |
+
* @see mail_bank_Zend_Mail_Protocol_Exception
|
392 |
+
*/
|
393 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php'))
|
394 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/protocol/exception.php';
|
395 |
|
396 |
+
throw new mail_bank_Zend_Mail_Protocol_Exception('Already authenticated for this session');
|
397 |
}
|
398 |
}
|
399 |
|
lib/zend/mail/protocol/smtp/auth/crammd5.php
CHANGED
@@ -51,12 +51,12 @@ class mail_bank_Zend_Mail_Protocol_Smtp_Auth_Crammd5 extends mail_bank_Zend_Mail
|
|
51 |
*/
|
52 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
53 |
if (is_array($config)) {
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
}
|
61 |
|
62 |
parent::__construct($host, $port, $config);
|
@@ -90,9 +90,9 @@ class mail_bank_Zend_Mail_Protocol_Smtp_Auth_Crammd5 extends mail_bank_Zend_Mail
|
|
90 |
*/
|
91 |
protected function _hmacMd5($key, $data, $block = 64) {
|
92 |
if (strlen($key) > 64) {
|
93 |
-
|
94 |
} elseif (strlen($key) < 64) {
|
95 |
-
|
96 |
}
|
97 |
|
98 |
$k_ipad = substr($key, 0, 64) ^ str_repeat(chr(0x36), 64);
|
51 |
*/
|
52 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
53 |
if (is_array($config)) {
|
54 |
+
if (isset($config['username'])) {
|
55 |
+
$this->_username = $config['username'];
|
56 |
+
}
|
57 |
+
if (isset($config['password'])) {
|
58 |
+
$this->_password = $config['password'];
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
parent::__construct($host, $port, $config);
|
90 |
*/
|
91 |
protected function _hmacMd5($key, $data, $block = 64) {
|
92 |
if (strlen($key) > 64) {
|
93 |
+
$key = pack('H32', md5($key));
|
94 |
} elseif (strlen($key) < 64) {
|
95 |
+
$key = str_pad($key, $block, "\0");
|
96 |
}
|
97 |
|
98 |
$k_ipad = substr($key, 0, 64) ^ str_repeat(chr(0x36), 64);
|
lib/zend/mail/protocol/smtp/auth/login.php
CHANGED
@@ -65,12 +65,12 @@ class mail_bank_Zend_Mail_Protocol_Smtp_Auth_Login extends mail_bank_Zend_Mail_P
|
|
65 |
*/
|
66 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
67 |
if (is_array($config)) {
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
}
|
75 |
|
76 |
parent::__construct($host, $port, $config);
|
65 |
*/
|
66 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
67 |
if (is_array($config)) {
|
68 |
+
if (isset($config['username'])) {
|
69 |
+
$this->_username = $config['username'];
|
70 |
+
}
|
71 |
+
if (isset($config['password'])) {
|
72 |
+
$this->_password = $config['password'];
|
73 |
+
}
|
74 |
}
|
75 |
|
76 |
parent::__construct($host, $port, $config);
|
lib/zend/mail/protocol/smtp/auth/oauth2.php
CHANGED
@@ -44,9 +44,9 @@ class mail_bank_Zend_Mail_Protocol_Smtp_Auth_Oauth2 extends mail_bank_Zend_Mail_
|
|
44 |
//Constructor.
|
45 |
public function __construct($host = "127.0.0.1", $port = null, $config = null) {
|
46 |
if (is_array($config)) {
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
}
|
51 |
parent::__construct($host, $port, $config);
|
52 |
}
|
44 |
//Constructor.
|
45 |
public function __construct($host = "127.0.0.1", $port = null, $config = null) {
|
46 |
if (is_array($config)) {
|
47 |
+
if (isset($config["xoauth2_request"])) {
|
48 |
+
$this->_xoauth2_request = $config["xoauth2_request"];
|
49 |
+
}
|
50 |
}
|
51 |
parent::__construct($host, $port, $config);
|
52 |
}
|
lib/zend/mail/protocol/smtp/auth/plain.php
CHANGED
@@ -64,12 +64,12 @@ class mail_bank_Zend_Mail_Protocol_Smtp_Auth_Plain extends mail_bank_Zend_Mail_P
|
|
64 |
*/
|
65 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
66 |
if (is_array($config)) {
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
}
|
74 |
|
75 |
parent::__construct($host, $port, $config);
|
64 |
*/
|
65 |
public function __construct($host = '127.0.0.1', $port = null, $config = null) {
|
66 |
if (is_array($config)) {
|
67 |
+
if (isset($config['username'])) {
|
68 |
+
$this->_username = $config['username'];
|
69 |
+
}
|
70 |
+
if (isset($config['password'])) {
|
71 |
+
$this->_password = $config['password'];
|
72 |
+
}
|
73 |
}
|
74 |
|
75 |
parent::__construct($host, $port, $config);
|
lib/zend/mail/storage/abstract.php
CHANGED
@@ -77,15 +77,15 @@ abstract class mail_bank_Zend_Mail_Storage_Abstract implements Countable, ArrayA
|
|
77 |
*/
|
78 |
public function __get($var) {
|
79 |
if (strpos($var, 'has') === 0) {
|
80 |
-
|
81 |
-
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
86 |
*/
|
87 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
88 |
-
|
89 |
|
90 |
throw new mail_bank_Zend_Mail_Storage_Exception($var . ' not found');
|
91 |
}
|
@@ -221,11 +221,11 @@ abstract class mail_bank_Zend_Mail_Storage_Abstract implements Countable, ArrayA
|
|
221 |
*/
|
222 |
public function offsetExists($id) {
|
223 |
try {
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
228 |
-
|
229 |
}
|
230 |
|
231 |
return false;
|
@@ -254,7 +254,7 @@ abstract class mail_bank_Zend_Mail_Storage_Abstract implements Countable, ArrayA
|
|
254 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
255 |
*/
|
256 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
257 |
-
|
258 |
|
259 |
throw new mail_bank_Zend_Mail_Storage_Exception('cannot write mail messages via array access');
|
260 |
}
|
@@ -317,7 +317,7 @@ abstract class mail_bank_Zend_Mail_Storage_Abstract implements Countable, ArrayA
|
|
317 |
*/
|
318 |
public function valid() {
|
319 |
if ($this->_iterationMax === null) {
|
320 |
-
|
321 |
}
|
322 |
return $this->_iterationPos && $this->_iterationPos <= $this->_iterationMax;
|
323 |
}
|
@@ -331,11 +331,11 @@ abstract class mail_bank_Zend_Mail_Storage_Abstract implements Countable, ArrayA
|
|
331 |
*/
|
332 |
public function seek($pos) {
|
333 |
if ($this->_iterationMax === null) {
|
334 |
-
|
335 |
}
|
336 |
|
337 |
if ($pos > $this->_iterationMax) {
|
338 |
-
|
339 |
}
|
340 |
$this->_iterationPos = $pos;
|
341 |
}
|
77 |
*/
|
78 |
public function __get($var) {
|
79 |
if (strpos($var, 'has') === 0) {
|
80 |
+
$var = strtolower(substr($var, 3));
|
81 |
+
return isset($this->_has[$var]) ? $this->_has[$var] : null;
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
86 |
*/
|
87 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
88 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
89 |
|
90 |
throw new mail_bank_Zend_Mail_Storage_Exception($var . ' not found');
|
91 |
}
|
221 |
*/
|
222 |
public function offsetExists($id) {
|
223 |
try {
|
224 |
+
if ($this->getMessage($id)) {
|
225 |
+
return true;
|
226 |
+
}
|
227 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
228 |
+
|
229 |
}
|
230 |
|
231 |
return false;
|
254 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
255 |
*/
|
256 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
257 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
258 |
|
259 |
throw new mail_bank_Zend_Mail_Storage_Exception('cannot write mail messages via array access');
|
260 |
}
|
317 |
*/
|
318 |
public function valid() {
|
319 |
if ($this->_iterationMax === null) {
|
320 |
+
$this->_iterationMax = $this->countMessages();
|
321 |
}
|
322 |
return $this->_iterationPos && $this->_iterationPos <= $this->_iterationMax;
|
323 |
}
|
331 |
*/
|
332 |
public function seek($pos) {
|
333 |
if ($this->_iterationMax === null) {
|
334 |
+
$this->_iterationMax = $this->countMessages();
|
335 |
}
|
336 |
|
337 |
if ($pos > $this->_iterationMax) {
|
338 |
+
throw new OutOfBoundsException('this position does not exist');
|
339 |
}
|
340 |
$this->_iterationPos = $pos;
|
341 |
}
|
lib/zend/mail/storage/folder.php
CHANGED
@@ -145,13 +145,13 @@ class mail_bank_Zend_Mail_Storage_Folder implements RecursiveIterator {
|
|
145 |
*/
|
146 |
public function __get($name) {
|
147 |
if (!isset($this->_folders[$name])) {
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
|
154 |
-
|
155 |
}
|
156 |
|
157 |
return $this->_folders[$name];
|
145 |
*/
|
146 |
public function __get($name) {
|
147 |
if (!isset($this->_folders[$name])) {
|
148 |
+
/**
|
149 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
150 |
+
*/
|
151 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
152 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
153 |
|
154 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("no subfolder named $name");
|
155 |
}
|
156 |
|
157 |
return $this->_folders[$name];
|
lib/zend/mail/storage/folder/maildir.php
CHANGED
@@ -87,17 +87,17 @@ class mail_bank_Zend_Mail_Storage_Folder_Maildir extends mail_bank_Zend_Mail_Sto
|
|
87 |
*/
|
88 |
public function __construct($params) {
|
89 |
if (is_array($params)) {
|
90 |
-
|
91 |
}
|
92 |
|
93 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
|
100 |
-
|
101 |
}
|
102 |
|
103 |
$this->_rootdir = rtrim($params->dirname, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
@@ -125,23 +125,23 @@ class mail_bank_Zend_Mail_Storage_Folder_Maildir extends mail_bank_Zend_Mail_Sto
|
|
125 |
|
126 |
$dh = @opendir($this->_rootdir);
|
127 |
if (!$dh) {
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
|
134 |
-
|
135 |
}
|
136 |
$dirs = array();
|
137 |
while (($entry = readdir($dh)) !== false) {
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
}
|
146 |
closedir($dh);
|
147 |
|
@@ -152,40 +152,40 @@ class mail_bank_Zend_Mail_Storage_Folder_Maildir extends mail_bank_Zend_Mail_Sto
|
|
152 |
$parent = '.';
|
153 |
|
154 |
foreach ($dirs as $dir) {
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
}
|
190 |
}
|
191 |
|
@@ -198,31 +198,31 @@ class mail_bank_Zend_Mail_Storage_Folder_Maildir extends mail_bank_Zend_Mail_Sto
|
|
198 |
*/
|
199 |
public function getFolders($rootFolder = null) {
|
200 |
if (!$rootFolder || $rootFolder == 'INBOX') {
|
201 |
-
|
202 |
}
|
203 |
|
204 |
// rootdir is same as INBOX in maildir
|
205 |
if (strpos($rootFolder, 'INBOX' . $this->_delim) === 0) {
|
206 |
-
|
207 |
}
|
208 |
$currentFolder = $this->_rootFolder;
|
209 |
$subname = trim($rootFolder, $this->_delim);
|
210 |
while ($currentFolder) {
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
}
|
217 |
|
218 |
if ($currentFolder->getGlobalName() != rtrim($rootFolder, $this->_delim)) {
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
|
225 |
-
|
226 |
}
|
227 |
return $currentFolder;
|
228 |
}
|
@@ -243,28 +243,28 @@ class mail_bank_Zend_Mail_Storage_Folder_Maildir extends mail_bank_Zend_Mail_Sto
|
|
243 |
$folder = $this->getFolders($this->_currentFolder);
|
244 |
|
245 |
try {
|
246 |
-
|
247 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
}
|
269 |
}
|
270 |
|
87 |
*/
|
88 |
public function __construct($params) {
|
89 |
if (is_array($params)) {
|
90 |
+
$params = (object) $params;
|
91 |
}
|
92 |
|
93 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
94 |
+
/**
|
95 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
96 |
+
*/
|
97 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
98 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
99 |
|
100 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('no valid dirname given in params');
|
101 |
}
|
102 |
|
103 |
$this->_rootdir = rtrim($params->dirname, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
125 |
|
126 |
$dh = @opendir($this->_rootdir);
|
127 |
if (!$dh) {
|
128 |
+
/**
|
129 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
130 |
+
*/
|
131 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
132 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
133 |
|
134 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("can't read folders in maildir");
|
135 |
}
|
136 |
$dirs = array();
|
137 |
while (($entry = readdir($dh)) !== false) {
|
138 |
+
// maildir++ defines folders must start with .
|
139 |
+
if ($entry[0] != '.' || $entry == '.' || $entry == '..') {
|
140 |
+
continue;
|
141 |
+
}
|
142 |
+
if ($this->_isMaildir($this->_rootdir . $entry)) {
|
143 |
+
$dirs[] = $entry;
|
144 |
+
}
|
145 |
}
|
146 |
closedir($dh);
|
147 |
|
152 |
$parent = '.';
|
153 |
|
154 |
foreach ($dirs as $dir) {
|
155 |
+
do {
|
156 |
+
if (strpos($dir, $parent) === 0) {
|
157 |
+
$local = substr($dir, strlen($parent));
|
158 |
+
if (strpos($local, $this->_delim) !== false) {
|
159 |
+
/**
|
160 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
161 |
+
*/
|
162 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
163 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
164 |
+
|
165 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('error while reading maildir');
|
166 |
+
}
|
167 |
+
array_push($stack, $parent);
|
168 |
+
$parent = $dir . $this->_delim;
|
169 |
+
$folder = new mail_bank_Zend_Mail_Storage_Folder($local, substr($dir, 1), true);
|
170 |
+
$parentFolder->$local = $folder;
|
171 |
+
array_push($folderStack, $parentFolder);
|
172 |
+
$parentFolder = $folder;
|
173 |
+
break;
|
174 |
+
}
|
175 |
+
else if ($stack) {
|
176 |
+
$parent = array_pop($stack);
|
177 |
+
$parentFolder = array_pop($folderStack);
|
178 |
+
}
|
179 |
+
} while ($stack);
|
180 |
+
if (!$stack) {
|
181 |
+
/**
|
182 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
183 |
+
*/
|
184 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
185 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
186 |
+
|
187 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('error while reading maildir');
|
188 |
+
}
|
189 |
}
|
190 |
}
|
191 |
|
198 |
*/
|
199 |
public function getFolders($rootFolder = null) {
|
200 |
if (!$rootFolder || $rootFolder == 'INBOX') {
|
201 |
+
return $this->_rootFolder;
|
202 |
}
|
203 |
|
204 |
// rootdir is same as INBOX in maildir
|
205 |
if (strpos($rootFolder, 'INBOX' . $this->_delim) === 0) {
|
206 |
+
$rootFolder = substr($rootFolder, 6);
|
207 |
}
|
208 |
$currentFolder = $this->_rootFolder;
|
209 |
$subname = trim($rootFolder, $this->_delim);
|
210 |
while ($currentFolder) {
|
211 |
+
@list($entry, $subname) = @explode($this->_delim, $subname, 2);
|
212 |
+
$currentFolder = $currentFolder->$entry;
|
213 |
+
if (!$subname) {
|
214 |
+
break;
|
215 |
+
}
|
216 |
}
|
217 |
|
218 |
if ($currentFolder->getGlobalName() != rtrim($rootFolder, $this->_delim)) {
|
219 |
+
/**
|
220 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
221 |
+
*/
|
222 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
223 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
224 |
|
225 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("folder $rootFolder not found");
|
226 |
}
|
227 |
return $currentFolder;
|
228 |
}
|
243 |
$folder = $this->getFolders($this->_currentFolder);
|
244 |
|
245 |
try {
|
246 |
+
$this->_openMaildir($this->_rootdir . '.' . $folder->getGlobalName());
|
247 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
248 |
+
// check what went wrong
|
249 |
+
if (!$folder->isSelectable()) {
|
250 |
+
/**
|
251 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
252 |
+
*/
|
253 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
254 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
255 |
+
|
256 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("{$this->_currentFolder} is not selectable", 0, $e);
|
257 |
+
}
|
258 |
+
// seems like file has vanished; rebuilding folder tree - but it's still an exception
|
259 |
+
$this->_buildFolderTree($this->_rootdir);
|
260 |
+
/**
|
261 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
262 |
+
*/
|
263 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
264 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
265 |
+
|
266 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('seems like the maildir has vanished, I\'ve rebuild the ' .
|
267 |
+
'folder tree, search for an other folder and try again', 0, $e);
|
268 |
}
|
269 |
}
|
270 |
|
lib/zend/mail/storage/folder/mbox.php
CHANGED
@@ -82,27 +82,27 @@ class mail_bank_Zend_Mail_Storage_Folder_Mbox extends mail_bank_Zend_Mail_Storag
|
|
82 |
*/
|
83 |
public function __construct($params) {
|
84 |
if (is_array($params)) {
|
85 |
-
|
86 |
}
|
87 |
|
88 |
if (isset($params->filename)) {
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
|
95 |
-
|
96 |
}
|
97 |
|
98 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
|
105 |
-
|
106 |
}
|
107 |
|
108 |
$this->_rootdir = rtrim($params->dirname, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
@@ -127,37 +127,37 @@ class mail_bank_Zend_Mail_Storage_Folder_Mbox extends mail_bank_Zend_Mail_Storag
|
|
127 |
*/
|
128 |
protected function _buildFolderTree($currentDir, $parentFolder = null, $parentGlobalName = '') {
|
129 |
if (!$parentFolder) {
|
130 |
-
|
131 |
-
|
132 |
}
|
133 |
|
134 |
$dh = @opendir($currentDir);
|
135 |
if (!$dh) {
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
|
142 |
-
|
143 |
}
|
144 |
while (($entry = readdir($dh)) !== false) {
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
}
|
162 |
|
163 |
closedir($dh);
|
@@ -172,27 +172,27 @@ class mail_bank_Zend_Mail_Storage_Folder_Mbox extends mail_bank_Zend_Mail_Storag
|
|
172 |
*/
|
173 |
public function getFolders($rootFolder = null) {
|
174 |
if (!$rootFolder) {
|
175 |
-
|
176 |
}
|
177 |
|
178 |
$currentFolder = $this->_rootFolder;
|
179 |
$subname = trim($rootFolder, DIRECTORY_SEPARATOR);
|
180 |
while ($currentFolder) {
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
}
|
187 |
|
188 |
if ($currentFolder->getGlobalName() != DIRECTORY_SEPARATOR . trim($rootFolder, DIRECTORY_SEPARATOR)) {
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
|
195 |
-
|
196 |
}
|
197 |
return $currentFolder;
|
198 |
}
|
@@ -213,28 +213,28 @@ class mail_bank_Zend_Mail_Storage_Folder_Mbox extends mail_bank_Zend_Mail_Storag
|
|
213 |
$folder = $this->getFolders($this->_currentFolder);
|
214 |
|
215 |
try {
|
216 |
-
|
217 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
|
236 |
-
|
237 |
-
|
238 |
}
|
239 |
}
|
240 |
|
82 |
*/
|
83 |
public function __construct($params) {
|
84 |
if (is_array($params)) {
|
85 |
+
$params = (object) $params;
|
86 |
}
|
87 |
|
88 |
if (isset($params->filename)) {
|
89 |
+
/**
|
90 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
91 |
+
*/
|
92 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
93 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
94 |
|
95 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('use Zend_Mail_Storage_Mbox for a single file');
|
96 |
}
|
97 |
|
98 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
99 |
+
/**
|
100 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
101 |
+
*/
|
102 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
103 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
104 |
|
105 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('no valid dirname given in params');
|
106 |
}
|
107 |
|
108 |
$this->_rootdir = rtrim($params->dirname, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
|
127 |
*/
|
128 |
protected function _buildFolderTree($currentDir, $parentFolder = null, $parentGlobalName = '') {
|
129 |
if (!$parentFolder) {
|
130 |
+
$this->_rootFolder = new mail_bank_Zend_Mail_Storage_Folder('/', '/', false);
|
131 |
+
$parentFolder = $this->_rootFolder;
|
132 |
}
|
133 |
|
134 |
$dh = @opendir($currentDir);
|
135 |
if (!$dh) {
|
136 |
+
/**
|
137 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
138 |
+
*/
|
139 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
140 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
141 |
|
142 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("can't read dir $currentDir");
|
143 |
}
|
144 |
while (($entry = readdir($dh)) !== false) {
|
145 |
+
// ignore hidden files for mbox
|
146 |
+
if ($entry[0] == '.') {
|
147 |
+
continue;
|
148 |
+
}
|
149 |
+
$absoluteEntry = $currentDir . $entry;
|
150 |
+
$globalName = $parentGlobalName . DIRECTORY_SEPARATOR . $entry;
|
151 |
+
if (is_file($absoluteEntry) && $this->_isMboxFile($absoluteEntry)) {
|
152 |
+
$parentFolder->$entry = new mail_bank_Zend_Mail_Storage_Folder($entry, $globalName);
|
153 |
+
continue;
|
154 |
+
}
|
155 |
+
if (!is_dir($absoluteEntry) /* || $entry == '.' || $entry == '..' */) {
|
156 |
+
continue;
|
157 |
+
}
|
158 |
+
$folder = new mail_bank_Zend_Mail_Storage_Folder($entry, $globalName, false);
|
159 |
+
$parentFolder->$entry = $folder;
|
160 |
+
$this->_buildFolderTree($absoluteEntry . DIRECTORY_SEPARATOR, $folder, $globalName);
|
161 |
}
|
162 |
|
163 |
closedir($dh);
|
172 |
*/
|
173 |
public function getFolders($rootFolder = null) {
|
174 |
if (!$rootFolder) {
|
175 |
+
return $this->_rootFolder;
|
176 |
}
|
177 |
|
178 |
$currentFolder = $this->_rootFolder;
|
179 |
$subname = trim($rootFolder, DIRECTORY_SEPARATOR);
|
180 |
while ($currentFolder) {
|
181 |
+
@list($entry, $subname) = @explode(DIRECTORY_SEPARATOR, $subname, 2);
|
182 |
+
$currentFolder = $currentFolder->$entry;
|
183 |
+
if (!$subname) {
|
184 |
+
break;
|
185 |
+
}
|
186 |
}
|
187 |
|
188 |
if ($currentFolder->getGlobalName() != DIRECTORY_SEPARATOR . trim($rootFolder, DIRECTORY_SEPARATOR)) {
|
189 |
+
/**
|
190 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
191 |
+
*/
|
192 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
193 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
194 |
|
195 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("folder $rootFolder not found");
|
196 |
}
|
197 |
return $currentFolder;
|
198 |
}
|
213 |
$folder = $this->getFolders($this->_currentFolder);
|
214 |
|
215 |
try {
|
216 |
+
$this->_openMboxFile($this->_rootdir . $folder->getGlobalName());
|
217 |
} catch (mail_bank_Zend_Mail_Storage_Exception $e) {
|
218 |
+
// check what went wrong
|
219 |
+
if (!$folder->isSelectable()) {
|
220 |
+
/**
|
221 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
222 |
+
*/
|
223 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
224 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
225 |
|
226 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("{$this->_currentFolder} is not selectable", 0, $e);
|
227 |
+
}
|
228 |
+
// seems like file has vanished; rebuilding folder tree - but it's still an exception
|
229 |
+
$this->_buildFolderTree($this->_rootdir);
|
230 |
+
/**
|
231 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
232 |
+
*/
|
233 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
234 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
235 |
|
236 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('seems like the mbox file has vanished, I\'ve rebuild the ' .
|
237 |
+
'folder tree, search for an other folder and try again', 0, $e);
|
238 |
}
|
239 |
}
|
240 |
|
lib/zend/mail/storage/maildir.php
CHANGED
@@ -86,27 +86,27 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
86 |
*/
|
87 |
public function countMessages($flags = null) {
|
88 |
if ($flags === null) {
|
89 |
-
|
90 |
}
|
91 |
|
92 |
$count = 0;
|
93 |
if (!is_array($flags)) {
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
}
|
101 |
|
102 |
$flags = array_flip($flags);
|
103 |
foreach ($this->_files as $file) {
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
}
|
111 |
return $count;
|
112 |
}
|
@@ -121,27 +121,27 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
121 |
*/
|
122 |
protected function _getFileData($id, $field = null) {
|
123 |
if (!isset($this->_files[$id - 1])) {
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
|
130 |
-
|
131 |
}
|
132 |
|
133 |
if (!$field) {
|
134 |
-
|
135 |
}
|
136 |
|
137 |
if (!isset($this->_files[$id - 1][$field])) {
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
|
144 |
-
|
145 |
}
|
146 |
|
147 |
return $this->_files[$id - 1][$field];
|
@@ -156,13 +156,13 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
156 |
*/
|
157 |
public function getSize($id = null) {
|
158 |
if ($id !== null) {
|
159 |
-
|
160 |
-
|
161 |
}
|
162 |
|
163 |
$result = array();
|
164 |
foreach ($this->_files as $num => $data) {
|
165 |
-
|
166 |
}
|
167 |
|
168 |
return $result;
|
@@ -178,12 +178,12 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
178 |
public function getMessage($id) {
|
179 |
// TODO that's ugly, would be better to let the message class decide
|
180 |
if (strtolower($this->_messageClass) == 'mail_bank_zend_mail_message_file' || is_subclass_of($this->_messageClass, 'mail_bank_zend_mail_message_file')) {
|
181 |
-
|
182 |
-
|
183 |
}
|
184 |
|
185 |
return new $this->_messageClass(array('handler' => $this, 'id' => $id, 'headers' => $this->getRawHeader($id),
|
186 |
-
|
187 |
}
|
188 |
|
189 |
/*
|
@@ -198,25 +198,25 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
198 |
|
199 |
public function getRawHeader($id, $part = null, $topLines = 0) {
|
200 |
if ($part !== null) {
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
}
|
210 |
|
211 |
$fh = fopen($this->_getFileData($id, 'filename'), 'r');
|
212 |
|
213 |
$content = '';
|
214 |
while (!feof($fh)) {
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
}
|
221 |
|
222 |
fclose($fh);
|
@@ -234,23 +234,23 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
234 |
|
235 |
public function getRawContent($id, $part = null) {
|
236 |
if ($part !== null) {
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
}
|
246 |
|
247 |
$fh = fopen($this->_getFileData($id, 'filename'), 'r');
|
248 |
|
249 |
while (!feof($fh)) {
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
}
|
255 |
|
256 |
$content = stream_get_contents($fh);
|
@@ -268,27 +268,27 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
268 |
*/
|
269 |
public function __construct($params) {
|
270 |
if (is_array($params)) {
|
271 |
-
|
272 |
}
|
273 |
|
274 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
|
281 |
-
|
282 |
}
|
283 |
|
284 |
if (!$this->_isMaildir($params->dirname)) {
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
|
291 |
-
|
292 |
}
|
293 |
|
294 |
$this->_has['top'] = true;
|
@@ -304,10 +304,10 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
304 |
*/
|
305 |
protected function _isMaildir($dirname) {
|
306 |
if (file_exists($dirname . '/new') && !is_dir($dirname . '/new')) {
|
307 |
-
|
308 |
}
|
309 |
if (file_exists($dirname . '/tmp') && !is_dir($dirname . '/tmp')) {
|
310 |
-
|
311 |
}
|
312 |
return is_dir($dirname . '/cur');
|
313 |
}
|
@@ -321,34 +321,34 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
321 |
*/
|
322 |
protected function _openMaildir($dirname) {
|
323 |
if ($this->_files) {
|
324 |
-
|
325 |
}
|
326 |
|
327 |
$dh = @opendir($dirname . '/cur/');
|
328 |
if (!$dh) {
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
|
335 |
-
|
336 |
}
|
337 |
$this->_getMaildirFiles($dh, $dirname . '/cur/');
|
338 |
closedir($dh);
|
339 |
|
340 |
$dh = @opendir($dirname . '/new/');
|
341 |
if ($dh) {
|
342 |
-
|
343 |
-
|
344 |
} else if (file_exists($dirname . '/new/')) {
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
|
351 |
-
|
352 |
}
|
353 |
}
|
354 |
|
@@ -362,38 +362,38 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
362 |
*/
|
363 |
protected function _getMaildirFiles($dh, $dirname, $default_flags = array()) {
|
364 |
while (($entry = readdir($dh)) !== false) {
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
}
|
398 |
}
|
399 |
|
@@ -427,7 +427,7 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
427 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
428 |
*/
|
429 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
430 |
-
|
431 |
|
432 |
throw new mail_bank_Zend_Mail_Storage_Exception('maildir is (currently) read-only');
|
433 |
}
|
@@ -443,12 +443,12 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
443 |
*/
|
444 |
public function getUniqueId($id = null) {
|
445 |
if ($id) {
|
446 |
-
|
447 |
}
|
448 |
|
449 |
$ids = array();
|
450 |
foreach ($this->_files as $num => $file) {
|
451 |
-
|
452 |
}
|
453 |
return $ids;
|
454 |
}
|
@@ -465,16 +465,16 @@ class mail_bank_Zend_Mail_Storage_Maildir extends mail_bank_Zend_Mail_Storage_Ab
|
|
465 |
*/
|
466 |
public function getNumberByUniqueId($id) {
|
467 |
foreach ($this->_files as $num => $file) {
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
475 |
*/
|
476 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
477 |
-
|
478 |
|
479 |
throw new mail_bank_Zend_Mail_Storage_Exception('unique id not found');
|
480 |
}
|
86 |
*/
|
87 |
public function countMessages($flags = null) {
|
88 |
if ($flags === null) {
|
89 |
+
return count($this->_files);
|
90 |
}
|
91 |
|
92 |
$count = 0;
|
93 |
if (!is_array($flags)) {
|
94 |
+
foreach ($this->_files as $file) {
|
95 |
+
if (isset($file['flaglookup'][$flags])) {
|
96 |
+
++$count;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
return $count;
|
100 |
}
|
101 |
|
102 |
$flags = array_flip($flags);
|
103 |
foreach ($this->_files as $file) {
|
104 |
+
foreach ($flags as $flag => $v) {
|
105 |
+
if (!isset($file['flaglookup'][$flag])) {
|
106 |
+
continue 2;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
++$count;
|
110 |
}
|
111 |
return $count;
|
112 |
}
|
121 |
*/
|
122 |
protected function _getFileData($id, $field = null) {
|
123 |
if (!isset($this->_files[$id - 1])) {
|
124 |
+
/**
|
125 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
126 |
+
*/
|
127 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
128 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
129 |
|
130 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('id does not exist');
|
131 |
}
|
132 |
|
133 |
if (!$field) {
|
134 |
+
return $this->_files[$id - 1];
|
135 |
}
|
136 |
|
137 |
if (!isset($this->_files[$id - 1][$field])) {
|
138 |
+
/**
|
139 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
140 |
+
*/
|
141 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
142 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
143 |
|
144 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('field does not exist');
|
145 |
}
|
146 |
|
147 |
return $this->_files[$id - 1][$field];
|
156 |
*/
|
157 |
public function getSize($id = null) {
|
158 |
if ($id !== null) {
|
159 |
+
$filedata = $this->_getFileData($id);
|
160 |
+
return isset($filedata['size']) ? $filedata['size'] : filesize($filedata['filename']);
|
161 |
}
|
162 |
|
163 |
$result = array();
|
164 |
foreach ($this->_files as $num => $data) {
|
165 |
+
$result[$num + 1] = isset($data['size']) ? $data['size'] : filesize($data['filename']);
|
166 |
}
|
167 |
|
168 |
return $result;
|
178 |
public function getMessage($id) {
|
179 |
// TODO that's ugly, would be better to let the message class decide
|
180 |
if (strtolower($this->_messageClass) == 'mail_bank_zend_mail_message_file' || is_subclass_of($this->_messageClass, 'mail_bank_zend_mail_message_file')) {
|
181 |
+
return new $this->_messageClass(array('file' => $this->_getFileData($id, 'filename'),
|
182 |
+
'flags' => $this->_getFileData($id, 'flags')));
|
183 |
}
|
184 |
|
185 |
return new $this->_messageClass(array('handler' => $this, 'id' => $id, 'headers' => $this->getRawHeader($id),
|
186 |
+
'flags' => $this->_getFileData($id, 'flags')));
|
187 |
}
|
188 |
|
189 |
/*
|
198 |
|
199 |
public function getRawHeader($id, $part = null, $topLines = 0) {
|
200 |
if ($part !== null) {
|
201 |
+
// TODO: implement
|
202 |
+
/**
|
203 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
204 |
+
*/
|
205 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
206 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
207 |
+
|
208 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('not implemented');
|
209 |
}
|
210 |
|
211 |
$fh = fopen($this->_getFileData($id, 'filename'), 'r');
|
212 |
|
213 |
$content = '';
|
214 |
while (!feof($fh)) {
|
215 |
+
$line = fgets($fh);
|
216 |
+
if (!trim($line)) {
|
217 |
+
break;
|
218 |
+
}
|
219 |
+
$content .= $line;
|
220 |
}
|
221 |
|
222 |
fclose($fh);
|
234 |
|
235 |
public function getRawContent($id, $part = null) {
|
236 |
if ($part !== null) {
|
237 |
+
// TODO: implement
|
238 |
+
/**
|
239 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
240 |
+
*/
|
241 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
242 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
243 |
+
|
244 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('not implemented');
|
245 |
}
|
246 |
|
247 |
$fh = fopen($this->_getFileData($id, 'filename'), 'r');
|
248 |
|
249 |
while (!feof($fh)) {
|
250 |
+
$line = fgets($fh);
|
251 |
+
if (!trim($line)) {
|
252 |
+
break;
|
253 |
+
}
|
254 |
}
|
255 |
|
256 |
$content = stream_get_contents($fh);
|
268 |
*/
|
269 |
public function __construct($params) {
|
270 |
if (is_array($params)) {
|
271 |
+
$params = (object) $params;
|
272 |
}
|
273 |
|
274 |
if (!isset($params->dirname) || !is_dir($params->dirname)) {
|
275 |
+
/**
|
276 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
277 |
+
*/
|
278 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
279 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
280 |
|
281 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('no valid dirname given in params');
|
282 |
}
|
283 |
|
284 |
if (!$this->_isMaildir($params->dirname)) {
|
285 |
+
/**
|
286 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
287 |
+
*/
|
288 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
289 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
290 |
|
291 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('invalid maildir given');
|
292 |
}
|
293 |
|
294 |
$this->_has['top'] = true;
|
304 |
*/
|
305 |
protected function _isMaildir($dirname) {
|
306 |
if (file_exists($dirname . '/new') && !is_dir($dirname . '/new')) {
|
307 |
+
return false;
|
308 |
}
|
309 |
if (file_exists($dirname . '/tmp') && !is_dir($dirname . '/tmp')) {
|
310 |
+
return false;
|
311 |
}
|
312 |
return is_dir($dirname . '/cur');
|
313 |
}
|
321 |
*/
|
322 |
protected function _openMaildir($dirname) {
|
323 |
if ($this->_files) {
|
324 |
+
$this->close();
|
325 |
}
|
326 |
|
327 |
$dh = @opendir($dirname . '/cur/');
|
328 |
if (!$dh) {
|
329 |
+
/**
|
330 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
331 |
+
*/
|
332 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
333 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
334 |
|
335 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('cannot open maildir');
|
336 |
}
|
337 |
$this->_getMaildirFiles($dh, $dirname . '/cur/');
|
338 |
closedir($dh);
|
339 |
|
340 |
$dh = @opendir($dirname . '/new/');
|
341 |
if ($dh) {
|
342 |
+
$this->_getMaildirFiles($dh, $dirname . '/new/', array(mail_bank_Zend_Mail_Storage::FLAG_RECENT));
|
343 |
+
closedir($dh);
|
344 |
} else if (file_exists($dirname . '/new/')) {
|
345 |
+
/**
|
346 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
347 |
+
*/
|
348 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
349 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
350 |
|
351 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('cannot read recent mails in maildir');
|
352 |
}
|
353 |
}
|
354 |
|
362 |
*/
|
363 |
protected function _getMaildirFiles($dh, $dirname, $default_flags = array()) {
|
364 |
while (($entry = readdir($dh)) !== false) {
|
365 |
+
if ($entry[0] == '.' || !is_file($dirname . $entry)) {
|
366 |
+
continue;
|
367 |
+
}
|
368 |
+
|
369 |
+
@list($uniq, $info) = explode(':', $entry, 2);
|
370 |
+
@list(, $size) = explode(',', $uniq, 2);
|
371 |
+
if ($size && $size[0] == 'S' && $size[1] == '=') {
|
372 |
+
$size = substr($size, 2);
|
373 |
+
}
|
374 |
+
if (!ctype_digit($size)) {
|
375 |
+
$size = null;
|
376 |
+
}
|
377 |
+
@list($version, $flags) = explode(',', $info, 2);
|
378 |
+
if ($version != 2) {
|
379 |
+
$flags = '';
|
380 |
+
}
|
381 |
+
|
382 |
+
$named_flags = $default_flags;
|
383 |
+
$length = strlen($flags);
|
384 |
+
for ($i = 0; $i < $length; ++$i) {
|
385 |
+
$flag = $flags[$i];
|
386 |
+
$named_flags[$flag] = isset(self::$_knownFlags[$flag]) ? self::$_knownFlags[$flag] : $flag;
|
387 |
+
}
|
388 |
+
|
389 |
+
$data = array('uniq' => $uniq,
|
390 |
+
'flags' => $named_flags,
|
391 |
+
'flaglookup' => array_flip($named_flags),
|
392 |
+
'filename' => $dirname . $entry);
|
393 |
+
if ($size !== null) {
|
394 |
+
$data['size'] = (int) $size;
|
395 |
+
}
|
396 |
+
$this->_files[] = $data;
|
397 |
}
|
398 |
}
|
399 |
|
427 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
428 |
*/
|
429 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
430 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
431 |
|
432 |
throw new mail_bank_Zend_Mail_Storage_Exception('maildir is (currently) read-only');
|
433 |
}
|
443 |
*/
|
444 |
public function getUniqueId($id = null) {
|
445 |
if ($id) {
|
446 |
+
return $this->_getFileData($id, 'uniq');
|
447 |
}
|
448 |
|
449 |
$ids = array();
|
450 |
foreach ($this->_files as $num => $file) {
|
451 |
+
$ids[$num + 1] = $file['uniq'];
|
452 |
}
|
453 |
return $ids;
|
454 |
}
|
465 |
*/
|
466 |
public function getNumberByUniqueId($id) {
|
467 |
foreach ($this->_files as $num => $file) {
|
468 |
+
if ($file['uniq'] == $id) {
|
469 |
+
return $num + 1;
|
470 |
+
}
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
475 |
*/
|
476 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
477 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
478 |
|
479 |
throw new mail_bank_Zend_Mail_Storage_Exception('unique id not found');
|
480 |
}
|
lib/zend/mail/storage/mbox.php
CHANGED
@@ -99,13 +99,13 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
99 |
*/
|
100 |
public function getSize($id = 0) {
|
101 |
if ($id) {
|
102 |
-
|
103 |
-
|
104 |
}
|
105 |
|
106 |
$result = array();
|
107 |
foreach ($this->_positions as $num => $pos) {
|
108 |
-
|
109 |
}
|
110 |
|
111 |
return $result;
|
@@ -120,13 +120,13 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
120 |
*/
|
121 |
protected function _getPos($id) {
|
122 |
if (!isset($this->_positions[$id - 1])) {
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
|
129 |
-
|
130 |
}
|
131 |
|
132 |
return $this->_positions[$id - 1];
|
@@ -142,10 +142,10 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
142 |
public function getMessage($id) {
|
143 |
// TODO that's ugly, would be better to let the message class decide
|
144 |
if (strtolower($this->_messageClass) == 'mail_bank_zend_mail_message_file' || is_subclass_of($this->_messageClass, 'mail_bank_zend_mail_message_file')) {
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
}
|
150 |
|
151 |
$bodyLines = 0; // TODO: need a way to change that
|
@@ -153,10 +153,10 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
153 |
$message = $this->getRawHeader($id);
|
154 |
// file pointer is after headers now
|
155 |
if ($bodyLines) {
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
}
|
161 |
|
162 |
return new $this->_messageClass(array('handler' => $this, 'id' => $id, 'headers' => $message));
|
@@ -175,14 +175,14 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
175 |
|
176 |
public function getRawHeader($id, $part = null, $topLines = 0) {
|
177 |
if ($part !== null) {
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
}
|
187 |
$messagePos = $this->_getPos($id);
|
188 |
// TODO: toplines
|
@@ -201,14 +201,14 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
201 |
|
202 |
public function getRawContent($id, $part = null) {
|
203 |
if ($part !== null) {
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
}
|
213 |
$messagePos = $this->_getPos($id);
|
214 |
return stream_get_contents($this->_fh, $messagePos['end'] - $messagePos['separator'], $messagePos['separator']);
|
@@ -224,17 +224,17 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
224 |
*/
|
225 |
public function __construct($params) {
|
226 |
if (is_array($params)) {
|
227 |
-
|
228 |
}
|
229 |
|
230 |
if (!isset($params->filename) /* || mail_bank_Zend_Loader::isReadable($params['filename']) */) {
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
|
237 |
-
|
238 |
}
|
239 |
|
240 |
$this->_openMboxFile($params->filename);
|
@@ -253,23 +253,23 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
253 |
*/
|
254 |
protected function _isMboxFile($file, $fileIsString = true) {
|
255 |
if ($fileIsString) {
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
} else {
|
261 |
-
|
262 |
}
|
263 |
|
264 |
$result = false;
|
265 |
|
266 |
$line = fgets($file);
|
267 |
if (strpos($line, 'From ') === 0) {
|
268 |
-
|
269 |
}
|
270 |
|
271 |
if ($fileIsString) {
|
272 |
-
|
273 |
}
|
274 |
|
275 |
return $result;
|
@@ -284,51 +284,51 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
284 |
*/
|
285 |
protected function _openMboxFile($filename) {
|
286 |
if ($this->_fh) {
|
287 |
-
|
288 |
}
|
289 |
|
290 |
$this->_fh = @fopen($filename, 'r');
|
291 |
if (!$this->_fh) {
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
|
298 |
-
|
299 |
}
|
300 |
$this->_filename = $filename;
|
301 |
$this->_filemtime = filemtime($this->_filename);
|
302 |
|
303 |
if (!$this->_isMboxFile($this->_fh, false)) {
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
}
|
313 |
|
314 |
$messagePos = array('start' => ftell($this->_fh), 'separator' => 0, 'end' => 0);
|
315 |
while (($line = fgets($this->_fh)) !== false) {
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
}
|
328 |
|
329 |
$messagePos['end'] = ftell($this->_fh);
|
330 |
if (!$messagePos['separator']) {
|
331 |
-
|
332 |
}
|
333 |
$this->_positions[] = $messagePos;
|
334 |
}
|
@@ -364,7 +364,7 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
364 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
365 |
*/
|
366 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
367 |
-
|
368 |
|
369 |
throw new mail_bank_Zend_Mail_Storage_Exception('mbox is read-only');
|
370 |
}
|
@@ -382,9 +382,9 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
382 |
*/
|
383 |
public function getUniqueId($id = null) {
|
384 |
if ($id) {
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
}
|
389 |
|
390 |
$range = range(1, $this->countMessages());
|
@@ -429,19 +429,19 @@ class mail_bank_Zend_Mail_Storage_Mbox extends mail_bank_Zend_Mail_Storage_Abstr
|
|
429 |
*/
|
430 |
public function __wakeup() {
|
431 |
if ($this->_filemtime != @filemtime($this->_filename)) {
|
432 |
-
|
433 |
-
|
434 |
} else {
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
}
|
446 |
}
|
447 |
|
99 |
*/
|
100 |
public function getSize($id = 0) {
|
101 |
if ($id) {
|
102 |
+
$pos = $this->_positions[$id - 1];
|
103 |
+
return $pos['end'] - $pos['start'];
|
104 |
}
|
105 |
|
106 |
$result = array();
|
107 |
foreach ($this->_positions as $num => $pos) {
|
108 |
+
$result[$num + 1] = $pos['end'] - $pos['start'];
|
109 |
}
|
110 |
|
111 |
return $result;
|
120 |
*/
|
121 |
protected function _getPos($id) {
|
122 |
if (!isset($this->_positions[$id - 1])) {
|
123 |
+
/**
|
124 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
125 |
+
*/
|
126 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
127 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
128 |
|
129 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('id does not exist');
|
130 |
}
|
131 |
|
132 |
return $this->_positions[$id - 1];
|
142 |
public function getMessage($id) {
|
143 |
// TODO that's ugly, would be better to let the message class decide
|
144 |
if (strtolower($this->_messageClass) == 'mail_bank_zend_mail_message_file' || is_subclass_of($this->_messageClass, 'mail_bank_zend_mail_message_file')) {
|
145 |
+
// TODO top/body lines
|
146 |
+
$messagePos = $this->_getPos($id);
|
147 |
+
return new $this->_messageClass(array('file' => $this->_fh, 'startPos' => $messagePos['start'],
|
148 |
+
'endPos' => $messagePos['end']));
|
149 |
}
|
150 |
|
151 |
$bodyLines = 0; // TODO: need a way to change that
|
153 |
$message = $this->getRawHeader($id);
|
154 |
// file pointer is after headers now
|
155 |
if ($bodyLines) {
|
156 |
+
$message .= "\n";
|
157 |
+
while ($bodyLines-- && ftell($this->_fh) < $this->_positions[$id - 1]['end']) {
|
158 |
+
$message .= fgets($this->_fh);
|
159 |
+
}
|
160 |
}
|
161 |
|
162 |
return new $this->_messageClass(array('handler' => $this, 'id' => $id, 'headers' => $message));
|
175 |
|
176 |
public function getRawHeader($id, $part = null, $topLines = 0) {
|
177 |
if ($part !== null) {
|
178 |
+
// TODO: implement
|
179 |
+
/**
|
180 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
181 |
+
*/
|
182 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
183 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
184 |
+
|
185 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('not implemented');
|
186 |
}
|
187 |
$messagePos = $this->_getPos($id);
|
188 |
// TODO: toplines
|
201 |
|
202 |
public function getRawContent($id, $part = null) {
|
203 |
if ($part !== null) {
|
204 |
+
// TODO: implement
|
205 |
+
/**
|
206 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
207 |
+
*/
|
208 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
209 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
210 |
+
|
211 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('not implemented');
|
212 |
}
|
213 |
$messagePos = $this->_getPos($id);
|
214 |
return stream_get_contents($this->_fh, $messagePos['end'] - $messagePos['separator'], $messagePos['separator']);
|
224 |
*/
|
225 |
public function __construct($params) {
|
226 |
if (is_array($params)) {
|
227 |
+
$params = (object) $params;
|
228 |
}
|
229 |
|
230 |
if (!isset($params->filename) /* || mail_bank_Zend_Loader::isReadable($params['filename']) */) {
|
231 |
+
/**
|
232 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
233 |
+
*/
|
234 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
235 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
236 |
|
237 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('no valid filename given in params');
|
238 |
}
|
239 |
|
240 |
$this->_openMboxFile($params->filename);
|
253 |
*/
|
254 |
protected function _isMboxFile($file, $fileIsString = true) {
|
255 |
if ($fileIsString) {
|
256 |
+
$file = @fopen($file, 'r');
|
257 |
+
if (!$file) {
|
258 |
+
return false;
|
259 |
+
}
|
260 |
} else {
|
261 |
+
fseek($file, 0);
|
262 |
}
|
263 |
|
264 |
$result = false;
|
265 |
|
266 |
$line = fgets($file);
|
267 |
if (strpos($line, 'From ') === 0) {
|
268 |
+
$result = true;
|
269 |
}
|
270 |
|
271 |
if ($fileIsString) {
|
272 |
+
@fclose($file);
|
273 |
}
|
274 |
|
275 |
return $result;
|
284 |
*/
|
285 |
protected function _openMboxFile($filename) {
|
286 |
if ($this->_fh) {
|
287 |
+
$this->close();
|
288 |
}
|
289 |
|
290 |
$this->_fh = @fopen($filename, 'r');
|
291 |
if (!$this->_fh) {
|
292 |
+
/**
|
293 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
294 |
+
*/
|
295 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
296 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
297 |
|
298 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('cannot open mbox file');
|
299 |
}
|
300 |
$this->_filename = $filename;
|
301 |
$this->_filemtime = filemtime($this->_filename);
|
302 |
|
303 |
if (!$this->_isMboxFile($this->_fh, false)) {
|
304 |
+
@fclose($this->_fh);
|
305 |
+
/**
|
306 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
307 |
+
*/
|
308 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
309 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
310 |
+
|
311 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('file is not a valid mbox format');
|
312 |
}
|
313 |
|
314 |
$messagePos = array('start' => ftell($this->_fh), 'separator' => 0, 'end' => 0);
|
315 |
while (($line = fgets($this->_fh)) !== false) {
|
316 |
+
if (strpos($line, 'From ') === 0) {
|
317 |
+
$messagePos['end'] = ftell($this->_fh) - strlen($line) - 2; // + newline
|
318 |
+
if (!$messagePos['separator']) {
|
319 |
+
$messagePos['separator'] = $messagePos['end'];
|
320 |
+
}
|
321 |
+
$this->_positions[] = $messagePos;
|
322 |
+
$messagePos = array('start' => ftell($this->_fh), 'separator' => 0, 'end' => 0);
|
323 |
+
}
|
324 |
+
if (!$messagePos['separator'] && !trim($line)) {
|
325 |
+
$messagePos['separator'] = ftell($this->_fh);
|
326 |
+
}
|
327 |
}
|
328 |
|
329 |
$messagePos['end'] = ftell($this->_fh);
|
330 |
if (!$messagePos['separator']) {
|
331 |
+
$messagePos['separator'] = $messagePos['end'];
|
332 |
}
|
333 |
$this->_positions[] = $messagePos;
|
334 |
}
|
364 |
* @see mail_bank_Zend_Mail_Storage_Exception
|
365 |
*/
|
366 |
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
367 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
368 |
|
369 |
throw new mail_bank_Zend_Mail_Storage_Exception('mbox is read-only');
|
370 |
}
|
382 |
*/
|
383 |
public function getUniqueId($id = null) {
|
384 |
if ($id) {
|
385 |
+
// check if id exists
|
386 |
+
$this->_getPos($id);
|
387 |
+
return $id;
|
388 |
}
|
389 |
|
390 |
$range = range(1, $this->countMessages());
|
429 |
*/
|
430 |
public function __wakeup() {
|
431 |
if ($this->_filemtime != @filemtime($this->_filename)) {
|
432 |
+
$this->close();
|
433 |
+
$this->_openMboxFile($this->_filename);
|
434 |
} else {
|
435 |
+
$this->_fh = @fopen($this->_filename, 'r');
|
436 |
+
if (!$this->_fh) {
|
437 |
+
/**
|
438 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
439 |
+
*/
|
440 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
441 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
442 |
+
|
443 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('cannot open mbox file');
|
444 |
+
}
|
445 |
}
|
446 |
}
|
447 |
|
lib/zend/mail/storage/writable/maildir.php
CHANGED
@@ -62,47 +62,47 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
62 |
*/
|
63 |
public static function initMaildir($dir) {
|
64 |
if (file_exists($dir)) {
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
|
72 |
-
|
73 |
-
|
74 |
}
|
75 |
else {
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
}
|
92 |
|
93 |
foreach (array('cur', 'tmp', 'new') as $subdir) {
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
}
|
107 |
}
|
108 |
|
@@ -116,11 +116,11 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
116 |
*/
|
117 |
public function __construct($params) {
|
118 |
if (is_array($params)) {
|
119 |
-
|
120 |
}
|
121 |
|
122 |
if (!empty($params->create) && isset($params->dirname) && !file_exists($params->dirname . DIRECTORY_SEPARATOR . 'cur')) {
|
123 |
-
|
124 |
}
|
125 |
|
126 |
parent::__construct($params);
|
@@ -139,11 +139,11 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
139 |
*/
|
140 |
public function createFolder($name, $parentFolder = null) {
|
141 |
if ($parentFolder instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
142 |
-
|
143 |
} else if ($parentFolder != null) {
|
144 |
-
|
145 |
} else {
|
146 |
-
|
147 |
}
|
148 |
|
149 |
$folder = trim($folder, $this->_delim);
|
@@ -151,68 +151,68 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
151 |
// first we check if we try to create a folder that does exist
|
152 |
$exists = null;
|
153 |
try {
|
154 |
-
|
155 |
} catch (mail_bank_Zend_Mail_Exception $e) {
|
156 |
-
|
157 |
}
|
158 |
if ($exists) {
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
|
165 |
-
|
166 |
}
|
167 |
|
168 |
if (strpos($folder, $this->_delim . $this->_delim) !== false) {
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
|
175 |
-
|
176 |
}
|
177 |
|
178 |
if (strpos($folder, 'INBOX' . $this->_delim) === 0) {
|
179 |
-
|
180 |
}
|
181 |
|
182 |
$fulldir = $this->_rootdir . '.' . $folder;
|
183 |
|
184 |
// check if we got tricked and would create a dir outside of the rootdir or not as direct child
|
185 |
if (strpos($folder, DIRECTORY_SEPARATOR) !== false || strpos($folder, '/') !== false || dirname($fulldir) . DIRECTORY_SEPARATOR != $this->_rootdir) {
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
|
192 |
-
|
193 |
}
|
194 |
|
195 |
// has a parent folder?
|
196 |
$parent = null;
|
197 |
if (strpos($folder, $this->_delim)) {
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
}
|
207 |
|
208 |
if (!@mkdir($fulldir) || !@mkdir($fulldir . DIRECTORY_SEPARATOR . 'cur')) {
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
|
215 |
-
|
216 |
}
|
217 |
|
218 |
mkdir($fulldir . DIRECTORY_SEPARATOR . 'new');
|
@@ -239,98 +239,98 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
239 |
// directory name and it should be ignored as long as other processes obey the standard.
|
240 |
|
241 |
if ($name instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
242 |
-
|
243 |
}
|
244 |
|
245 |
$name = trim($name, $this->_delim);
|
246 |
if (strpos($name, 'INBOX' . $this->_delim) === 0) {
|
247 |
-
|
248 |
}
|
249 |
|
250 |
// check if folder exists and has no children
|
251 |
if (!$this->getFolders($name)->isLeaf()) {
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
|
258 |
-
|
259 |
}
|
260 |
|
261 |
if ($name == 'INBOX' || $name == DIRECTORY_SEPARATOR || $name == '/') {
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
|
268 |
-
|
269 |
}
|
270 |
|
271 |
if ($name == $this->getCurrentFolder()) {
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
|
278 |
-
|
279 |
}
|
280 |
|
281 |
foreach (array('tmp', 'new', 'cur', '.') as $subdir) {
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
}
|
323 |
|
324 |
if (!rmdir($this->_rootdir . '.' . $name)) {
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
|
333 |
-
|
334 |
}
|
335 |
|
336 |
$parent = strpos($name, $this->_delim) ? substr($name, 0, strrpos($name, $this->_delim)) : null;
|
@@ -352,76 +352,76 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
352 |
// TODO: This is also not atomar and has similar problems as removeFolder()
|
353 |
|
354 |
if ($oldName instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
355 |
-
|
356 |
}
|
357 |
|
358 |
$oldName = trim($oldName, $this->_delim);
|
359 |
if (strpos($oldName, 'INBOX' . $this->_delim) === 0) {
|
360 |
-
|
361 |
}
|
362 |
|
363 |
$newName = trim($newName, $this->_delim);
|
364 |
if (strpos($newName, 'INBOX' . $this->_delim) === 0) {
|
365 |
-
|
366 |
}
|
367 |
|
368 |
if (strpos($newName, $oldName . $this->_delim) === 0) {
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
|
375 |
-
|
376 |
}
|
377 |
|
378 |
// check if folder exists and has no children
|
379 |
$folder = $this->getFolders($oldName);
|
380 |
|
381 |
if ($oldName == 'INBOX' || $oldName == DIRECTORY_SEPARATOR || $oldName == '/') {
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
|
388 |
-
|
389 |
}
|
390 |
|
391 |
if ($oldName == $this->getCurrentFolder()) {
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
|
398 |
-
|
399 |
}
|
400 |
|
401 |
$newdir = $this->createFolder($newName);
|
402 |
|
403 |
if (!$folder->isLeaf()) {
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
}
|
408 |
|
409 |
$olddir = $this->_rootdir . '.' . $folder;
|
410 |
foreach (array('tmp', 'new', 'cur') as $subdir) {
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
}
|
426 |
// create a dummy if removing fails - otherwise we can't read it next time
|
427 |
mkdir($olddir . DIRECTORY_SEPARATOR . 'cur');
|
@@ -463,20 +463,20 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
463 |
*/
|
464 |
protected function _createTmpFile($folder = 'INBOX') {
|
465 |
if ($folder == 'INBOX') {
|
466 |
-
|
467 |
} else {
|
468 |
-
|
469 |
}
|
470 |
if (!file_exists($tmpdir)) {
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
|
478 |
-
|
479 |
-
|
480 |
}
|
481 |
|
482 |
// we should retry to create a unique id if a file with the same name exists
|
@@ -486,34 +486,34 @@ class mail_bank_Zend_Mail_Storage_Writable_Maildir extends mail_bank_Zend_Mail_S
|
|
486 |
// normally we should have a valid unique name after the first try, we're just following the "standard" here
|
487 |
$max_tries = 5;
|
488 |
for ($i = 0; $i < $max_tries; ++$i) {
|
489 |
-
$uniq = $this->_createUniqueId();
|
490 |
-
if (!file_exists($tmpdir . $uniq)) {
|
491 |
-
// here is the race condition! - as defined in the standard
|
492 |
-
// to avoid having a long time between stat()ing the file and creating it we're opening it here
|
493 |
-
// to mark the filename as taken
|
494 |
-
$fh = fopen($tmpdir . $uniq, 'w');
|
495 |
-
if (!$fh) {
|
496 |
-
/**
|
497 |
-
* @see mail_bank_Zend_Mail_Storage_Exception
|
62 |
*/
|
63 |
public static function initMaildir($dir) {
|
64 |
if (file_exists($dir)) {
|
65 |
+
if (!is_dir($dir)) {
|
66 |
+
/**
|
67 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
68 |
+
*/
|
69 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
70 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
71 |
|
72 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('maildir must be a directory if already exists');
|
73 |
+
}
|
74 |
}
|
75 |
else {
|
76 |
+
if (!mkdir($dir)) {
|
77 |
+
/**
|
78 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
79 |
+
*/
|
80 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
81 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
82 |
+
$dir = dirname($dir);
|
83 |
+
if (!file_exists($dir)) {
|
84 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("parent $dir not found");
|
85 |
+
} else if (!is_dir($dir)) {
|
86 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("parent $dir not a directory");
|
87 |
+
} else {
|
88 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('cannot create maildir');
|
89 |
+
}
|
90 |
+
}
|
91 |
}
|
92 |
|
93 |
foreach (array('cur', 'tmp', 'new') as $subdir) {
|
94 |
+
if (!@mkdir($dir . DIRECTORY_SEPARATOR . $subdir)) {
|
95 |
+
// ignore if dir exists (i.e. was already valid maildir or two processes try to create one)
|
96 |
+
if (!file_exists($dir . DIRECTORY_SEPARATOR . $subdir)) {
|
97 |
+
/**
|
98 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
99 |
+
*/
|
100 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
101 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
102 |
+
|
103 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('could not create subdir ' . $subdir);
|
104 |
+
}
|
105 |
+
}
|
106 |
}
|
107 |
}
|
108 |
|
116 |
*/
|
117 |
public function __construct($params) {
|
118 |
if (is_array($params)) {
|
119 |
+
$params = (object) $params;
|
120 |
}
|
121 |
|
122 |
if (!empty($params->create) && isset($params->dirname) && !file_exists($params->dirname . DIRECTORY_SEPARATOR . 'cur')) {
|
123 |
+
self::initMaildir($params->dirname);
|
124 |
}
|
125 |
|
126 |
parent::__construct($params);
|
139 |
*/
|
140 |
public function createFolder($name, $parentFolder = null) {
|
141 |
if ($parentFolder instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
142 |
+
$folder = $parentFolder->getGlobalName() . $this->_delim . $name;
|
143 |
} else if ($parentFolder != null) {
|
144 |
+
$folder = rtrim($parentFolder, $this->_delim) . $this->_delim . $name;
|
145 |
} else {
|
146 |
+
$folder = $name;
|
147 |
}
|
148 |
|
149 |
$folder = trim($folder, $this->_delim);
|
151 |
// first we check if we try to create a folder that does exist
|
152 |
$exists = null;
|
153 |
try {
|
154 |
+
$exists = $this->getFolders($folder);
|
155 |
} catch (mail_bank_Zend_Mail_Exception $e) {
|
156 |
+
// ok
|
157 |
}
|
158 |
if ($exists) {
|
159 |
+
/**
|
160 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
161 |
+
*/
|
162 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
163 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
164 |
|
165 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('folder already exists');
|
166 |
}
|
167 |
|
168 |
if (strpos($folder, $this->_delim . $this->_delim) !== false) {
|
169 |
+
/**
|
170 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
171 |
+
*/
|
172 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
173 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
174 |
|
175 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('invalid name - folder parts may not be empty');
|
176 |
}
|
177 |
|
178 |
if (strpos($folder, 'INBOX' . $this->_delim) === 0) {
|
179 |
+
$folder = substr($folder, 6);
|
180 |
}
|
181 |
|
182 |
$fulldir = $this->_rootdir . '.' . $folder;
|
183 |
|
184 |
// check if we got tricked and would create a dir outside of the rootdir or not as direct child
|
185 |
if (strpos($folder, DIRECTORY_SEPARATOR) !== false || strpos($folder, '/') !== false || dirname($fulldir) . DIRECTORY_SEPARATOR != $this->_rootdir) {
|
186 |
+
/**
|
187 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
188 |
+
*/
|
189 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
190 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
191 |
|
192 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('invalid name - no directory seprator allowed in folder name');
|
193 |
}
|
194 |
|
195 |
// has a parent folder?
|
196 |
$parent = null;
|
197 |
if (strpos($folder, $this->_delim)) {
|
198 |
+
// let's see if the parent folder exists
|
199 |
+
$parent = substr($folder, 0, strrpos($folder, $this->_delim));
|
200 |
+
try {
|
201 |
+
$this->getFolders($parent);
|
202 |
+
} catch (mail_bank_Zend_Mail_Exception $e) {
|
203 |
+
// does not - create parent folder
|
204 |
+
$this->createFolder($parent);
|
205 |
+
}
|
206 |
}
|
207 |
|
208 |
if (!@mkdir($fulldir) || !@mkdir($fulldir . DIRECTORY_SEPARATOR . 'cur')) {
|
209 |
+
/**
|
210 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
211 |
+
*/
|
212 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
213 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
214 |
|
215 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('error while creating new folder, may be created incompletly');
|
216 |
}
|
217 |
|
218 |
mkdir($fulldir . DIRECTORY_SEPARATOR . 'new');
|
239 |
// directory name and it should be ignored as long as other processes obey the standard.
|
240 |
|
241 |
if ($name instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
242 |
+
$name = $name->getGlobalName();
|
243 |
}
|
244 |
|
245 |
$name = trim($name, $this->_delim);
|
246 |
if (strpos($name, 'INBOX' . $this->_delim) === 0) {
|
247 |
+
$name = substr($name, 6);
|
248 |
}
|
249 |
|
250 |
// check if folder exists and has no children
|
251 |
if (!$this->getFolders($name)->isLeaf()) {
|
252 |
+
/**
|
253 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
254 |
+
*/
|
255 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
256 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
257 |
|
258 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('delete children first');
|
259 |
}
|
260 |
|
261 |
if ($name == 'INBOX' || $name == DIRECTORY_SEPARATOR || $name == '/') {
|
262 |
+
/**
|
263 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
264 |
+
*/
|
265 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
266 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
267 |
|
268 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('wont delete INBOX');
|
269 |
}
|
270 |
|
271 |
if ($name == $this->getCurrentFolder()) {
|
272 |
+
/**
|
273 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
274 |
+
*/
|
275 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
276 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
277 |
|
278 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('wont delete selected folder');
|
279 |
}
|
280 |
|
281 |
foreach (array('tmp', 'new', 'cur', '.') as $subdir) {
|
282 |
+
$dir = $this->_rootdir . '.' . $name . DIRECTORY_SEPARATOR . $subdir;
|
283 |
+
if (!file_exists($dir)) {
|
284 |
+
continue;
|
285 |
+
}
|
286 |
+
$dh = opendir($dir);
|
287 |
+
if (!$dh) {
|
288 |
+
/**
|
289 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
290 |
+
*/
|
291 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
292 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
293 |
+
|
294 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("error opening $subdir");
|
295 |
+
}
|
296 |
+
while (($entry = readdir($dh)) !== false) {
|
297 |
+
if ($entry == '.' || $entry == '..') {
|
298 |
+
continue;
|
299 |
+
}
|
300 |
+
if (!unlink($dir . DIRECTORY_SEPARATOR . $entry)) {
|
301 |
+
/**
|
302 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
303 |
+
*/
|
304 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
305 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
306 |
+
|
307 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("error cleaning $subdir");
|
308 |
+
}
|
309 |
+
}
|
310 |
+
closedir($dh);
|
311 |
+
if ($subdir !== '.') {
|
312 |
+
if (!rmdir($dir)) {
|
313 |
+
/**
|
314 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
315 |
+
*/
|
316 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
317 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
318 |
+
|
319 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("error removing $subdir");
|
320 |
+
}
|
321 |
+
}
|
322 |
}
|
323 |
|
324 |
if (!rmdir($this->_rootdir . '.' . $name)) {
|
325 |
+
// at least we should try to make it a valid maildir again
|
326 |
+
mkdir($this->_rootdir . '.' . $name . DIRECTORY_SEPARATOR . 'cur');
|
327 |
+
/**
|
328 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
329 |
+
*/
|
330 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
331 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
332 |
|
333 |
+
throw new mail_bank_Zend_Mail_Storage_Exception("error removing maindir");
|
334 |
}
|
335 |
|
336 |
$parent = strpos($name, $this->_delim) ? substr($name, 0, strrpos($name, $this->_delim)) : null;
|
352 |
// TODO: This is also not atomar and has similar problems as removeFolder()
|
353 |
|
354 |
if ($oldName instanceof mail_bank_Zend_Mail_Storage_Folder) {
|
355 |
+
$oldName = $oldName->getGlobalName();
|
356 |
}
|
357 |
|
358 |
$oldName = trim($oldName, $this->_delim);
|
359 |
if (strpos($oldName, 'INBOX' . $this->_delim) === 0) {
|
360 |
+
$oldName = substr($oldName, 6);
|
361 |
}
|
362 |
|
363 |
$newName = trim($newName, $this->_delim);
|
364 |
if (strpos($newName, 'INBOX' . $this->_delim) === 0) {
|
365 |
+
$newName = substr($newName, 6);
|
366 |
}
|
367 |
|
368 |
if (strpos($newName, $oldName . $this->_delim) === 0) {
|
369 |
+
/**
|
370 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
371 |
+
*/
|
372 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
373 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
374 |
|
375 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('new folder cannot be a child of old folder');
|
376 |
}
|
377 |
|
378 |
// check if folder exists and has no children
|
379 |
$folder = $this->getFolders($oldName);
|
380 |
|
381 |
if ($oldName == 'INBOX' || $oldName == DIRECTORY_SEPARATOR || $oldName == '/') {
|
382 |
+
/**
|
383 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
384 |
+
*/
|
385 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
386 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
387 |
|
388 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('wont rename INBOX');
|
389 |
}
|
390 |
|
391 |
if ($oldName == $this->getCurrentFolder()) {
|
392 |
+
/**
|
393 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
394 |
+
*/
|
395 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
396 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
397 |
|
398 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('wont rename selected folder');
|
399 |
}
|
400 |
|
401 |
$newdir = $this->createFolder($newName);
|
402 |
|
403 |
if (!$folder->isLeaf()) {
|
404 |
+
foreach ($folder as $k => $v) {
|
405 |
+
$this->renameFolder($v->getGlobalName(), $newName . $this->_delim . $k);
|
406 |
+
}
|
407 |
}
|
408 |
|
409 |
$olddir = $this->_rootdir . '.' . $folder;
|
410 |
foreach (array('tmp', 'new', 'cur') as $subdir) {
|
411 |
+
$subdir = DIRECTORY_SEPARATOR . $subdir;
|
412 |
+
if (!file_exists($olddir . $subdir)) {
|
413 |
+
continue;
|
414 |
+
}
|
415 |
+
// using copy or moving files would be even better - but also much slower
|
416 |
+
if (!rename($olddir . $subdir, $newdir . $subdir)) {
|
417 |
+
/**
|
418 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
419 |
+
*/
|
420 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
421 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
422 |
+
|
423 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('error while moving ' . $subdir);
|
424 |
+
}
|
425 |
}
|
426 |
// create a dummy if removing fails - otherwise we can't read it next time
|
427 |
mkdir($olddir . DIRECTORY_SEPARATOR . 'cur');
|
463 |
*/
|
464 |
protected function _createTmpFile($folder = 'INBOX') {
|
465 |
if ($folder == 'INBOX') {
|
466 |
+
$tmpdir = $this->_rootdir . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
|
467 |
} else {
|
468 |
+
$tmpdir = $this->_rootdir . '.' . $folder . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
|
469 |
}
|
470 |
if (!file_exists($tmpdir)) {
|
471 |
+
if (!mkdir($tmpdir)) {
|
472 |
+
/**
|
473 |
+
* @see mail_bank_Zend_Mail_Storage_Exception
|
474 |
+
*/
|
475 |
+
if (file_exists(MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php'))
|
476 |
+
require_once MAIL_BANK_DIR_PATH . 'lib/zend/mail/storage/exception.php';
|
477 |
|
478 |
+
throw new mail_bank_Zend_Mail_Storage_Exception('problems creating tmp dir');
|
479 |
+
}
|
480 |
}
|
481 |
|
482 |
// we should retry to create a unique id if a file with the same name exists
|
486 |
// normally we should have a valid unique name after the first try, we're just following the "standard" here
|
487 |
$max_tries = 5;
|
488 |
for ($i = 0; $i < $max_tries; ++$i) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|