pax_global_header00006660000000000000000000000064127616575630014534gustar00rootroot0000000000000052 comment=d94b7c096e184be3e76802e77562a0e5088e119d ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/000077500000000000000000000000001276165756300222035ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/AUTHORS000066400000000000000000000001731276165756300232540ustar00rootroot00000000000000Nalin.x.GNU Samuel Thibault Sathyaseelan.K ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/COPYING000066400000000000000000000431031276165756300232370ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/ChangeLog000066400000000000000000000000001276165756300237430ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/Makefile.am000066400000000000000000000025121276165756300242370ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. SUBDIRS = \ engine \ braille \ preferences\ abbreviation-editor\ language-editor\ icons \ m4 \ $(NULL) ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ autogen.sh \ @PACKAGE_NAME@.spec.in \ $(NULL) noinst_DIST = \ $(NULL) DISTCLEANFILES = \ $(NULL) rpm: dist @PACKAGE_NAME@.spec rpmbuild -bb \ --define "_sourcedir `pwd`" \ --define "_builddir `pwd`" \ --define "_specdir `pwd`" \ --define "_rpmdir `pwd`" \ --define "_srcrpmdir `pwd`" \ @PACKAGE_NAME@.spec clean-rpm: $(RM) -r "`uname -i`" clean-local: clean-rpm ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/NEWS000066400000000000000000000000001276165756300226700ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/README000066400000000000000000000252371276165756300230740ustar00rootroot00000000000000ibus-sharada-braille Braille input method for ibus ibus-sharada-braille is an ibus input engine based on six key approach of braille. We express our gratitude to Swathanthra Malayalam Computing(SMC) for mentoring this project. We consider the acceptance of this project by Svathanthra Malayalam Computing and Google as a new flowering of the effort of louis braille. By default it uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be released together fafter pressing them. Languages : - This version comes with seven languages English, Malayalam, Hindi, Kannada, Tamil, French, and Spanish. English is the default language, and one can switch to other languages by pressing language switch key (Pause Break). one can go back to previus language using the same key. One can select the required languages by checking them in general page of ibus-sharada-braille-preferences. Also default language can be change by using the combo box that appears in the same page. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in ibus-sharada-braille. In order to activate contractions one should uncheck the simple mode. To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press 'f' and 'd' together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Numerals : - One can select numeral as language. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode, f, k, l combination is used to produce underscore and this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. Abbreviations : - letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. For example pressing 'a' after typing 'ab' will expand the word 'ab' to 'about' This facility will increase the speed of producing text. Abbreviation-Editor : - It is a unique feature of isb which enable a user to create whatever abbreviation he/she requires. In order to edit the abbreviation one has to open ibus-sharada-braille-abbreviation-editor then select the language of which abbreviation to be edited. For adding a new abbreviation one has to click add button which will prompt a dialog with two entries: abbreviation and expantion, user has to fill apropriate data and click add button. One can remove an abbreviation by clicking on remove button. One has to press save button to make it effective. Abbreviations thus saved can be shared with others using the export button which will prompt a save dialog. Restore button will delete all newly added abbreviations and restore the list to the default position. For english we have already provided all the grade 3 abbreviations in the package. Beginning list and middle list : - One can switch between middle list and beginning list using map-switching key(left ALT). This will help the user to write any letter anywhere. For example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Simple-Mode : - ibus sharada braille is installed as the simple mode unchecked. This will be complicated for a beginner. To avoid these complications a newbie can disable abbreviations and contractions by checking simple mode from general page of ibus-sharada-braille-preferences. Text Manipulation : - capitol/chill key('g') is used to produce capital letter in English and chillu in malayalam. pressing this key before typing the braille combination to make a letter capital and pressing this key after typing the braille combination to make a letter chillu in malayalam. If this capitol key is pressed before using a contracted word, whole letters will be in capital. Letter deletion key('h') will delete the last letter typed and pressing letter deletion key and capitol/chill key together will delete the last word. Caps lock : - One can enable and disable caps lock by pressing capitol/chill key two time continuesly. Key-remapping : - One can change the all keys by using ket/shortcut page of ibus-sharada-braille-preferences. Users having non qwerty keyboard can use this to setup six appropriate keys on there keyboard. Here user can also change the key for language switching,map switching and capitol/chill as well. By default the following keys are given for different functionalities: f, d, s, j, k, l for dots 1, 2, 3, 4, 5, 6 of the braille dots. Semicolon as punctuation key, 'g' as capital/chilli, 'h' for deletion of last letter, left alt map switching key, 'a' as abbreviation expansion key. User can tab to listen to the key assigned to the function and simply press the needed key to change it. After making the changes press apply button to effect the changes. Here also one can use restore button to come back to the default settings. ibus-sharada-braille language editor : - The language editor enable the user to add a new language, remove the existing language, add a new map of contractions, remove the map of contractions, and manipulate the characters and contractions of existing languages. One can also share the languages, maps, and contractions he has created, with others using the export and import facility. one cant start the process of editing by selecting the languge to be edited from combobox. This is the list of existing languages and one can press add-language button for creating new language. After pressing this button, one should enter the name of the language with its e-speak variant name putting a hyphen between them. Now one can work upon the language by selecting it from the list. Using remove-language button one can remove any language. Editing Map : - A map is an arrangement for producing a character or list or a contraction list. A map is a key combination which does not produce any character but enable the user to produce the list of characters and contractions. After pressing the add-map button it will ask for the entry. One can press the braille combination using and press the add button. If one has pressed j and l the editor will show "46" and in the process map for 4, 6 will appear in the editor and one can add any contractions in the 4, 6 list. Editing Beginning list : - This page list out all the characters that should appear after pressing the space. For example it contains all the vowels and other alphabets of indian languages, and all the alphabets and contractions given in the braille six key combinations in english. Let us now see how one can change or remove a character. Just tab and then a list will appear which contains the number combinations are given. Again tab and add new row button will appear. After pressing the button, editor will ask for the braille combination and enter it using six key combinations as done in map creation. Again tab and you will get the column for adding the value. Then again tab and press add button. If one needs further entry add row button will appear again. Editing middle list : - In the map page and curser is at beginning, use right arrow to select the middle list. Middle list contains all the characters that should appear when a character is already in position. It contains all the signs attached to the vowels and other alphabets in indian languages and all the alphabets and middle contractions like cc dd etc. Editing Punctuation list : - press right arrow and one can go to punctuation list and here one can see the list of combinations for punctuations which will appear after pressing the punctution key(semicolon) in the ordinary key board. please note that one can't remove beginning,middle and pucntation lists because they are essential for the working of a language. Using the right arrow one can manipulate other maps such as 4 6, 5, 4 5 6, etc in english. Again one can remove any unwanted row as well. One can clear all the entries using clear-all button, After the operations one should save/save-all and quit the editor to bring the changes in to effect. Accessibility : - ibus-shrada-braille is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences one should press insert+space together. After the installation of the program, we recommend you to open the orca preferences and check the echo by character and uncheck the key echo in the key echo page to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences. Copyright (c) 2014-2015 ISB Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/README.md000066400000000000000000000256271276165756300234760ustar00rootroot00000000000000ibus-sharada-braille ==================== Braille input method for ibus ibus-sharada-braille is an ibus input engine based on six key approach of braille. We express our gratitude to Swathanthra Malayalam Computing(SMC) for mentoring this project. We consider the acceptance of this project by Svathanthra Malayalam Computing and Google as a new flowering of the effort of louis braille. By default it uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be released together fafter pressing them. Languages : - This version comes with seven languages English, Malayalam, Hindi, Kannada, Tamil, French, and Spanish. English is the default language, and one can switch to other languages by pressing language switch key (Pause Break). one can go back to previus language using the same key. One can select the required languages by checking them in general page of ibus-sharada-braille-preferences. Also default language can be change by using the combo box that appears in the same page. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in ibus-sharada-braille. In order to activate contractions one should uncheck the simple mode. To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press 'f' and 'd' together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Numerals : - One can select numeral as language. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode, f, k, l combination is used to produce underscore and this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. Abbreviations : - letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. For example pressing 'a' after typing 'ab' will expand the word 'ab' to 'about' This facility will increase the speed of producing text. Abbreviation-Editor : - It is a unique feature of isb which enable a user to create whatever abbreviation he/she requires. In order to edit the abbreviation one has to open ibus-sharada-braille-abbreviation-editor then select the language of which abbreviation to be edited. For adding a new abbreviation one has to click add button which will prompt a dialog with two entries: abbreviation and expantion, user has to fill apropriate data and click add button. One can remove an abbreviation by clicking on remove button. One has to press save button to make it effective. Abbreviations thus saved can be shared with others using the export button which will prompt a save dialog. Restore button will delete all newly added abbreviations and restore the list to the default position. For english we have already provided all the grade 3 abbreviations in the package. Beginning list and middle list : - One can switch between middle list and beginning list using map-switching key(left ALT). This will help the user to write any letter anywhere. For example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Simple-Mode : - ibus sharada braille is installed as the simple mode unchecked. This will be complicated for a beginner. To avoid these complications a newbie can disable abbreviations and contractions by checking simple mode from general page of ibus-sharada-braille-preferences. Text Manipulation : - capitol/chill key('g') is used to produce capital letter in English and chillu in malayalam. pressing this key before typing the braille combination to make a letter capital and pressing this key after typing the braille combination to make a letter chillu in malayalam. If this capitol key is pressed before using a contracted word, whole letters will be in capital. Letter deletion key('h') will delete the last letter typed and pressing letter deletion key and capitol/chill key together will delete the last word. Caps lock : - One can enable and disable caps lock by pressing capitol/chill key two time continuesly. Key-remapping : - One can change the all keys by using ket/shortcut page of ibus-sharada-braille-preferences. Users having non qwerty keyboard can use this to setup six appropriate keys on there keyboard. Here user can also change the key for language switching,map switching and capitol/chill as well. By default the following keys are given for different functionalities: f, d, s, j, k, l for dots 1, 2, 3, 4, 5, 6 of the braille dots. Semicolon as punctuation key, 'g' as capital/chilli, 'h' for deletion of last letter, left alt map switching key, 'a' as abbreviation expansion key. User can tab to listen to the key assigned to the function and simply press the needed key to change it. After making the changes press apply button to effect the changes. Here also one can use restore button to come back to the default settings. ibus-sharada-braille language editor : - The language editor enable the user to add a new language, remove the existing language, add a new map of contractions, remove the map of contractions, and manipulate the characters and contractions of existing languages. One can also share the languages, maps, and contractions he has created, with others using the export and import facility. one cant start the process of editing by selecting the languge to be edited from combobox. This is the list of existing languages and one can press add-language button for creating new language. After pressing this button, one should enter the name of the language with its e-speak variant name putting a hyphen between them. Now one can work upon the language by selecting it from the list. Using remove-language button one can remove any language. Editing Map : - A map is an arrangement for producing a character or list or a contraction list. A map is a key combination which does not produce any character but enable the user to produce the list of characters and contractions. After pressing the add-map button it will ask for the entry. One can press the braille combination using and press the add button. If one has pressed j and l the editor will show "46" and in the process map for 4, 6 will appear in the editor and one can add any contractions in the 4, 6 list. Editing Beginning list : - This page list out all the characters that should appear after pressing the space. For example it contains all the vowels and other alphabets of indian languages, and all the alphabets and contractions given in the braille six key combinations in english. Let us now see how one can change or remove a character. Just tab and then a list will appear which contains the number combinations are given. Again tab and add new row button will appear. After pressing the button, editor will ask for the braille combination and enter it using six key combinations as done in map creation. Again tab and you will get the column for adding the value. Then again tab and press add button. If one needs further entry add row button will appear again. Editing middle list : - In the map page and curser is at beginning, use right arrow to select the middle list. Middle list contains all the characters that should appear when a character is already in position. It contains all the signs attached to the vowels and other alphabets in indian languages and all the alphabets and middle contractions like cc dd etc. Editing Punctuation list : - press right arrow and one can go to punctuation list and here one can see the list of combinations for punctuations which will appear after pressing the punctution key(semicolon) in the ordinary key board. please note that one can't remove beginning,middle and pucntation lists because they are essential for the working of a language. Using the right arrow one can manipulate other maps such as 4 6, 5, 4 5 6, etc in english. Again one can remove any unwanted row as well. One can clear all the entries using clear-all button, After the operations one should save/save-all and quit the editor to bring the changes in to effect. Accessibility : - ibus-shrada-braille is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences one should press insert+space together. After the installation of the program, we recommend you to open the orca preferences and check the echo by character and uncheck the key echo in the key echo page to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences. Copyright (c) 2014-2015 ISB Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor/000077500000000000000000000000001276165756300261345ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor/Makefile.am000066400000000000000000000021621276165756300301710ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. isb_abbreviation_editor_DATA = \ main.py \ ui.glade \ $(NULL) isb_abbreviation_editordir = $(datadir)/ibus-braille-abbreviation-editor/ isb_desktop_icon_DATA = ibus-braille-abbreviation-editor.desktop isb_desktop_icondir = $(datadir)/applications/ bin_SCRIPTS = ibus-braille-abbreviation-editor CLEANFILES = \ *.pyc \ $(NULL) ibus-braille-abbreviation-editor.desktop000066400000000000000000000004601276165756300357510ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor [Desktop Entry] Categories=GNOME;Utility; Version=1.0 Type=Application Terminal=false Comment=Change preferences of ibus-braille Exec=ibus-braille-abbreviation-editor Name=ibus-braille-abbreviation-editor Icon=/usr/share/ibus-braille/icons/ibus-braille.png Name[en_IN]=ibus-braille-abbreviation-editor ibus-braille-abbreviation-editor.in000066400000000000000000000015741276165756300347150ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor#!/bin/sh # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. exec python3 @prefix@/share/ibus-braille-abbreviation-editor/main.py $@ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor/main.py000077500000000000000000000223101276165756300274330ustar00rootroot00000000000000#!/usr/bin/env python # vim:set noet ts=4: # # ibus-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from gi.repository import Gtk from gi.repository import IBus home_dir = os.environ['HOME'] data_dir = "/usr/share/ibus-braille/braille" class ibus_braille_ae(): def __init__ (self,file_list=None): self.guibuilder = Gtk.Builder() self.guibuilder.add_from_file("/usr/share/ibus-braille-abbreviation-editor/ui.glade") self.window = self.guibuilder.get_object("window1") self.guibuilder.connect_signals(self); self.liststore = Gtk.ListStore(str, str) self.treeview = self.guibuilder.get_object("treeview") self.treeview.set_model(self.liststore) cell = Gtk.CellRendererText(editable=True) cell.connect('edited', self.abbreviation_changed, 0) col = Gtk.TreeViewColumn("Abbreviation",cell,text = 0) self.treeview.append_column(col) cell = Gtk.CellRendererText(editable=True) cell.connect('edited', self.expansion_changed, 1) col = Gtk.TreeViewColumn("Expansion",cell,text = 1) self.treeview.append_column(col) lang_liststore = Gtk.ListStore(str) for line in open("{}/languages.txt".format(data_dir)): if ("\n" in line): lang_liststore.append([line[:-1]]) else: lang_liststore.append([line]) self.combobox_language = self.guibuilder.get_object("combobox_language") self.combobox_language.set_model(lang_liststore) renderer_text = Gtk.CellRendererText() self.combobox_language.pack_start(renderer_text, True) self.combobox_language.add_attribute(renderer_text, "text", 0) self.saved = True self.combobox_language.set_active(0) self.window.show() def abbreviation_changed(self, w, changed_raw, new_value, column): if(not self.abbreviation_exist(new_value)): self.liststore[changed_raw][column] = new_value self.saved = False else: dialog_exist = Gtk.Dialog("Warning!",self.window,1,("Close",Gtk.ResponseType.YES)) label = Gtk.Label("Expansion for this abbreviation alredy exists!") box = dialog_exist.get_content_area(); box.add(label) dialog_exist.show_all() response = dialog_exist.run() dialog_exist.destroy() def expansion_changed(self, w, row, new_value, column): self.liststore[row][column] = new_value def language_changed(self,combo,data=None): if(not self.saved): dialog = Gtk.Dialog("Warning!",self.window,1,("Save",Gtk.ResponseType.YES,"Change",Gtk.ResponseType.NO)) label = Gtk.Label("Do you want to change language without saving ?") box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: self.save(self) self.saved = True dialog.destroy() self.liststore.clear() tree_iter = combo.get_active_iter() model = combo.get_model() self.language = model.get_value(tree_iter,0).split("-")[0] self.import_from_file("{}/{}/abbreviations.txt".format(data_dir,self.language)) def quit(self,widget,data=None): Gtk.main_quit() def add(self,widget,data=None): dialog = Gtk.Dialog("New entry",self.window,1,("Add",Gtk.ResponseType.YES,"Cancel",Gtk.ResponseType.NO)) label = Gtk.Label("Fill entrys with appropriate data \n") box = dialog.get_content_area(); box.add(label) table = Gtk.Table(2, 2, True) box.add(table) label_abbreviation = Gtk.Label("Abbreviation") entry_abbreviation = Gtk.Entry() label_abbreviation.set_mnemonic_widget(entry_abbreviation) label_expansion = Gtk.Label("Expansion") entry_expansion = Gtk.Entry() label_expansion.set_mnemonic_widget(entry_expansion) table.attach(label_abbreviation,0,1,0,1) table.attach(entry_abbreviation,1, 2, 0, 1) table.attach(label_expansion, 0,1,1,2) table.attach(entry_expansion, 1,2,1,2) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: new_value = entry_abbreviation.get_text() if (not self.abbreviation_exist(new_value)): self.liststore.append([entry_abbreviation.get_text(),entry_expansion.get_text()]) self.saved = False else: dialog_exist = Gtk.Dialog("Warning!",self.window,1,("Skip",Gtk.ResponseType.NO,"Replace",Gtk.ResponseType.YES)) label = Gtk.Label("Expansion for this abbreviation already exists!") box = dialog_exist.get_content_area(); box.add(label) dialog_exist.show_all() response = dialog_exist.run() if response == Gtk.ResponseType.YES: self.saved = False for row in self.liststore: if row[0] == new_value: self.liststore.insert_before(row.iter,[entry_abbreviation.get_text(),entry_expansion.get_text()]) self.liststore.remove(row.iter) break dialog_exist.destroy() dialog.destroy() def abbreviation_exist(self,value): flag = 0 for item in self.liststore: abb,exp = item if (abb == value): flag = 1 break return flag def clear_all(self,widget,data=None): dialog = Gtk.Dialog("Warning!",self.window,1,("No",Gtk.ResponseType.NO,"Yes",Gtk.ResponseType.YES)) label = Gtk.Label("Clear all entries ?") box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: self.liststore.clear() dialog.destroy() def remove(self,widget,data=None): selection = self.treeview.get_selection() (model, pathlist) = selection.get_selected_rows() self.saved = False for path in pathlist: tree_iter = model.get_iter(path) value = model.get_value(tree_iter,0) model.remove(tree_iter) def import_from_file(self,filename): text = open(filename).read() skip_all = 0 replace_all = 0 for line in text.split("\n"): if(len(line.split(" "))>1): if (not self.abbreviation_exist(line.split(" ")[0])): self.liststore.append(line.split(" ")) else: if (not skip_all and not replace_all): dialog = Gtk.Dialog("Warning!",self.window,1,("Skip",Gtk.ResponseType.NO,"Skip-All",Gtk.ResponseType.NONE,"Replace",Gtk.ResponseType.YES,"Replace-All",Gtk.ResponseType.APPLY)) label = Gtk.Label("Abbreviation already exist : "+line) box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if(response == Gtk.ResponseType.NONE): skip_all = 1 elif (response == Gtk.ResponseType.APPLY): replace_all = 1 elif (response == Gtk.ResponseType.YES): for row in self.liststore: if row[0] == line.split(" ")[0]: self.liststore.insert_before(row.iter,line.split(" ")) self.liststore.remove(row.iter) break else: pass dialog.destroy() if(replace_all): for row in self.liststore: if row[0] == line.split(" ")[0]: self.liststore.insert_before(row.iter,line.split(" ")) self.liststore.remove(row.iter) break self.saved = False def import_(self,widget,data=None): open_file = Gtk.FileChooserDialog("Select the file to open",None,Gtk.FileChooserAction.OPEN,buttons=(Gtk.STOCK_OPEN,Gtk.ResponseType.OK)) open_file.set_current_folder("%s"%(os.environ['HOME'])) response = open_file.run() if response == Gtk.ResponseType.OK: self.import_from_file(open_file.get_filename()) open_file.destroy() def restore(self,widget,data=None): dialog = Gtk.Dialog("Warning!",self.window,1,("No",Gtk.ResponseType.NO,"Yes",Gtk.ResponseType.YES)) label = Gtk.Label("Restore default ?") box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() self.saved = False if response == Gtk.ResponseType.YES: self.liststore.clear() dialog.destroy() self.import_from_file("{}/{}/abbreviations_default.txt".format(data_dir,self.language)) else: dialog.destroy() def save_to_file(self,filename): file = open(filename,"w") for item in self.liststore: abb,exp = item file.write("{} {}\n".format(abb,exp)) file.close() def export(self,widget,data=None): save_file = Gtk.FileChooserDialog("Export abbreviation list ",None,Gtk.FileChooserAction.SAVE,buttons=(Gtk.STOCK_SAVE,Gtk.ResponseType.OK)) save_file.set_current_folder("{}".format(os.environ['HOME'])) save_file.set_do_overwrite_confirmation(True); filter = Gtk.FileFilter() filter.add_pattern("*.txt") filter.add_pattern("*.text") save_file.add_filter(filter) response = save_file.run() if response == Gtk.ResponseType.OK: self.save_to_file(save_file.get_filename()) save_file.destroy() def save(self,widget,data=None): self.save_to_file("{}/{}/abbreviations.txt".format(data_dir,self.language)) bus = IBus.Bus() bus.set_global_engine("braille"); ibus_braille_ae() Gtk.main() ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/abbreviation-editor/ui.glade000066400000000000000000000213571276165756300275570ustar00rootroot00000000000000 False ISB-Abbreviation-Editor 600 600 True False Add False True True True False 4 0 1 1 Remove False True True True False 4 1 1 2 Clear-All False True True True False 4 3 1 1 True True True True in True True 0 1 4 3 Quit False True True True False 4 4 1 1 Export False True True True False 3 4 1 1 Import False True True True False 2 4 1 1 Save False True True True False 1 4 1 1 Restore-Default False True True True False 0 4 1 1 True False 0 0 1 1 True False 1 0 3 1 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/autogen.sh000077500000000000000000000003671276165756300242120ustar00rootroot00000000000000#!/bin/sh set -e set -x libtoolize --automake --copy aclocal -I m4 autoheader automake --add-missing --copy autoconf export CFLAGS="-g -O0" export CXXFLAGS="$CFLAGS" ./configure --prefix='/usr' --enable-maintainer-mode "$@" --with-python=python3 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/000077500000000000000000000000001276165756300236155ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/Makefile.am000066400000000000000000000020711276165756300256510ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. SUBDIRS = english \ hindi \ kannada \ malayalam \ numerical \ spanish \ tamil \ french \ arabic \ braille braille_DATA = \ languages.txt \ $(NULL) EXTRA_DIST = \ languages.txt \ $(NULL) brailledir = $(pkgdatadir)/braille CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/000077500000000000000000000000001276165756300250365ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/Makefile.am000066400000000000000000000020201276165756300270640ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_arabic_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_arabicdir = $(pkgdatadir)/braille/arabic CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/abbreviations.txt000066400000000000000000000000001276165756300304150ustar00rootroot00000000000000abbreviations_default.txt000066400000000000000000000000001276165756300320420ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabicibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/beginning.txt000066400000000000000000000004571276165756300275450ustar00rootroot0000000000000012 ب 2345 ت 1456 Ø« 245 ج 145 د 1235 ر 1356 ز 234 س 146 Ø´ 12346 ص 1246 ض 12356 ع 126 غ 124 Ù 12345 Ù‚ 13 Ùƒ 123 Ù„ 125 Ù‡ 2456 Ùˆ 1256 ؤ 24 ÙŠ 16 Ø© 345 Ø¢ 34 Ø£ 2 ÙŽ 136 Ù 26 ÙŒ 35 Ù‹ 6 Ù‘ 1346 Ø® 2346 ذ 23456 Ø· 156 Ø­ 123456 ظ 134 Ù… 1345 Ù† 13456 ئ 1236 ï»» 3 Ø¡ 15 Ù 23 Ù‹ 25 Ù’ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/help.txt000066400000000000000000000210671276165756300265350ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/middle.txt000066400000000000000000000004571276165756300270430ustar00rootroot0000000000000012 ب 2345 ت 1456 Ø« 245 ج 145 د 1235 ر 1356 ز 234 س 146 Ø´ 12346 ص 1246 ض 12356 ع 126 غ 124 Ù 12345 Ù‚ 13 Ùƒ 123 Ù„ 125 Ù‡ 2456 Ùˆ 1256 ؤ 24 ÙŠ 16 Ø© 345 Ø¢ 34 Ø£ 2 ÙŽ 136 Ù 26 ÙŒ 35 Ù‹ 6 Ù‘ 1346 Ø® 2346 ذ 23456 Ø· 156 Ø­ 123456 ظ 134 Ù… 1345 Ù† 13456 ئ 1236 ï»» 3 Ø¡ 15 Ù 23 Ù‹ 25 Ù’ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/arabic/punctuations.txt000066400000000000000000000000001276165756300303210ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/000077500000000000000000000000001276165756300252275ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/Makefile.am000066400000000000000000000020231276165756300272600ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_braille_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_brailledir = $(pkgdatadir)/braille/braille CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/abbreviations.txt000066400000000000000000000000001276165756300306060ustar00rootroot00000000000000abbreviations_default.txt000066400000000000000000000000001276165756300322330ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/brailleibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/beginning.txt000077500000000000000000000043731276165756300277420ustar00rootroot000000000000001 â  2 â ‚ 12 â ƒ 3 â „ 13 â … 23 â † 123 â ‡ 4 â ˆ 14 â ‰ 24 â Š 124 â ‹ 34 â Œ 134 â  234 â Ž 1234 â  5 â  15 â ‘ 25 â ’ 125 â “ 35 â ” 135 â • 235 â – 1235 â — 45 â ˜ 145 â ™ 245 â š 1245 â › 345 â œ 1345 â  2345 â ž 12345 â Ÿ 6 â   16 â ¡ 26 â ¢ 126 â £ 36 â ¤ 136 â ¥ 236 â ¦ 1236 â § 46 â ¨ 146 â © 246 â ª 1246 â « 346 â ¬ 1346 â ­ 2346 â ® 12346 â ¯ 56 â ° 156 â ± 256 â ² 1256 â ³ 356 â ´ 1356 â µ 2356 â ¶ 12356 â · 456 â ¸ 1456 â ¹ 2456 â º 12456 â » 3456 â ¼ 13456 â ½ 23456 â ¾ 123456 â ¿ 7 â¡€ 17 â¡ 27 â¡‚ 127 ⡃ 37 â¡„ 137 â¡… 237 ⡆ 1237 ⡇ 47 ⡈ 147 ⡉ 247 ⡊ 1247 â¡‹ 347 ⡌ 1347 â¡ 2347 ⡎ 12347 â¡ 57 â¡ 157 â¡‘ 257 â¡’ 1257 â¡“ 357 â¡” 1357 â¡• 2357 â¡– 12357 â¡— 457 ⡘ 1457 â¡™ 2457 ⡚ 12457 â¡› 3457 ⡜ 13457 â¡ 23457 ⡞ 123457 ⡟ 67 â¡  167 â¡¡ 267 â¡¢ 1267 â¡£ 367 ⡤ 1367 â¡¥ 2367 ⡦ 12367 â¡§ 467 ⡨ 1467 â¡© 2467 ⡪ 12467 â¡« 3467 ⡬ 13467 â¡­ 23467 â¡® 123467 ⡯ 567 â¡° 1567 ⡱ 2567 ⡲ 12567 ⡳ 3567 â¡´ 13567 ⡵ 23567 â¡¶ 123567 â¡· 4567 ⡸ 14567 ⡹ 24567 ⡺ 124567 â¡» 34567 ⡼ 134567 ⡽ 234567 ⡾ 1234567 â¡¿ 8 ⢀ 18 ⢠28 ⢂ 128 ⢃ 38 ⢄ 138 ⢅ 238 ⢆ 1238 ⢇ 48 ⢈ 148 ⢉ 248 ⢊ 1248 ⢋ 348 ⢌ 1348 ⢠2348 ⢎ 12348 ⢠58 ⢠158 ⢑ 258 ⢒ 1258 ⢓ 358 ⢔ 1358 ⢕ 2358 ⢖ 12358 ⢗ 458 ⢘ 1458 ⢙ 2458 ⢚ 12458 ⢛ 3458 ⢜ 13458 ⢠23458 ⢞ 123458 ⢟ 68 ⢠ 168 ⢡ 268 ⢢ 1268 ⢣ 368 ⢤ 1368 ⢥ 2368 ⢦ 12368 ⢧ 468 ⢨ 1468 ⢩ 2468 ⢪ 12468 ⢫ 3468 ⢬ 13468 ⢭ 23468 ⢮ 123468 ⢯ 568 ⢰ 1568 ⢱ 2568 ⢲ 12568 ⢳ 3568 ⢴ 13568 ⢵ 23568 ⢶ 123568 ⢷ 4568 ⢸ 14568 ⢹ 24568 ⢺ 124568 ⢻ 34568 ⢼ 134568 ⢽ 234568 ⢾ 1234568 ⢿ 78 ⣀ 178 ⣠278 ⣂ 1278 ⣃ 378 ⣄ 1378 ⣅ 2378 ⣆ 12378 ⣇ 478 ⣈ 1478 ⣉ 2478 ⣊ 12478 ⣋ 3478 ⣌ 13478 ⣠23478 ⣎ 123478 ⣠578 ⣠1578 ⣑ 2578 ⣒ 12578 ⣓ 3578 ⣔ 13578 ⣕ 23578 ⣖ 123578 ⣗ 4578 ⣘ 14578 ⣙ 24578 ⣚ 124578 ⣛ 34578 ⣜ 134578 ⣠234578 ⣞ 1234578 ⣟ 678 ⣠ 1678 ⣡ 2678 ⣢ 12678 ⣣ 3678 ⣤ 13678 ⣥ 23678 ⣦ 123678 ⣧ 4678 ⣨ 14678 ⣩ 24678 ⣪ 124678 ⣫ 34678 ⣬ 134678 ⣭ 234678 ⣮ 1234678 ⣯ 5678 ⣰ 15678 ⣱ 25678 ⣲ 125678 ⣳ 35678 ⣴ 135678 ⣵ 235678 ⣶ 1235678 ⣷ 45678 ⣸ 145678 ⣹ 245678 ⣺ 1245678 ⣻ 345678 ⣼ 1345678 ⣽ 2345678 ⣾ 12345678 ⣿ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/help.txt000066400000000000000000000210671276165756300267260ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/middle.txt000077500000000000000000000043731276165756300272400ustar00rootroot000000000000001 â  2 â ‚ 12 â ƒ 3 â „ 13 â … 23 â † 123 â ‡ 4 â ˆ 14 â ‰ 24 â Š 124 â ‹ 34 â Œ 134 â  234 â Ž 1234 â  5 â  15 â ‘ 25 â ’ 125 â “ 35 â ” 135 â • 235 â – 1235 â — 45 â ˜ 145 â ™ 245 â š 1245 â › 345 â œ 1345 â  2345 â ž 12345 â Ÿ 6 â   16 â ¡ 26 â ¢ 126 â £ 36 â ¤ 136 â ¥ 236 â ¦ 1236 â § 46 â ¨ 146 â © 246 â ª 1246 â « 346 â ¬ 1346 â ­ 2346 â ® 12346 â ¯ 56 â ° 156 â ± 256 â ² 1256 â ³ 356 â ´ 1356 â µ 2356 â ¶ 12356 â · 456 â ¸ 1456 â ¹ 2456 â º 12456 â » 3456 â ¼ 13456 â ½ 23456 â ¾ 123456 â ¿ 7 â¡€ 17 â¡ 27 â¡‚ 127 ⡃ 37 â¡„ 137 â¡… 237 ⡆ 1237 ⡇ 47 ⡈ 147 ⡉ 247 ⡊ 1247 â¡‹ 347 ⡌ 1347 â¡ 2347 ⡎ 12347 â¡ 57 â¡ 157 â¡‘ 257 â¡’ 1257 â¡“ 357 â¡” 1357 â¡• 2357 â¡– 12357 â¡— 457 ⡘ 1457 â¡™ 2457 ⡚ 12457 â¡› 3457 ⡜ 13457 â¡ 23457 ⡞ 123457 ⡟ 67 â¡  167 â¡¡ 267 â¡¢ 1267 â¡£ 367 ⡤ 1367 â¡¥ 2367 ⡦ 12367 â¡§ 467 ⡨ 1467 â¡© 2467 ⡪ 12467 â¡« 3467 ⡬ 13467 â¡­ 23467 â¡® 123467 ⡯ 567 â¡° 1567 ⡱ 2567 ⡲ 12567 ⡳ 3567 â¡´ 13567 ⡵ 23567 â¡¶ 123567 â¡· 4567 ⡸ 14567 ⡹ 24567 ⡺ 124567 â¡» 34567 ⡼ 134567 ⡽ 234567 ⡾ 1234567 â¡¿ 8 ⢀ 18 ⢠28 ⢂ 128 ⢃ 38 ⢄ 138 ⢅ 238 ⢆ 1238 ⢇ 48 ⢈ 148 ⢉ 248 ⢊ 1248 ⢋ 348 ⢌ 1348 ⢠2348 ⢎ 12348 ⢠58 ⢠158 ⢑ 258 ⢒ 1258 ⢓ 358 ⢔ 1358 ⢕ 2358 ⢖ 12358 ⢗ 458 ⢘ 1458 ⢙ 2458 ⢚ 12458 ⢛ 3458 ⢜ 13458 ⢠23458 ⢞ 123458 ⢟ 68 ⢠ 168 ⢡ 268 ⢢ 1268 ⢣ 368 ⢤ 1368 ⢥ 2368 ⢦ 12368 ⢧ 468 ⢨ 1468 ⢩ 2468 ⢪ 12468 ⢫ 3468 ⢬ 13468 ⢭ 23468 ⢮ 123468 ⢯ 568 ⢰ 1568 ⢱ 2568 ⢲ 12568 ⢳ 3568 ⢴ 13568 ⢵ 23568 ⢶ 123568 ⢷ 4568 ⢸ 14568 ⢹ 24568 ⢺ 124568 ⢻ 34568 ⢼ 134568 ⢽ 234568 ⢾ 1234568 ⢿ 78 ⣀ 178 ⣠278 ⣂ 1278 ⣃ 378 ⣄ 1378 ⣅ 2378 ⣆ 12378 ⣇ 478 ⣈ 1478 ⣉ 2478 ⣊ 12478 ⣋ 3478 ⣌ 13478 ⣠23478 ⣎ 123478 ⣠578 ⣠1578 ⣑ 2578 ⣒ 12578 ⣓ 3578 ⣔ 13578 ⣕ 23578 ⣖ 123578 ⣗ 4578 ⣘ 14578 ⣙ 24578 ⣚ 124578 ⣛ 34578 ⣜ 134578 ⣠234578 ⣞ 1234578 ⣟ 678 ⣠ 1678 ⣡ 2678 ⣢ 12678 ⣣ 3678 ⣤ 13678 ⣥ 23678 ⣦ 123678 ⣧ 4678 ⣨ 14678 ⣩ 24678 ⣪ 124678 ⣫ 34678 ⣬ 134678 ⣭ 234678 ⣮ 1234678 ⣯ 5678 ⣰ 15678 ⣱ 25678 ⣲ 125678 ⣳ 35678 ⣴ 135678 ⣵ 235678 ⣶ 1235678 ⣷ 45678 ⣸ 145678 ⣹ 245678 ⣺ 1245678 ⣻ 345678 ⣼ 1345678 ⣽ 2345678 ⣾ 12345678 ⣿ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/braille/punctuations.txt000077500000000000000000000000001276165756300305150ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/configure.ac000066400000000000000000000020731276165756300261050ustar00rootroot00000000000000# vim:set et ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # if not 1, append datestamp to the version number. # OUTPUT files AC_CONFIG_FILES( Makefile english/Makefile hindi/Makefile kannada/Makefile malayalam/Makefile numerical/Makefile spanish/Makefile tamil/Makefile french/Makefile arabic/Makefile braille/Makefile ) AC_OUTPUT ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/000077500000000000000000000000001276165756300252465ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/4.txt000077500000000000000000000010651276165756300261570ustar00rootroot000000000000001 act 12 better 14 course 145 doing 15 etc 124 first 1245 going 125 having 24 if 245 join 13 kind 123 life 134 may 1345 next 135 old 1234 pre 12345 quiet 1235 represent 234 same 2345 true 136 up 1236 live 2456 willing 1346 except 13456 yet 1356 side 12346 any 123456 forget 12356 offer 2346 then 23456 within 16 change 126 they 146 she 1456 than 156 who 1246 when 12456 want 1256 outside 246 own 2 an 23 beginning 25 concern 256 differ 26 enter 235 together 2356 giving 236 he 35 inside 356 writing 34 strange 346 origin 3456 number 345 might 3 something 36 coming ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/45.txt000077500000000000000000000011131276165756300262360ustar00rootroot00000000000000125 has 2 another 24 idea 245 judge 2456 word 246 however 25 consider 256 dear 26 endeavour 23 believe 234 see 2345 treat 23456 without 2346 these 235 too 2356 great 236 hear 1 appear 12 bear 124 fear 1245 goes 12456 week 1246 whether 1256 ounce 126 speak 123 least 1234 please 12345 quick 123456 fortune 12346 anybody 1235 read 12356 office 1236 leave 14 clear 145 does 1456 those 146 share 15 each 156 whose 16 chief 13 keep 134 most 1345 near 13456 year 1346 extreme 135 other 1356 seem 136 upon 3 thing 34 strength 345 mean 3456 nobody 346 ordinary 35 instead 356 writes 36 comes ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/456.txt000077500000000000000000000011151276165756300263260ustar00rootroot0000000000000024 improve 245 judgement 2456 world 246 allow 256 down 26 enclose 23 belong 234 spirit 2345 truely 23456 made 2346 their 235 two 2356 gave 236 her 1 all 12 brought 124 follow 1245 gone 12456 well 1246 while 125 had 1256 our 126 spoke 123 long 1234 pro 12345 quality 123456 fortunate 12346 anything 1235 regular 12356 official 1236 left 14 can't 145 did 1456 though 146 shalt 15 even 156 whole 16 charge 13 knew 134 many 1345 never 13456 your 1346 example 135 over 1356 soon 136 unto 3 things 34 strong 345 my 3456 nothing 346 ordinarily 35 interest 356 written 36 came 25 continue 2 along ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/46.txt000077500000000000000000000000721276165756300262420ustar00rootroot000000000000001345 sion 145 ound 2345 ount 15 ance 13456 bly 1356 ances ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/5.txt000077500000000000000000000011071276165756300261550ustar00rootroot0000000000000024 import 245 jesus 2456 work 246 how 25 condition 256 during 26 entire 23 become 234 some 2345 time 23456 make 2346 there 235 towards 2356 give 236 house 1 among 12 bring 124 father 1245 god 12456 went 1246 why 125 here 1256 ought 126 special 123 lord 1234 part 12345 question 123456 foreign 12346 anyone 1235 right 12356 often 1236 love 14 christ 145 day 1456 through 146 short 15 ever 156 where 16 character 13 know 134 mother 1345 name 13456 young 1346 extra 135 one 1356 ask 136 under 3 someone 34 straight 345 mind 3456 none 346 order 35 instant 2 alone 356 write 36 common ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/56.txt000077500000000000000000000001131276165756300262370ustar00rootroot0000000000000015 ence 1245 ong 1345 tion 2345 ment 234 ness 13456 ity 123 ful 1356 ences ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/6.txt000077500000000000000000000000261276165756300261550ustar00rootroot000000000000001345 ation 13456 ally ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/Makefile.am000066400000000000000000000021271276165756300273040ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_english_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ 4.txt \ 45.txt \ 456.txt \ 46.txt \ 5.txt \ 56.txt \ 6.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_englishdir = $(pkgdatadir)/braille/english CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/abbreviations.txt000077500000000000000000000042631276165756300306470ustar00rootroot00000000000000ab about abv above ac according acc account ack acknowledge ackment acknowledgement acr across af after ag again agr agree agrble agreeable agst against al also ans answer anx anxious b but bec because bef before beh behind bel below ben beneath bet between bey beyond bk book bl blind brl braille bst best bth both by was c can cd could cer certain ch child chch church chn children d do dcv deceive dcvg deceiving dffc difficult djl now dk is dkl are dl enough do doctor e every ebdy everybody ed what eday everyday edever whatever edsoever whatsoever egh espeicial en enough eone everyone ething everything ewhere everywhere f from fd food fdjkl we fr friend frq frequent fst first fw few g go gd good gen general gg were ghvs themselves gov govern gt get h have hlp help hm him hme home hpe hope ind indeed inzmch inasmuch j just jce justice jly justly k knowledge l like lk look ll little lly likely lr letter lt let lwse likewise m more mch much mm member mn man mo moreover mr Mister n not nec necessary necly necessarily necs necessaries neverss nevertheless ning notewithstanding nr nor nrth north nte note ntz notes nw new oce once oly only p people partr particular pble possible pbly possibly pres present prev prevent proble probable probly probably ps peoples pt put q quiet qualitys qualities r rather rcv receive rcvg receiving rjc rejoice rjcg rejoicing rlz rules rq rule s so sa saint sbdy somebody sbjct subject sed somewhat sggst suggest sgn sign sh shall shd should show somehow sjk me sjkl no sjl or slf self sn son sone someone st still sthing something sts sometimes suly surely swhere somewhere t that td today tgr together th this thef therefore thk think thr three throughou throughout ths thus tk took tm tommorrow trn turn trst trust trth truth u us ud undo uj unjust ul unlike uss unless ut untill v very var various vl value vlble valuable w will wd would wh which whever whichever whf wherefore whm whom whr wherever wmen women wmn woman wst west x it xding exceeding y you yd yesterday yr your z as sd said abbreviations_default.txt000077500000000000000000000042631276165756300322740ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/englishab about abv above ac according acc account ack acknowledge ackment acknowledgement acr across af after ag again agr agree agrble agreeable agst against al also ans answer anx anxious b but bec because bef before beh behind bel below ben beneath bet between bey beyond bk book bl blind brl braille bst best bth both by was c can cd could cer certain ch child chch church chn children d do dcv deceive dcvg deceiving dffc difficult djl now dk is dkl are dl enough do doctor e every ebdy everybody ed what eday everyday edever whatever edsoever whatsoever egh espeicial en enough eone everyone ething everything ewhere everywhere f from fd food fdjkl we fr friend frq frequent fst first fw few g go gd good gen general gg were ghvs themselves gov govern gt get h have hlp help hm him hme home hpe hope ind indeed inzmch inasmuch j just jce justice jly justly k knowledge l like lk look ll little lly likely lr letter lt let lwse likewise m more mch much mm member mn man mo moreover mr Mister n not nec necessary necly necessarily necs necessaries neverss nevertheless ning notewithstanding nr nor nrth north nte note ntz notes nw new oce once oly only p people partr particular pble possible pbly possibly pres present prev prevent proble probable probly probably ps peoples pt put q quiet qualitys qualities r rather rcv receive rcvg receiving rjc rejoice rjcg rejoicing rlz rules rq rule s so sa saint sbdy somebody sbjct subject sed somewhat sggst suggest sgn sign sh shall shd should show somehow sjk me sjkl no sjl or slf self sn son sone someone st still sthing something sts sometimes suly surely swhere somewhere t that td today tgr together th this thef therefore thk think thr three throughou throughout ths thus tk took tm tommorrow trn turn trst trust trth truth u us ud undo uj unjust ul unlike uss unless ut untill v very var various vl value vlble valuable w will wd would wh which whever whichever whf wherefore whm whom whr wherever wmen women wmn woman wst west x it xding exceeding y you yd yesterday yr your z as sd said ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/beginning.txt000077500000000000000000000005761276165756300277620ustar00rootroot000000000000001 a 2 is 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 16 ch 126 gh 146 sh 1456 th 1246 ed 12456 er 1256 ou 246 ow 256 dis 26 en 235 to 123456 for 12356 of 2346 the 23456 with 156 wh 23 be 25 con 35 in 356 by 34 st 345 ar 36 com 12346 and 346 ing 236 his 2356 were 3 at ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/help.txt000077500000000000000000000261541276165756300267520ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY Guide for using english contractions List with dot 4 contractions. f act fd better fj course fjk doing fk etc fdj first fdjk going fdk having dj if djk join fs kind fds life fsj may fsjk next fsk old fdsj pre fdsjk quiet fdsk represent dsj same dsjk true fsl up fdsl live djkl willing fsjl except fsjkl yet fskl side fdsjl any fdsjkl forget fdskl offer dsjl then dsjkl within fl change fdl they fjl she fjkl than fkl who fdjl when fdjkl want fdkl outside djl own d an ds beginning dk concern dkl differ dl enter dsk together dskl giving dsl he sk inside skl writing sj strange sjl origin sjkl number sjk might s something sl coming List with dot 4, 5, 6 f all fd brought fj cannot fjk did fk even fdj follow fdjk gone fdk had dj improve djk judgement fs knew fds long fsj many fsjk never fsk over fdsj pro fdsjk quality fdsk regular dsj spirit dsjk truely fsl unto fdsl left djkl world fsjl example fsjkl your fskl soon fdsjl anything fdsjkl fortunate fdskl official dsjl their dsjkl made fl charge fdl spoke fjl shalt fjkl though fkl whole fdjl while fdjkl well fdkl our djl allow d along ds belong sl continue dkl down dl enclose dsk two dskl gave dsl her sk interest skl written sj strong sjl ordinarily sjkl nothing sjk my s things sl came List with dot 4, 5 f appear fd bear fj clear fjk does fk each fdj fear fdjk goes fdk goes djk judge fs keep fds least fsj most fsjk near fsk other fdsj please fdsjk quick fdsk read dsj see dsjk treat fsl upon fdsl leave djkl word fsjl extreme fsjkl year fskl seem fdsjl anybody fdsjkl fortune fdskl office dsjl these dsjkl without fl chief fdl speak fjl share fjkl those fkl whose fdjl whether fdjkl week fdkl ounce djl however d another ds believe dk consider dkl dear dl endeavour dsk too dskl great dsl hear sk instead skl writes sj strength sjl ordinary sjkl nobody sjk mean s thing sl comes List with dot 5. f among fd bring fj christ fjk day fk ever fdj father fdjk god fdk here dj import djk jesus fs know fds lord fsj mother fsjk name fsk one fdsj part fdsjk question fdsk right dsj some dsjk time fsl under fdsl love djkl work fsjl extra fsjkl young fskl ask fdsjl anyone fdsjkl foreign fdskl often dsjl there dsjkl make fl character fdl special fjl short fjkl through fkl where fdjl why fdjkl went fdkl ought djl how d alone ds become dk condition dkl during dl entire dsk towards dskl give dsl house sk instant skl write sj straight sjl order sjkl none sjk mind s someone sl common Instructions. 1. Abbreviations should not be used in the middle and these are purely initial signs. 2. Abbreviation key is letter 'a' in the ordinary keyboard. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/middle.txt000077500000000000000000000005771276165756300272610ustar00rootroot00000000000000356 ing 2 ea 1 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 12346 and 12356 of 2346 the 23456 with 35 in 23 bb 25 cc 256 dd 26 en 235 ff 2356 gg 34 st 345 ar 16 ch 126 gh 346 ing 146 sh 1456 th 156 wh 1246 ed 12456 er 1256 ou 246 ow 3456 ble 36 - 123456 for 236 ? 3 . ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/english/punctuations.txt000077500000000000000000000004051276165756300305450ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/000077500000000000000000000000001276165756300250625ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/4.txt000077500000000000000000000000001276165756300257570ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/46.txt000077500000000000000000000000001276165756300260450ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/5.txt000077500000000000000000000000561276165756300257730ustar00rootroot000000000000001234 § 123456 & 14 © 1235 ® 2346 â„¢ 346 % ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/56.txt000077500000000000000000000000001276165756300260460ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/6.txt000077500000000000000000000001011276165756300257630ustar00rootroot0000000000000016 1 126 2 146 3 1456 4 156 5 1246 6 12456 7 1256 8 246 9 3456 0 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/Makefile.am000066400000000000000000000020771276165756300271240ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_french_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ 4.txt \ 46.txt \ 5.txt \ 56.txt \ 6.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_frenchdir = $(pkgdatadir)/braille/french CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/abbreviations.txt000077500000000000000000000275621276165756300304720ustar00rootroot00000000000000! puis !b probable !bm probablement !bt probabilité !c principe !cl principal !clm principalement !cx principaux !d produit !d" producteur !d0 production !df productif !dv productive !dv productivement !dvt productivité !f profit !f" profiteur !fse profiteuse !f¤ profitable !j projet !j" projecteur !j0 projection !m premier !m premièrement !mf primitif !mv primitive !mvm primitivement !n prochaine !nm prochainement !p proportion !pl proportionnel !plm proportionnellement !plt proportionnalité !q presque !r première !s près !t pratique !tm pratiquement !t¤ praticable !v preuve !x prix !à prochain !ï progrès !ï0 progression !ïf progressif !ïv progressive !ïvm progressivement !Å“ proposition " été % on ' la ( du ) sous )\b très bien )g tragique )gm tragiquement )j trajet )l travail )l" travailleur )lse travailleuse )p trop )q tranquille )qm tranquillement )qt tranquilité )s très )v travers )x travaux * si *f inférieur *fm inférieurement *ft infériorité *g intelligent *gc intelligence *gm intelligemment *q inquiet *qd inquiétude *t inférieur *tm inférieurement *è inquiète - celui -m commencement -n commun -n0 communion -nl communal -nm communément -nt communauté -ntr communautaire -nx communaux -t complète -tm complètement -ë complet -ëm complément -ëmr complémentaire . dès .c discours .p disposition .pf dispositif .t distant .tc distance / ai /u ailleurs 0 lui :c conclusion :d condition :dl conditionnel :dlm conditionnellement :f confiant :fc confiance :n connaître :nc connaissance :s conscient :sc conscience :scse consciencieuse :scsm consciencieusement :scx consciencieux :sm consciemment :v conversation :ï congrès ;q brusque ;qm brusquement ;t bruit ;v brave ;vm bravement ;| braille ;à branche ;àm branchement ? en ?@ ensemble ?c encore ?d endroit ?f enfin ?n ennui ?nse ennuyeyse ?nx ennuyeux ?q enquête ?q" enquêteur ?qse enquêteuse ?r entière ?rm entièrement ?s ensuite ?t entier ?v environ ?|m en mesure ?|r en réalité @ les a! après a0 action a0r actionnaire ab absolu abm absolument ac avec af afin aff affaire ai ainsi al alors am amour amse amoureuse amsm amoureusement amx amoureux ap apparent apc apparence apm apparemment ar avoir at attention atf attentif atv attentive atvm attentivement av avant avc avance avcm avancement avg avantage avgse avantageuse avgsm avantageusement avgx avantageux ay ayant az assez b bien b" besogne b"se besogneuse b"x besogneux b* besoin bc beaucoup bd boulevard bf bienfait bf" bienfaiteur bfc bienfaisance bg budget bgr budgétaire bh bonheur bj bonjour bn bonne bnm bonnement bo bonté bt bientôt bvc bienveillance bz bizarre bzm bizarrement bê bête bêm bêtement c ce c" certain c'e-à-d c'est à dire c( certes c(d certitude c) contre c)r contraire c)rm contrairement c:c circonstance c:cl circonstanciel c? comment c?r commentaire ca cela cb combien cc ceci cd considérable cdm considérablement cdâ considération cg courage cgse courageuse cgsm courageusement cgx courageux cl celle cm comme cn certaine cnm certainement cp cependant cq conséquent cqc conséquence cqm conséquemment cr cÅ“ur cs ces ct cette cv civil cvm civilement cvt civilité cvâ civilisation cx ceux cè caractère céq caractéristique cë couple cô côté d de d" digne d"m dignement d"t dignité d"tr dignitaire d'a d'abord d( derrière d* destin d*r destinataire d*â destination d/ dÅ›eormais d? différent d?c différence d@m différemment da davantage db debout dc donc dd dedans df difficile dfm difficilement dft difficulté dg danger dgse dangereuse dgsm dangereusement dgx dangereux dh dehors dj déjà dl douleur dlse douloureuse dlsm douloureusement dlx douloureux dm demain dn dernier dp depuis dr dernière drm dernièrement ds des dsqlls desquelles dsqls desquels dt dont duql duquel dv devant d|s desuite dï degré dü doute e! esprit ef effet eff effectif efv effective efvm effectivement e|c et cætera f faire f% fonction f%l fonctionnel f%m fonctionnement f%r fonctionnaire fc facile fcm facilement fct facilité fd fidèle fdm fidèlement fdt fidélité fg figure fgâ figuration fl fille fm femme fm* féminin fmn féminine fo force fom forcément fq fréquent fqc fréquence fqm fréquemment fqâ fréquentation fr frère frl fraternel frlm fraternellement frt fraternité fs fils ft faut fte faute fv faveur fv¤ faborable fv¤m favorablement fê fête g qui g son g( guerre gd garde gn général gnm généralement gnt généralité gnx généraux gnâ généralisation gr gloire grse glorieuse grsm glorieusement grx glorieux gse généreuse gsm généreusement gst générosité gv gouvernement gv" gouverneur gvl gouvernemental gvx gouvernementaux gx généreux gè guère h sur h( hier hb habitude hbl habituel hblm habituellement hd hasard hdse hasardeuse hdx hasardeux hg hommage hl hélas hm* humain hmn humaine hmnm humainement hmnt humanité hmntr humanitaire hn honneur hnr honoraire hn¤ honorable hn¤m honorablement hp hypothèse hpq hypothétique hpqm hypothétiquement hr heure hrr horaire hse heureuse hsm heureusement ht histoire htq historique htqm historiquement hv hiver hx heureux hz horizon hzl horizontal hzlm horizontalement hzx horizontaux hê honnête hêt honnêteté hëm honnêtement i il icsm gracieusement id idée idl idéal idlm idéalement idx idéaux ig image igr imaginaire ig¤ imaginable igâ imagination im immédiat imm immédiatement j je jc justice jd jadis jg juge jgm jugement jm jamais jn jeune jr jour jse joyeuse jsm joyeusement jx joyeux k au k'h aujourd'hui k) autre k)m autrement k-d au-dessus k-ü au-dessous kc aucun kf autrefois kn aucune knm aucunement kp auparavant kql auquel kr autour ks aussi kt aussitôt kxqlls auxquelles kxqls auxquels k|c au contraire k|p autre part k|q autant que k|à autre chose l le l" ligne l) lettre lb libre lbl libéral lblt libéralité lbm librement lbt liberté lbx libéraux lbâ libération ld lourd ld" lourdeur ldm lourdement lgq logique lgqm logiquement ll lequel lll laquelle llls lesquelles lls lesquels lm lumière lmse lumineuse lmsm lumineusement lmst luminosité lmx lumineux ln loin ln* lointain lnn lointaine lq lorsque lr lecture lt longtemps lv livre l|ë la plupart m me m" magnifique m"c magnificience m"m magnifiquement m) mettre m* moins m0 mission m0r missionnaire m? moment m?m momentanément mb mobile mbt mobilité mbâ mobilisation mc merci md madame mds mesdames mh malheur mhse malheureuse mhsm malheureusement ml meilleur mm mademoiselle mms mesdemoiselles mn manière mq musique mr monsieur mrs messieurs ms mes mt maintenant mv mauvais mx mieux my mystère myse mystérieuse mysm mystérieusement myx mystérieux mè mère më multiple më" multiplicateur mët multiplicité mëâ multiplication mï malgré n ne n) notre nb nombre nbse nombreuse nbx nombreux nc nécessaire ncm nécessairement nct nécessité nctse nécessiteuse nctx nécessiteux ng naguère nl nouvel nlm nouvellement nm néanmoins ns nos nt nature ntl naturel ntlm naturellement nv nouveau nvt nouveauté n|s non seulement nâ nation nâl national nâlt nationalité nâx nationaux nô nôtre o nous ob observation ob" observateur oc occasion ocl occasionnel oclm occasionnellement of office ofl officiel oflm officiellement ofse officieuse ofsm officieusement ofx officieux og origine ogl original oglm originalement oglt originalité ogr originaire ogrm originairement ogx originaux oj objet oj0 objection ojf objectif ojv objective ojvt objectivité op opinion p par p-d par-dessus p-ê peut-être p-ü par-dessous p? pensée p?f pensif p?v pensive p?vm pensivement pa partout pb possible pbt possibilité pc puissance pd pendant pe petit pf parfois pl particulier plr particulière plrm particulièrement plrt particularité pm parmi pn personne png personnage pnl personnel pnlm personnellement pnlt personnalité po pourtant pp popolation ppr popoulaire pprm populairement pprt popularité ppse populeuse ppx populeux pq puisque pr parole ps pas pt point pte pointe pv pauvre pvm pauvrement pvt pauvreté p|a|d pour ainsi dire p|c par conséquent p|e par exemple p|q parce que p|s par suite p|à|p peu à peu pè père pë peuple pëm peuplement pù pourquoi q qui q% quiconque q0 question q0r questionnaire qc quelconque qd quand qe quoique qf quelquefois ql quel qlt qualité qq quelque qt quant qtt quantité q|p quelque part q|t quelque temps q|à quelque chose r rien r% raison r%m raisonnement r%¤ raisonnable r%¤m raisonnablement r? renseignement rf réflexion rg regard rl réel rl" réalisateur rlm réellement rlt réalité rl¤ réalisable rlâ réalisation rm remerciement rp rapport rp" rapporteur rq remarque rq¤ reqmarquable rq¤m remarquablement rr rare rrm rarement rrt rareté rt relation rtf relatif rtv relative rtvm relativement rtvt relativité ry rythme ryq rythmique rê rêve rê" rêveur rêse rêveuse rï regret rï¤ regrettable rô rôle rü route s se s" seigneur s* soin sb semblable sbm semblablement sc siècle scr séculaire scrm séculairement sd soudain sf souffrant sfc souffrance sj sujet sj0 sujétion sjf subjectif sjv subjective sjvm subjectivement sjvt subjectivité sl seul sld solitude slm seulement slr solitaire slrm solitairement sn soudaine snm soudainement snt soudaineté so sorte sp supérieur spm supérieurement spt supériorité sr sÅ“ur ss ses st surtout stm sentiment stml sentimental stmlt sentimentalité stmx sentimentaux sv souvent sw somme swr sommaire swrm sommairement sy système syq systématique syqm systématiquement s|c sans cesse s|d sans doute së simple sëm simplement sët simplicité sëâ simplification t te t) titre tf toutefois th théorie thq théorique thqm théoriquement tj toujours tl tel tlm tellement tn tenir tp temps tpl temporel tpr temporaire tprm temporairement tr terre ts tes tt toute ty type tyq typique tyqm typiquement t|q tandis que t|à|t tour à tour tê tête u un ug usage ul utile ul" utilisateur ulm utilement ult utilité ultr utilitaire ul¤ utilisable ulâ utilisation un une unt unité uq unique uqm uniquement uv univers uvl universel uvlm universellement uvlt universalité uvt université uvtr universitaire v vous v" valeur v% volontiers v) votre v-à-v vis-à-vis vc voici vf vif vg voyage vg" voyageur vgse voyageuse vl voilà vm vraiment vn venir vo volonté vor volontaire vorm volontairement vr véritable vrm véritablement vs vos vv vive vvm vivement vx vieux vé vérité w tous x mais x! expression x!f expressif x!v expressive x!vm expressivement x( exercice x) extrême x)m extrêmement x)t extrémité xc excès xcf excessif xcv excessive xcvm excessivement xl excellent xlc excellence xp expérience xp" expérimentateur xpl expérimental xplm expérimentalement xpx expérimentaux xpâ expérimentation xt extérieur xtm extérieurement xë explication xëf explicatif xëv explicative z elle àc chacun àd chaud àdm chaudement àf chiffre àfg chiffrage àg change àgm changement àl chaleur àlse chaleureusement àlx chaleureux àm chemin àn chacune àp champ àq chaque àr choeur às chose àt charité àt¤ charitable àt¤m charitablement àx choix àz chez à|! à présent à|) à travers à|c à cause à|m à mesure à|p à peine à|p|! à peu près àè chère àèm chèrement àï chagrin â tout â|à|c tout à coup â|à|f tout à fait ç pour è sans é quoi ég égal égm également égt égalité égtr égalitaire égx égaux él élément élr élémentaire én énergie énq énergique énqm énergiquement ét étant év événement évl éventuel évlm éventuellement évlt éventualité ê même ê) être ë plus ëc place ëcm placement ër plaisir ës plusieurs ët plutôt ë|t plus tard ë|ô plus tôt î cet ï grand ï" grandeur ïc grâce ïcse gracieuse ïcx gracieux ïd grande ïdm grandement ïp groupe ïpm groupement ïv grave ïvm gravement ïvt gravité ô dans ù et û est ûl essentiel ûlm essentiellement ûp espèce ûr espoir ûrc esṕerance ü ou ü) outre ü)g outrage ü)gse outrageuse ü)gsm outrageusement ü)gx outrageux üg ouvrage üv ouvrier üè ouvrière Å“! impression Å“!¤ impressionnable Å“t sont Å“v Å“uvre abbreviations_default.txt000077500000000000000000000275621276165756300321170ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french! puis !b probable !bm probablement !bt probabilité !c principe !cl principal !clm principalement !cx principaux !d produit !d" producteur !d0 production !df productif !dv productive !dv productivement !dvt productivité !f profit !f" profiteur !fse profiteuse !f¤ profitable !j projet !j" projecteur !j0 projection !m premier !m premièrement !mf primitif !mv primitive !mvm primitivement !n prochaine !nm prochainement !p proportion !pl proportionnel !plm proportionnellement !plt proportionnalité !q presque !r première !s près !t pratique !tm pratiquement !t¤ praticable !v preuve !x prix !à prochain !ï progrès !ï0 progression !ïf progressif !ïv progressive !ïvm progressivement !Å“ proposition " été % on ' la ( du ) sous )\b très bien )g tragique )gm tragiquement )j trajet )l travail )l" travailleur )lse travailleuse )p trop )q tranquille )qm tranquillement )qt tranquilité )s très )v travers )x travaux * si *f inférieur *fm inférieurement *ft infériorité *g intelligent *gc intelligence *gm intelligemment *q inquiet *qd inquiétude *t inférieur *tm inférieurement *è inquiète - celui -m commencement -n commun -n0 communion -nl communal -nm communément -nt communauté -ntr communautaire -nx communaux -t complète -tm complètement -ë complet -ëm complément -ëmr complémentaire . dès .c discours .p disposition .pf dispositif .t distant .tc distance / ai /u ailleurs 0 lui :c conclusion :d condition :dl conditionnel :dlm conditionnellement :f confiant :fc confiance :n connaître :nc connaissance :s conscient :sc conscience :scse consciencieuse :scsm consciencieusement :scx consciencieux :sm consciemment :v conversation :ï congrès ;q brusque ;qm brusquement ;t bruit ;v brave ;vm bravement ;| braille ;à branche ;àm branchement ? en ?@ ensemble ?c encore ?d endroit ?f enfin ?n ennui ?nse ennuyeyse ?nx ennuyeux ?q enquête ?q" enquêteur ?qse enquêteuse ?r entière ?rm entièrement ?s ensuite ?t entier ?v environ ?|m en mesure ?|r en réalité @ les a! après a0 action a0r actionnaire ab absolu abm absolument ac avec af afin aff affaire ai ainsi al alors am amour amse amoureuse amsm amoureusement amx amoureux ap apparent apc apparence apm apparemment ar avoir at attention atf attentif atv attentive atvm attentivement av avant avc avance avcm avancement avg avantage avgse avantageuse avgsm avantageusement avgx avantageux ay ayant az assez b bien b" besogne b"se besogneuse b"x besogneux b* besoin bc beaucoup bd boulevard bf bienfait bf" bienfaiteur bfc bienfaisance bg budget bgr budgétaire bh bonheur bj bonjour bn bonne bnm bonnement bo bonté bt bientôt bvc bienveillance bz bizarre bzm bizarrement bê bête bêm bêtement c ce c" certain c'e-à-d c'est à dire c( certes c(d certitude c) contre c)r contraire c)rm contrairement c:c circonstance c:cl circonstanciel c? comment c?r commentaire ca cela cb combien cc ceci cd considérable cdm considérablement cdâ considération cg courage cgse courageuse cgsm courageusement cgx courageux cl celle cm comme cn certaine cnm certainement cp cependant cq conséquent cqc conséquence cqm conséquemment cr cÅ“ur cs ces ct cette cv civil cvm civilement cvt civilité cvâ civilisation cx ceux cè caractère céq caractéristique cë couple cô côté d de d" digne d"m dignement d"t dignité d"tr dignitaire d'a d'abord d( derrière d* destin d*r destinataire d*â destination d/ dÅ›eormais d? différent d?c différence d@m différemment da davantage db debout dc donc dd dedans df difficile dfm difficilement dft difficulté dg danger dgse dangereuse dgsm dangereusement dgx dangereux dh dehors dj déjà dl douleur dlse douloureuse dlsm douloureusement dlx douloureux dm demain dn dernier dp depuis dr dernière drm dernièrement ds des dsqlls desquelles dsqls desquels dt dont duql duquel dv devant d|s desuite dï degré dü doute e! esprit ef effet eff effectif efv effective efvm effectivement e|c et cætera f faire f% fonction f%l fonctionnel f%m fonctionnement f%r fonctionnaire fc facile fcm facilement fct facilité fd fidèle fdm fidèlement fdt fidélité fg figure fgâ figuration fl fille fm femme fm* féminin fmn féminine fo force fom forcément fq fréquent fqc fréquence fqm fréquemment fqâ fréquentation fr frère frl fraternel frlm fraternellement frt fraternité fs fils ft faut fte faute fv faveur fv¤ faborable fv¤m favorablement fê fête g qui g son g( guerre gd garde gn général gnm généralement gnt généralité gnx généraux gnâ généralisation gr gloire grse glorieuse grsm glorieusement grx glorieux gse généreuse gsm généreusement gst générosité gv gouvernement gv" gouverneur gvl gouvernemental gvx gouvernementaux gx généreux gè guère h sur h( hier hb habitude hbl habituel hblm habituellement hd hasard hdse hasardeuse hdx hasardeux hg hommage hl hélas hm* humain hmn humaine hmnm humainement hmnt humanité hmntr humanitaire hn honneur hnr honoraire hn¤ honorable hn¤m honorablement hp hypothèse hpq hypothétique hpqm hypothétiquement hr heure hrr horaire hse heureuse hsm heureusement ht histoire htq historique htqm historiquement hv hiver hx heureux hz horizon hzl horizontal hzlm horizontalement hzx horizontaux hê honnête hêt honnêteté hëm honnêtement i il icsm gracieusement id idée idl idéal idlm idéalement idx idéaux ig image igr imaginaire ig¤ imaginable igâ imagination im immédiat imm immédiatement j je jc justice jd jadis jg juge jgm jugement jm jamais jn jeune jr jour jse joyeuse jsm joyeusement jx joyeux k au k'h aujourd'hui k) autre k)m autrement k-d au-dessus k-ü au-dessous kc aucun kf autrefois kn aucune knm aucunement kp auparavant kql auquel kr autour ks aussi kt aussitôt kxqlls auxquelles kxqls auxquels k|c au contraire k|p autre part k|q autant que k|à autre chose l le l" ligne l) lettre lb libre lbl libéral lblt libéralité lbm librement lbt liberté lbx libéraux lbâ libération ld lourd ld" lourdeur ldm lourdement lgq logique lgqm logiquement ll lequel lll laquelle llls lesquelles lls lesquels lm lumière lmse lumineuse lmsm lumineusement lmst luminosité lmx lumineux ln loin ln* lointain lnn lointaine lq lorsque lr lecture lt longtemps lv livre l|ë la plupart m me m" magnifique m"c magnificience m"m magnifiquement m) mettre m* moins m0 mission m0r missionnaire m? moment m?m momentanément mb mobile mbt mobilité mbâ mobilisation mc merci md madame mds mesdames mh malheur mhse malheureuse mhsm malheureusement ml meilleur mm mademoiselle mms mesdemoiselles mn manière mq musique mr monsieur mrs messieurs ms mes mt maintenant mv mauvais mx mieux my mystère myse mystérieuse mysm mystérieusement myx mystérieux mè mère më multiple më" multiplicateur mët multiplicité mëâ multiplication mï malgré n ne n) notre nb nombre nbse nombreuse nbx nombreux nc nécessaire ncm nécessairement nct nécessité nctse nécessiteuse nctx nécessiteux ng naguère nl nouvel nlm nouvellement nm néanmoins ns nos nt nature ntl naturel ntlm naturellement nv nouveau nvt nouveauté n|s non seulement nâ nation nâl national nâlt nationalité nâx nationaux nô nôtre o nous ob observation ob" observateur oc occasion ocl occasionnel oclm occasionnellement of office ofl officiel oflm officiellement ofse officieuse ofsm officieusement ofx officieux og origine ogl original oglm originalement oglt originalité ogr originaire ogrm originairement ogx originaux oj objet oj0 objection ojf objectif ojv objective ojvt objectivité op opinion p par p-d par-dessus p-ê peut-être p-ü par-dessous p? pensée p?f pensif p?v pensive p?vm pensivement pa partout pb possible pbt possibilité pc puissance pd pendant pe petit pf parfois pl particulier plr particulière plrm particulièrement plrt particularité pm parmi pn personne png personnage pnl personnel pnlm personnellement pnlt personnalité po pourtant pp popolation ppr popoulaire pprm populairement pprt popularité ppse populeuse ppx populeux pq puisque pr parole ps pas pt point pte pointe pv pauvre pvm pauvrement pvt pauvreté p|a|d pour ainsi dire p|c par conséquent p|e par exemple p|q parce que p|s par suite p|à|p peu à peu pè père pë peuple pëm peuplement pù pourquoi q qui q% quiconque q0 question q0r questionnaire qc quelconque qd quand qe quoique qf quelquefois ql quel qlt qualité qq quelque qt quant qtt quantité q|p quelque part q|t quelque temps q|à quelque chose r rien r% raison r%m raisonnement r%¤ raisonnable r%¤m raisonnablement r? renseignement rf réflexion rg regard rl réel rl" réalisateur rlm réellement rlt réalité rl¤ réalisable rlâ réalisation rm remerciement rp rapport rp" rapporteur rq remarque rq¤ reqmarquable rq¤m remarquablement rr rare rrm rarement rrt rareté rt relation rtf relatif rtv relative rtvm relativement rtvt relativité ry rythme ryq rythmique rê rêve rê" rêveur rêse rêveuse rï regret rï¤ regrettable rô rôle rü route s se s" seigneur s* soin sb semblable sbm semblablement sc siècle scr séculaire scrm séculairement sd soudain sf souffrant sfc souffrance sj sujet sj0 sujétion sjf subjectif sjv subjective sjvm subjectivement sjvt subjectivité sl seul sld solitude slm seulement slr solitaire slrm solitairement sn soudaine snm soudainement snt soudaineté so sorte sp supérieur spm supérieurement spt supériorité sr sÅ“ur ss ses st surtout stm sentiment stml sentimental stmlt sentimentalité stmx sentimentaux sv souvent sw somme swr sommaire swrm sommairement sy système syq systématique syqm systématiquement s|c sans cesse s|d sans doute së simple sëm simplement sët simplicité sëâ simplification t te t) titre tf toutefois th théorie thq théorique thqm théoriquement tj toujours tl tel tlm tellement tn tenir tp temps tpl temporel tpr temporaire tprm temporairement tr terre ts tes tt toute ty type tyq typique tyqm typiquement t|q tandis que t|à|t tour à tour tê tête u un ug usage ul utile ul" utilisateur ulm utilement ult utilité ultr utilitaire ul¤ utilisable ulâ utilisation un une unt unité uq unique uqm uniquement uv univers uvl universel uvlm universellement uvlt universalité uvt université uvtr universitaire v vous v" valeur v% volontiers v) votre v-à-v vis-à-vis vc voici vf vif vg voyage vg" voyageur vgse voyageuse vl voilà vm vraiment vn venir vo volonté vor volontaire vorm volontairement vr véritable vrm véritablement vs vos vv vive vvm vivement vx vieux vé vérité w tous x mais x! expression x!f expressif x!v expressive x!vm expressivement x( exercice x) extrême x)m extrêmement x)t extrémité xc excès xcf excessif xcv excessive xcvm excessivement xl excellent xlc excellence xp expérience xp" expérimentateur xpl expérimental xplm expérimentalement xpx expérimentaux xpâ expérimentation xt extérieur xtm extérieurement xë explication xëf explicatif xëv explicative z elle àc chacun àd chaud àdm chaudement àf chiffre àfg chiffrage àg change àgm changement àl chaleur àlse chaleureusement àlx chaleureux àm chemin àn chacune àp champ àq chaque àr choeur às chose àt charité àt¤ charitable àt¤m charitablement àx choix àz chez à|! à présent à|) à travers à|c à cause à|m à mesure à|p à peine à|p|! à peu près àè chère àèm chèrement àï chagrin â tout â|à|c tout à coup â|à|f tout à fait ç pour è sans é quoi ég égal égm également égt égalité égtr égalitaire égx égaux él élément élr élémentaire én énergie énq énergique énqm énergiquement ét étant év événement évl éventuel évlm éventuellement évlt éventualité ê même ê) être ë plus ëc place ëcm placement ër plaisir ës plusieurs ët plutôt ë|t plus tard ë|ô plus tôt î cet ï grand ï" grandeur ïc grâce ïcse gracieuse ïcx gracieux ïd grande ïdm grandement ïp groupe ïpm groupement ïv grave ïvm gravement ïvt gravité ô dans ù et û est ûl essentiel ûlm essentiellement ûp espèce ûr espoir ûrc esṕerance ü ou ü) outre ü)g outrage ü)gse outrageuse ü)gsm outrageusement ü)gx outrageux üg ouvrage üv ouvrier üè ouvrière Å“! impression Å“!¤ impressionnable Å“t sont Å“v Å“uvre ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/beginning.txt000077500000000000000000000005641276165756300275730ustar00rootroot000000000000001 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 12356 à 16 â 12346 ç 2346 è 123456 é 126 ê 1246 ë 146 î 12456 ï 1456 ô 246 Å“ 23456 ù 156 û 1256 ü 256 . 2 , 26 ? 23 ; 25 : 235 ! 236 ( 356 ) 2356 " 36 - 3 ' 34 / 345 @ 35 * 45 ¤ 456 | 3456 0 4 ^ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/help.txt000077500000000000000000000261541276165756300265660ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY Guide for using english contractions List with dot 4 contractions. f act fd better fj course fjk doing fk etc fdj first fdjk going fdk having dj if djk join fs kind fds life fsj may fsjk next fsk old fdsj pre fdsjk quiet fdsk represent dsj same dsjk true fsl up fdsl live djkl willing fsjl except fsjkl yet fskl side fdsjl any fdsjkl forget fdskl offer dsjl then dsjkl within fl change fdl they fjl she fjkl than fkl who fdjl when fdjkl want fdkl outside djl own d an ds beginning dk concern dkl differ dl enter dsk together dskl giving dsl he sk inside skl writing sj strange sjl origin sjkl number sjk might s something sl coming List with dot 4, 5, 6 f all fd brought fj cannot fjk did fk even fdj follow fdjk gone fdk had dj improve djk judgement fs knew fds long fsj many fsjk never fsk over fdsj pro fdsjk quality fdsk regular dsj spirit dsjk truely fsl unto fdsl left djkl world fsjl example fsjkl your fskl soon fdsjl anything fdsjkl fortunate fdskl official dsjl their dsjkl made fl charge fdl spoke fjl shalt fjkl though fkl whole fdjl while fdjkl well fdkl our djl allow d along ds belong sl continue dkl down dl enclose dsk two dskl gave dsl her sk interest skl written sj strong sjl ordinarily sjkl nothing sjk my s things sl came List with dot 4, 5 f appear fd bear fj clear fjk does fk each fdj fear fdjk goes fdk goes djk judge fs keep fds least fsj most fsjk near fsk other fdsj please fdsjk quick fdsk read dsj see dsjk treat fsl upon fdsl leave djkl word fsjl extreme fsjkl year fskl seem fdsjl anybody fdsjkl fortune fdskl office dsjl these dsjkl without fl chief fdl speak fjl share fjkl those fkl whose fdjl whether fdjkl week fdkl ounce djl however d another ds believe dk consider dkl dear dl endeavour dsk too dskl great dsl hear sk instead skl writes sj strength sjl ordinary sjkl nobody sjk mean s thing sl comes List with dot 5. f among fd bring fj christ fjk day fk ever fdj father fdjk god fdk here dj import djk jesus fs know fds lord fsj mother fsjk name fsk one fdsj part fdsjk question fdsk right dsj some dsjk time fsl under fdsl love djkl work fsjl extra fsjkl young fskl ask fdsjl anyone fdsjkl foreign fdskl often dsjl there dsjkl make fl character fdl special fjl short fjkl through fkl where fdjl why fdjkl went fdkl ought djl how d alone ds become dk condition dkl during dl entire dsk towards dskl give dsl house sk instant skl write sj straight sjl order sjkl none sjk mind s someone sl common Instructions. 1. Abbreviations should not be used in the middle and these are purely initial signs. 2. Abbreviation key is letter 'a' in the ordinary keyboard. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/middle.txt000077500000000000000000000005641276165756300270710ustar00rootroot000000000000001 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 12356 à 16 â 12346 ç 2346 è 123456 é 126 ê 1246 ë 146 î 12456 ï 1456 ô 246 Å“ 23456 ù 156 û 1256 ü 256 . 2 , 26 ? 23 ; 25 : 235 ! 236 ( 356 ) 2356 " 36 - 3 ' 34 / 345 @ 35 * 45 ¤ 456 | 3456 0 4 ^ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/french/punctuations.txt000077500000000000000000000004131276165756300303600ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ 45 ¤ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/000077500000000000000000000000001276165756300247105ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/36.txt000077500000000000000000000001531276165756300257030ustar00rootroot000000000000001 अ 345 आ 24 इ 35 ई 136 उ 1256 ऊ 15 ठ34 ऎ 135 ओ 246 औ 46 à´ƒ 12356 ः 1234 पà¥à¤° ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/Makefile.am000066400000000000000000000020261276165756300267440ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_hindi_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ 36.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_hindidir = $(pkgdatadir)/braille/hindi CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/abbreviations.txt000077500000000000000000000000341276165756300303010ustar00rootroot00000000000000sbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/abbreviations_default.txt000077500000000000000000000000341276165756300320050ustar00rootroot00000000000000sbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/beginning.txt000077500000000000000000000006201276165756300274120ustar00rootroot000000000000004 ॠ1 अ 345 आ 24 इ 35 ई 136 उ 1256 ऊ 15 ठ34 ऎ 135 ओ 246 औ 13 क 46 ख 1245 ग 126 घ 346 ङ 14 च 16 छ 245 ज 356 ठ25 ञ 23456 ट 2456 ठ 1246 ड 123456 ढ 3456 ण 2345 त 145 द 1456 थ 2346 ध 1345 न 1234 प 235 फ 12 ब 45 भ 134 म 13456 य 123 ल 1236 व 146 श 12346 ष 234 स 125 ह 124 ऋ 1356 ृ 56 ं 12356 ः 1235 र 256 । ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/help.txt000077500000000000000000000222141276165756300264050ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY Instructions. 1. Abbreviations should not be used in the middle and these are purely initial signs. 2. Abbreviation key is letter 'a' in the ordinary keyboard. 3. some special signs for hindi. fdj ऋ jkl ठfskl ॉ fdskl ः dkl । fkl ़ Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/middle.txt000077500000000000000000000006461276165756300267200ustar00rootroot000000000000006 ः 4 ॠ124 ृ 1 अ 345 ा 24 ि 35 ी 136 ॠ1256 ू 15 े 34 ै 135 ो 246 ौ 13 क 46 ख 1245 ग 126 घ 346 ङ 14 च 16 छ 245 ज 356 ठ25 ञ 23456 ट 2456 ठ 1246 ड 123456 ढ 3456 ण 2345 त 145 द 1456 थ 2346 ध 1345 न 1234 प 235 फ 12 ब 45 भ 134 म 13456 य 123 ल 1236 व 146 श 12346 ष 234 स 125 ह 56 ं 12356 ः 1235 र 1356 ॉ 456 ठ256 । 156 ़ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/hindi/punctuations.txt000077500000000000000000000004051276165756300302070ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/000077500000000000000000000000001276165756300252125ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/Makefile.am000066400000000000000000000020231276165756300272430ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_kannada_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_kannadadir = $(pkgdatadir)/braille/kannada CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/abbreviations.txt000077500000000000000000000000341276165756300306030ustar00rootroot00000000000000sbw sharada-braille-writer abbreviations_default.txt000077500000000000000000000000341276165756300322300ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannadasbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/beginning.txt000077500000000000000000000006151276165756300277200ustar00rootroot000000000000001 ಅ 345 ಆ 24 ಇ 35 ಈ 136 ಉ 1256 ಊ 26 ಎ 15 ಠ34 ಠ1346 ಒ 135 ಓ 246 ಔ 56 ಂ 13 ಕ 46 ಖ 1245 ಗ 126 ಘ 25 ಞ 14 ಚ 16 ಛ 245 ಜ 356 ಠ346 ಙ 23456 ಟ 2456 ಠ 1246 ಡ 123456 ಢ 3456 ಣ 2345 ತ 1456 ಥ 145 ದ 2346 ಧ 1345 ನ 1234 ಪ 235 ಫ 12 ಬ 45 ಭ 134 ಮ 13456 ಯ 1235 ರ 123 ಲ 1236 ವ 146 ಶ 12346 ಷ 234 ಸ 125 ಹ 456 ಳ 4 à³ 124 ಋ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/help.txt000077500000000000000000000210651276165756300267120ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/middle.txt000077500000000000000000000006231276165756300272150ustar00rootroot00000000000000345 ಾ 24 ಿ 35 à³€ 136 à³ 1256 ೂ 26 ೆ 15 ೇ 34 ೈ 1346 ೊ 135 ೋ 246 ೌ 56 ಂ 124 ೃಋೊ 1 ಅ 13 ಕ 46 ಖ 1245 ಗ 126 ಘ 25 ಞ 14 ಚ 16 ಛ 245 ಜ 356 ಠ346 ಙ 23456 ಟ 2456 ಠ 1246 ಡ 123456 ಢ 3456 ಣ 2345 ತ 1456 ಥ 145 ದ 2346 ಧ 1345 ನ 1234 ಪ 235 ಫ 12 ಬ 45 ಭ 134 ಮ 13456 ಯ 1235 ರ 123 ಲ 1236 ವ 146 ಶ 12346 ಷ 234 ಸ 125 ಹ 456 ಳ 4 à³ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/kannada/punctuations.txt000077500000000000000000000004051276165756300305110ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/languages.txt000066400000000000000000000001541276165756300263240ustar00rootroot00000000000000english-en french-fr hindi-hi kannada-kn malayalam-ml spanish-es tamil-ta numerical-en arabic-en braille-en ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/000077500000000000000000000000001276165756300255535ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/1356.txt000066400000000000000000000010231276165756300267060ustar00rootroot00000000000000136 ഉപയോഗ 1234 à´ªàµà´°à´¸à´¿à´¦àµà´§ 134 à´®àµà´¤à´² 1236 വലിയ 234 സാധാരണ 12356 à´®àµà´´àµà´µ 1 à´…à´¤àµà´¯à´¾à´µà´¶àµà´¯ 345 ആഗàµà´°à´¹ 24 ഇപàµà´ªàµ‹ 124 à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤ 26 à´Žà´¨àµà´¤àµ†à´²àµà´²à´¾ 15 à´à´¤àµ†à´²àµà´²à´¾ 1346 à´’à´Ÿàµà´Ÿ 13 à´•à´£àµà´Ÿ 1245 ഗവേഷ 126 ആഘോഷ 14 ചെയàµà´¤ 245 ജീവിത 2345 തീരàµâ€à´šàµà´š 45 à´­à´°à´£ 123 ലഭികàµà´• 146 à´¶à´•àµà´¤ 12456 à´•àµà´±à´šàµà´š 12345 à´…à´•àµà´·à´° ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/156.txt000066400000000000000000000015511276165756300266310ustar00rootroot0000000000000014 ചിലപàµà´ªàµ‹ 2345 താരതമàµà´¯ 1236 വിദàµà´¯à´¾à´°àµâ€à´¥à´¿ 134 മലയാള 1235 രാജàµà´¯ 12456 à´ªàµà´°à´¤àµà´¯àµ‡à´• 1 à´ªàµà´°à´•ാര 345 ായിരàµà´¨àµà´¨ 24 à´¿à´°àµà´¨àµà´¨ 35 à´¿à´²àµâ€à´¨à´¿à´¨àµà´¨ 26 െങàµà´•à´¿à´² 136 àµà´£àµà´Ÿà´¾à´¯ 1256 ലൂടെ 15 േകàµà´•ാള 1346 ൊരàµà´®à´¿à´šàµà´š 34 മായി 246 àµà´£àµà´Ÿàµ 13 കൃതàµà´¯ 46 à´•àµà´•àµà´±à´¿à´šàµà´š 145 ദൈവ 1345 നലàµà´² 1234 പരസàµà´ªà´° 12 à´¬àµà´°àµ†à´¯à´¿à´² 123 ലഘൠ234 സൗകരàµà´¯ 125 ഹൃദയ 12356 കാഴàµà´š 1456 താലàµâ€à´ªà´°àµà´¯ 2346 à´ªàµà´°à´¾à´§à´¾à´¨àµà´¯ 13456 യാഥാരàµâ€à´¤àµà´¥àµà´¯ 2 à´¿à´²àµà´² 135 à´¨àµâ€à´¤àµà´° 56 à´•àµà´•ണം 1246 വൈകലàµà´¯ 146 à´¶àµà´¦àµà´§ 23 à´³àµâ€à´•àµà´• 256 അയാള ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/3.txt000077500000000000000000000021031276165756300264550ustar00rootroot0000000000000024 à´¿à´¤àµà´¤à´° 245 ജനങàµà´™ 246 ൗദാരàµà´¯ 25 à´žà´™àµà´™ 26 െലàµà´²à´¾ 234 സാംസàµà´•ാരിക 2345 തതàµà´•ാല 23456 à´•à´¿à´Ÿàµà´Ÿ 2346 ധാരാള 2356 അവര 1 െനàµà´¨à´¾à´² 12 ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´Ÿ 124 പലതര 1245 à´—àµà´£ 12456 à´ªàµà´°à´§à´¾à´¨ 1256 ൂരàµâ€à´œàµà´œ 126 ഘടക 123 ലകàµà´·àµà´¯ 1234 പറഞàµà´ž 123456 വേണàµà´Ÿ 12356 à´•à´´à´¿à´žàµà´ž 1236 വളരെ 14 ചോദി 145 ദിവസ 146 ശാസàµà´¤àµà´° 15 േറàµà´±à´µàµ 16 à´šàµà´› 13 കാരണ 134 മനàµà´·àµà´¯ 1345 നമàµà´® 13456 യഥാരàµâ€à´¤àµà´¥ 1346 ൊരികàµà´• 135 ൊഴികെ 1356 സാവധാന 136 àµà´¦à´¾à´¹à´° 56 ിടയില 34 ൈകàµà´¯ 3456 വേണ 346 നിങàµà´™ 35 ീശàµà´µà´° 356 ാവശàµà´¯ 36 അയാള 2 à´¨àµà´± 345 ആവശàµà´¯ 46 à´¦àµà´ƒà´– 1246 കാഴàµà´šà´¯à´¿à´²àµà´² 1456 à´¸àµà´¥à´¿à´° 45 ഭൂമി 235 പിനàµà´¨ 12346 വരàµâ€à´· 23 അവള 256 à´…à´¦àµà´¦àµ‡à´¹ 236 അവന ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/36.txt000077500000000000000000000013301276165756300265440ustar00rootroot000000000000001 à´¨àµà´­à´µ 345 ാരംഭ 24 à´¿à´™àµà´™à´¨àµ† 35 à´™àµà´™à´³àµâ€ 136 àµà´¤àµà´¤à´° 1256 à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ 26 െങàµà´™à´¨àµ† 15 േതൊരൠ34 തിനാല 1346 à´™àµà´™à´³ 14 ചോദàµà´¯ 1345 നിശàµà´š 1234 à´ªàµà´°à´¤à´¿ 1235 രാഷàµà´Ÿàµà´° 1236 വിദàµà´¯à´¾ 2 àµà´³àµà´³ 135 ോരോ 56 à´•àµà´•ാം 13 കൃഷി 245 ജീവ 1246 പരിമിതി 2345 തായ 1456 à´¸àµà´¥à´¿à´¤à´¿ 145 ദിന 235 ഫലപàµà´°à´¦ 12 ബഹൠ45 ഭാരത 134 മഹാ 13456 യാതൊരൠ123 ലോക 146 à´¶à´¬àµà´¦ 12346 വിഷമ 234 സഹായ 12356 à´´àµà´š 12456 à´ªàµà´°à´•ൃതി 256 അയാളàµâ€à´•àµà´•ൠ246 ാണൠibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/5.txt000077500000000000000000000014651276165756300264710ustar00rootroot00000000000000126 à´•àµà´· 16 à´žàµà´š 356 à´œàµà´ž 2456 à´£àµà´Ÿ 123456 à´•àµà´³ 1456 à´¤àµà´¸ 2346 à´¦àµà´§ 235 à´ªàµà´¤ 45 à´®àµà´ª 12356 à´´àµà´¤àµà´¤ 12346 à´·àµà´Ÿ 1235 തനàµà´¤àµà´°àµà´¯ 125 à´·àµà´• 345 à´™àµà´• 24 à´¨àµà´¤ 35 à´¸àµà´¤ 136 à´¸àµà´¥ 1256 à´¸àµà´¨ 26 à´¸àµà´® 15 à´¸àµà´• 34 മായ 1346 à´·àµà´£ 135 à´¸àµà´±àµà´± 246 à´¸àµà´ª 13 à´•àµà´• 1245 à´—àµà´— 346 à´™àµà´™ 14 à´šàµà´š 245 à´œàµà´œ 25 à´žàµà´ž 23456 à´Ÿàµà´Ÿ 1246 à´¡àµà´¡ 3456 à´£àµà´£ 2345 à´¤àµà´¤ 145 à´¦àµà´¦ 1345 à´¨àµà´¨ 1234 à´ªàµà´ª 12 à´¬àµà´¬ 134 à´®àµà´® 13456 à´¯àµà´¯ 123 à´²àµà´² 1236 à´µàµà´µ 146 à´¶àµà´¶ 234 à´¸àµà´¸ 456 à´³àµà´³ 12456 à´±àµà´± 56 à´•àµà´•àµà´• 23 അവളàµà´Ÿàµ† 256 à´…à´¦àµà´¦àµ‡à´¹à´¤àµà´¤à´¿à´¨àµà´±àµ† 2356 അവരàµà´Ÿàµ† 236 അവനàµà´±àµ† ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/6.txt000077500000000000000000000016551276165756300264730ustar00rootroot00000000000000136 àµà´ªà´¯àµ‹à´— 1234 à´ªàµà´°à´¸à´¿à´¦àµà´§ 134 à´®àµà´¤à´² 1236 വലിയ 234 സാധാരണ 12356 à´®àµà´´àµà´µ 1 à´¤àµà´¯à´¾à´µà´¶àµà´¯ 345 ാഗàµà´°à´¹ 24 à´¿à´ªàµà´ªàµ‹ 124 à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤ 26 െനàµà´¤àµ†à´²àµà´²à´¾ 15 േതെലàµà´²à´¾ 1346 ൊടàµà´Ÿ 135 à´®àµà´ªàµ‹à´³ 246 ോടൠ35 à´¿à´°à´¿à´•àµà´• 13 à´•à´£àµà´Ÿ 1245 ഗവേഷ 126 ാഘോഷ 14 ചെയàµà´¤ 245 ജീവിത 2345 തീരàµâ€à´šàµà´š 45 à´­à´°à´£ 123 ലഭികàµà´• 146 à´¶à´•àµà´¤ 12456 à´•àµà´±à´šàµà´š 12345 à´•àµà´·à´° 56 à´ªàµà´ªàµ†à´Ÿàµà´Ÿ 2 ഉടെ 1246 വികലാംഗ 1456 à´¸àµà´¥à´¾à´ªà´¨ 145 à´¨àµâ€à´¦àµà´° 1345 നായ 12 à´¬àµà´¦àµà´§ 16 ചെയàµà´¯ 12346 സനàµà´¤àµ‹à´· 23 അവളàµâ€à´•àµà´•ൠ256 à´…à´¦àµà´¦àµ‡à´¹à´¤àµà´¤à´¿à´¨àµ 2356 അവരàµâ€à´•àµà´•ൠ23456 നടപàµà´ªà´¿à´² 34 à´¨àµà´±àµ† 46 à´•àµà´•àµà´¨àµà´¨ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/Makefile.am000066400000000000000000000021251276165756300276070ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_malayalam_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ 156.txt \ 1356.txt \ 5.txt \ 6.txt \ 3.txt \ 36.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_malayalamdir = $(pkgdatadir)/braille/malayalam CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/abbreviations.txt000077500000000000000000000064041276165756300311530ustar00rootroot00000000000000à´† ആവശàµà´¯ à´… à´…à´¤àµà´¯à´¾à´µà´¶àµà´¯ à´‡ ഇതàµà´¤à´° à´ˆ ഈശàµà´µà´° à´‰ ഉദാഹര à´Š à´Šà´°àµâ€à´œàµà´œ à´Ž à´Žà´²àµà´²à´¾ à´ à´à´±àµà´±à´µàµ à´ à´à´•àµà´¯ à´’ à´’à´°à´¿à´•àµà´• à´“ ഓരോ à´” ഔദാരàµà´¯ à´• കാരണ à´— à´—àµà´£ à´˜ ഘടക à´™ നിങàµà´™ à´š ചോദി à´ à´…à´šàµà´› à´œ ജനങàµà´™ à´ž à´žà´™àµà´™ à´Ÿ à´•à´¿à´Ÿàµà´Ÿ à´¢ വേണàµà´Ÿ à´£ വേണ à´¤ തതàµà´•ാല à´¦ ദിവസ à´§ ധാരാള à´¨ നമàµà´® à´ª പറഞàµà´ž à´¬ ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´Ÿ à´® മനàµà´·àµà´¯ à´¯ യഥാരàµâ€à´¥ à´² ലകàµà´·àµà´¯ à´µ വളരെ à´¶ ശാസàµà´¤àµà´° à´¸ സാംസàµà´•ാരിക à´± à´ªàµà´°à´§à´¾à´¨ à´‹ പലതര ആഭ ആരംഭ ഇെ ഇങàµà´™à´¨àµ† ഈപ ഈരàµâ€à´ªàµà´ª ഉത ഉതàµà´¤à´° à´Šà´· à´Šà´·àµà´® എെ à´Žà´™àµà´™à´¨àµ† à´àµ à´à´¤àµŠà´°àµ à´’à´§ à´’à´°àµà´µà´¿à´§ à´…à´ª à´…à´ªàµà´°à´•ാര ഇപ ഇപàµà´°à´•ാര à´Žà´ª à´Žà´ªàµà´°à´•ാര à´’à´š à´’à´°àµà´®à´¿à´šàµà´š à´…à´­ à´…à´¨àµà´­à´µ ആഹ ആഗàµà´°à´¹ ഇോ ഇപàµà´ªàµ‹ ഉഗ ഉപയോഗ പറ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤ à´Žà´² à´Žà´¨àµà´¤àµ†à´²àµà´²à´¾ à´à´² à´à´¤àµ†à´²àµà´²à´¾ à´’à´Ÿ à´’à´Ÿàµà´Ÿ ആഘ ആഘോഷ à´•à´š à´•àµà´±à´¿à´šàµà´š à´•à´· à´…à´•àµà´·à´° à´…à´Ÿ അവിടെ à´…à´• à´…à´¤àµà´•ൊണàµà´Ÿ à´…à´² à´…à´¤àµà´ªàµ‹à´²àµ† ആക ആയതàµà´•ൊണàµà´Ÿ ഇട ഇവിടെ ഇല ഇതàµà´ªàµ‹à´²àµ† ഇക ഇതàµà´•ൊണàµà´Ÿ à´Žà´Ÿ എവിടെ à´Žà´• à´Žà´¨àµà´¤àµà´•ൊണàµà´Ÿ എപൠഎനàµà´¨àµà´ªà´±à´¯àµà´¨àµà´¨àµ ജപ ജനാധിപതàµà´¯ നി നിരീകàµà´·à´¿à´•àµà´•àµà´• ഷെ പകàµà´·àµ† പി പിനàµà´¨àµ€à´Ÿàµ മൠമàµà´¤à´²à´¾à´¯à´µ à´®àµà´ª à´®àµà´•ളിലàµâ€à´ªà´±à´žàµà´ž മേപ മേലàµâ€à´ªà´±à´žàµà´ž സൂ സൂരàµà´¯à´¨ സച സംബനàµà´§à´¿à´šàµà´š ഭൂ ഭൂമി à´šà´¨ à´šà´¨àµâ€à´¦àµà´°à´¨ സം സനàµà´¤àµ‹à´· à´žà´¾ ഞായറ തി തിങàµà´•à´³ ചൊ ചൊവàµà´µ ബൠബàµà´§à´¨ à´µàµà´¯ à´µàµà´¯à´¾à´´ വെ വെളàµà´³à´¿ ജന ജനàµà´µà´°à´¿ ഫെ ഫെബàµà´°àµà´µà´°à´¿ മാ മാരàµâ€à´šàµà´šàµ à´à´ªàµ à´à´ªàµà´°à´¿à´²àµâ€ മയൠമേയൠജൠജൂണàµâ€ ജൂ ജൂലായൠആഗ ആഗസàµà´¤àµ സെ സപàµà´¤à´‚ബരàµâ€ à´“à´• à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€ നവ നവംബരàµâ€ à´¡à´¿ ഡിസംബരàµâ€ à´šà´™ à´šà´¿à´™àµà´™ à´šà´¿ à´šà´¿à´¨àµà´¤ à´•à´¨ à´•à´¨àµà´¨à´¿ തൠതàµà´²à´¾à´‚ ഇയ ഇടയില à´Žà´¨ à´Žà´¨àµà´¨à´¾à´² വയ à´µàµà´¯à´•àµà´¤ ഉട ഉണàµà´Ÿà´¾à´¯à´¿à´°àµà´¨àµà´¨ പധ à´ªàµà´°à´¤à´¿à´¨à´¿à´§àµ€à´•à´°à´¿à´•àµà´• വക വായികàµà´• ഔക ഔദàµà´¯àµ‹à´—à´¿à´• സവ à´¸àµà´µàµ€à´•à´°àµâ€à´¤àµà´¤à´¾à´µàµ പഷ à´ªàµà´°àµ‡à´•àµà´·à´¿à´¤à´¨àµâ€ തങ à´¤àµà´Ÿà´™àµà´™ വഥ à´µàµà´¯à´µà´¸àµà´¥ വത à´µàµà´¯à´¤àµà´¯à´¸àµà´¤ തപ താഴെ-പറയàµà´¨àµà´¨ തക താഴെ-കൊടàµà´¤àµà´¤ മല മലയാളകàµà´•à´° abbreviations_default.txt000077500000000000000000000064041276165756300326000ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalamà´† ആവശàµà´¯ à´… à´…à´¤àµà´¯à´¾à´µà´¶àµà´¯ à´‡ ഇതàµà´¤à´° à´ˆ ഈശàµà´µà´° à´‰ ഉദാഹര à´Š à´Šà´°àµâ€à´œàµà´œ à´Ž à´Žà´²àµà´²à´¾ à´ à´à´±àµà´±à´µàµ à´ à´à´•àµà´¯ à´’ à´’à´°à´¿à´•àµà´• à´“ ഓരോ à´” ഔദാരàµà´¯ à´• കാരണ à´— à´—àµà´£ à´˜ ഘടക à´™ നിങàµà´™ à´š ചോദി à´ à´…à´šàµà´› à´œ ജനങàµà´™ à´ž à´žà´™àµà´™ à´Ÿ à´•à´¿à´Ÿàµà´Ÿ à´¢ വേണàµà´Ÿ à´£ വേണ à´¤ തതàµà´•ാല à´¦ ദിവസ à´§ ധാരാള à´¨ നമàµà´® à´ª പറഞàµà´ž à´¬ ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´Ÿ à´® മനàµà´·àµà´¯ à´¯ യഥാരàµâ€à´¥ à´² ലകàµà´·àµà´¯ à´µ വളരെ à´¶ ശാസàµà´¤àµà´° à´¸ സാംസàµà´•ാരിക à´± à´ªàµà´°à´§à´¾à´¨ à´‹ പലതര ആഭ ആരംഭ ഇെ ഇങàµà´™à´¨àµ† ഈപ ഈരàµâ€à´ªàµà´ª ഉത ഉതàµà´¤à´° à´Šà´· à´Šà´·àµà´® എെ à´Žà´™àµà´™à´¨àµ† à´àµ à´à´¤àµŠà´°àµ à´’à´§ à´’à´°àµà´µà´¿à´§ à´…à´ª à´…à´ªàµà´°à´•ാര ഇപ ഇപàµà´°à´•ാര à´Žà´ª à´Žà´ªàµà´°à´•ാര à´’à´š à´’à´°àµà´®à´¿à´šàµà´š à´…à´­ à´…à´¨àµà´­à´µ ആഹ ആഗàµà´°à´¹ ഇോ ഇപàµà´ªàµ‹ ഉഗ ഉപയോഗ പറ à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤ à´Žà´² à´Žà´¨àµà´¤àµ†à´²àµà´²à´¾ à´à´² à´à´¤àµ†à´²àµà´²à´¾ à´’à´Ÿ à´’à´Ÿàµà´Ÿ ആഘ ആഘോഷ à´•à´š à´•àµà´±à´¿à´šàµà´š à´•à´· à´…à´•àµà´·à´° à´…à´Ÿ അവിടെ à´…à´• à´…à´¤àµà´•ൊണàµà´Ÿ à´…à´² à´…à´¤àµà´ªàµ‹à´²àµ† ആക ആയതàµà´•ൊണàµà´Ÿ ഇട ഇവിടെ ഇല ഇതàµà´ªàµ‹à´²àµ† ഇക ഇതàµà´•ൊണàµà´Ÿ à´Žà´Ÿ എവിടെ à´Žà´• à´Žà´¨àµà´¤àµà´•ൊണàµà´Ÿ എപൠഎനàµà´¨àµà´ªà´±à´¯àµà´¨àµà´¨àµ ജപ ജനാധിപതàµà´¯ നി നിരീകàµà´·à´¿à´•àµà´•àµà´• ഷെ പകàµà´·àµ† പി പിനàµà´¨àµ€à´Ÿàµ മൠമàµà´¤à´²à´¾à´¯à´µ à´®àµà´ª à´®àµà´•ളിലàµâ€à´ªà´±à´žàµà´ž മേപ മേലàµâ€à´ªà´±à´žàµà´ž സൂ സൂരàµà´¯à´¨ സച സംബനàµà´§à´¿à´šàµà´š ഭൂ ഭൂമി à´šà´¨ à´šà´¨àµâ€à´¦àµà´°à´¨ സം സനàµà´¤àµ‹à´· à´žà´¾ ഞായറ തി തിങàµà´•à´³ ചൊ ചൊവàµà´µ ബൠബàµà´§à´¨ à´µàµà´¯ à´µàµà´¯à´¾à´´ വെ വെളàµà´³à´¿ ജന ജനàµà´µà´°à´¿ ഫെ ഫെബàµà´°àµà´µà´°à´¿ മാ മാരàµâ€à´šàµà´šàµ à´à´ªàµ à´à´ªàµà´°à´¿à´²àµâ€ മയൠമേയൠജൠജൂണàµâ€ ജൂ ജൂലായൠആഗ ആഗസàµà´¤àµ സെ സപàµà´¤à´‚ബരàµâ€ à´“à´• à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€ നവ നവംബരàµâ€ à´¡à´¿ ഡിസംബരàµâ€ à´šà´™ à´šà´¿à´™àµà´™ à´šà´¿ à´šà´¿à´¨àµà´¤ à´•à´¨ à´•à´¨àµà´¨à´¿ തൠതàµà´²à´¾à´‚ ഇയ ഇടയില à´Žà´¨ à´Žà´¨àµà´¨à´¾à´² വയ à´µàµà´¯à´•àµà´¤ ഉട ഉണàµà´Ÿà´¾à´¯à´¿à´°àµà´¨àµà´¨ പധ à´ªàµà´°à´¤à´¿à´¨à´¿à´§àµ€à´•à´°à´¿à´•àµà´• വക വായികàµà´• ഔക ഔദàµà´¯àµ‹à´—à´¿à´• സവ à´¸àµà´µàµ€à´•à´°àµâ€à´¤àµà´¤à´¾à´µàµ പഷ à´ªàµà´°àµ‡à´•àµà´·à´¿à´¤à´¨àµâ€ തങ à´¤àµà´Ÿà´™àµà´™ വഥ à´µàµà´¯à´µà´¸àµà´¥ വത à´µàµà´¯à´¤àµà´¯à´¸àµà´¤ തപ താഴെ-പറയàµà´¨àµà´¨ തക താഴെ-കൊടàµà´¤àµà´¤ മല മലയാളകàµà´•à´° ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/beginning.txt000077500000000000000000000010241276165756300302540ustar00rootroot000000000000004 ൠ3 ൠ235 à´« 8 àµâ€ 124 à´‹ 1 à´… 345 à´† 24 à´‡ 35 à´ˆ 136 à´‰ 1256 à´Š 26 à´Ž 15 à´ 34 à´ 1346 à´’ 135 à´“ 246 à´” 56 à´‚ 13 à´• 46 à´– 1245 à´— 126 à´˜ 346 à´™ 14 à´š 16 à´› 245 à´œ 356 à´ 23456 à´Ÿ 2456 à´  1246 à´¡ 123456 à´¢ 12345 à´•àµà´· 3456 à´£ 2345 à´¤ 1456 à´¥ 145 à´¦ 2346 à´§ 1345 à´¨ 1234 à´ª 12 à´¬ 45 à´­ 134 à´® 13456 à´¯ 1235 à´° 123 à´² 1236 à´µ 146 à´¶ 12346 à´· 234 à´¸ 125 à´¹ 456 à´³ 12356 à´´ 12456 à´± 25 à´ž 23 നിരàµâ€ 2 നിഷൠ1356 അനൠ256 . 2356 പരി 236 à´…à´­à´¿ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/help.txt000077500000000000000000000421311276165756300272500ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY à´šàµà´°àµà´•àµà´•െഴàµà´¤àµà´¤àµ സഹായി. ഡോടàµà´Ÿàµ 3 കൊണàµà´Ÿàµà´³àµà´³à´µ. ഡോടàµà´Ÿàµ 3 à´…à´Ÿà´¿à´šàµà´š ശേഷം à´… à´Žà´¨àµà´¨à´¾à´² ഠആവശàµà´¯ à´‡ ഇതàµà´¤à´° à´‰ ഉദാഹര à´Š à´Šà´°àµâ€à´œ à´Ž à´Žà´²àµà´²à´¾ à´ à´à´±àµà´±à´µàµ à´’ à´’à´°à´¿à´•àµà´• à´• കാരണ à´š ചോദി à´œ ജനങàµà´™ à´¦ ദിവസ à´§ ധാരാള à´ª പറഞàµà´ž à´® മനàµà´·àµà´¯ à´µ വളരെ à´¶ ശാസàµà´¤àµà´° à´± à´ªàµà´°à´§à´¾à´¨ à´ˆ ഈശàµà´µà´° à´“ ഒഴികെ à´ à´à´•àµà´¯ à´” ഔദാരàµà´¯ à´‚ ഇടയില à´— à´—àµà´£ à´˜ ഘടക à´™ നിങàµà´™ à´› à´…à´šàµà´› à´ž à´žà´™àµà´™ à´Ÿ à´•à´¿à´Ÿàµà´Ÿ à´¢ വേണàµà´Ÿ à´£ വേണ à´¤ തതàµà´•ാല à´¨ നമàµà´® à´¬ ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´Ÿ à´¯ യതാരàµâ€à´¤ à´² ലകàµà´·àµà´¯ à´¸ സാംസàµà´•ാരിക à´´ à´•à´´à´¿à´žàµà´ž à´§ സാവധാന f പലതര ഡോടàµà´Ÿàµ 1 5 6 à´¤àµà´Ÿà´°àµâ€à´¨àµà´¨àµ വരàµà´¨àµà´¨à´µ. à´š ചിലപàµà´ªàµ‹ à´¤ താരതമàµà´¯ à´µ വിദàµà´¯à´¾à´°àµâ€à´¤à´¿ à´® മലയാള à´° രാജàµà´¯ à´± à´ªàµà´°à´¤àµà´¯àµ‡à´• à´… à´ªàµà´°à´•ാര à´† ആയിരàµà´¨àµà´¨ à´‡ ഇരàµà´¨àµà´¨ à´ˆ ഇലàµâ€à´¨à´¿à´¨àµà´¨ à´Ž à´Žà´™àµà´•à´¿à´² à´‰ ഉണàµà´Ÿà´¾à´¯ à´Š ലൂടെ ഠമായി à´” ഉണàµà´Ÿàµ à´• കൃതàµà´¯ ൊ à´’à´°àµà´®à´¿à´šàµà´š à´ à´à´•àµà´•ാള à´– à´•àµà´•àµà´±à´¿à´šàµà´š à´¦ ദൈവ à´¨ നലàµà´² à´ª പരസàµà´ªà´° à´² ലഘൠസ സൗകരàµà´¯ à´¹ ഹൃദയ à´´ കാഴàµà´š à´§ à´ªàµà´°à´¾à´§à´¾à´¨àµà´¯ à´¥ താതàµà´ªà´°àµà´¯ à´¯ യാഥാരàµâ€à´¤àµà´¯ ആറാം à´•àµà´¤àµà´¤à´¿à´¨àµ ശേഷം വരàµà´¨àµà´¨à´µ à´‰ ഉപയോഗ à´ª à´ªàµà´°à´¸à´¿à´¦àµà´§ à´® à´®àµà´¤à´² à´µ വലിയ à´¸ സാധാരണ à´´ à´®àµà´´àµà´µ à´… à´¤àµà´¯à´¾à´µà´¶àµà´¯ à´† ആഗàµà´°à´¹ à´‡ ഇപàµà´ªàµ‹ f à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤ à´Ž à´Žà´¨àµà´¤àµ†à´²àµà´²à´¾ à´ à´à´¤àµ†à´²àµà´²à´¾ à´’ à´’à´Ÿàµà´Ÿ à´“ à´®àµà´ªàµ‹à´³ à´” ഓടൠഈ ഇരികàµà´• à´• à´•à´£àµà´Ÿ à´— ഗവേഷ à´˜ ആഘോഷ à´š ചെയàµà´¤ à´œ ജീവിത à´¤ തീരàµâ€à´š à´­ à´­à´°à´£ à´² ലഭികàµà´• à´¶ à´¶à´•àµà´¤ à´± à´•àµà´±à´šàµà´š à´‚ à´ªàµà´ªàµ†à´Ÿàµà´Ÿ ഡോടàµà´Ÿàµ മൂനàµà´¨àµ ആറൠശേഷം വരàµà´¨àµà´¨à´µ à´ˆ à´™àµà´™à´³àµâ€ à´‰ ഉതàµà´¤à´° à´Š à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨ à´Ž à´Žà´™àµà´™à´¨àµ† à´ à´à´¤àµŠà´°àµ à´’ à´™àµà´™à´³àµâ€ à´š ചോദàµà´¯ à´¨ നിശàµà´š à´ª à´ªàµà´°à´¤à´¿ à´° രാഷàµà´Ÿàµà´° à´µ വിദàµà´¯à´¾ ഡോടàµà´Ÿàµ 5 നൠശേഷം വരàµà´¨àµà´¨à´µ à´› à´žàµà´š à´  à´£àµà´Ÿ à´œàµà´ž à´œàµà´ž à´¥ à´¤àµà´¸ à´§ à´¦àµà´§ à´« à´ªàµà´¤ à´­ à´®àµà´ª à´´ à´´àµà´¤ à´· à´·àµà´Ÿ à´¹ à´·àµà´• à´† à´™àµà´• à´‡ à´¨àµà´¤ à´ˆ à´¸àµà´¤ à´‰ à´¸àµà´¤ à´Š à´¸àµà´¨ à´Ž à´¸àµà´® à´ à´¸àµà´• ഠമായ à´’ à´·àµà´£ à´“ à´¸àµà´±àµà´± à´” à´¸àµà´ª à´° തനàµà´¤àµà´°àµà´¯ മറàµà´±àµ വെഞàµà´œà´¨à´™àµà´™à´³àµâ€ ഇരടàµà´Ÿà´¿à´•àµà´•àµà´¨àµà´¨àµ à´šàµà´°àµà´•àµà´•െഴàµà´¤àµà´¤àµà´•à´³àµâ€ ഇവ à´…à´Ÿà´¿à´šàµà´š ശേഷം à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµ† a à´Žà´¨àµà´¨ à´…à´•àµà´·à´°à´‚ അമരàµâ€à´¤àµà´¤àµà´• à´… à´…à´¤àµà´¯à´¾à´µà´¶àµà´¯ à´† ആവശàµà´¯ à´‡ ഇതàµà´¤à´° à´‰ ഉദാഹര à´ˆ ഈശàµà´µà´° à´Ž à´Žà´²àµà´²à´¾ à´ à´à´±àµà´±à´µàµ à´ à´à´•àµà´¯ à´’ à´’à´°à´¿à´•àµà´• à´“ ഓരോ à´” ഔദാരàµà´¯ à´‹ പലതര ആഭ ആരംഭ ഇെ ഇങàµà´™à´¨àµ† ഈപ ഈരàµâ€à´ª ഉത ഉതàµà´¤à´° à´Šà´· à´Šà´·àµà´® എെ à´Žà´™àµà´™à´¨àµ† à´àµ à´à´¤àµŠà´°àµ à´’à´§ à´’à´°àµà´µà´¿à´§ à´…à´ª à´…à´ªàµà´°à´•ാര ഇപ ഇപàµà´°à´•ാര à´Žà´ª à´Žà´ªàµà´°à´•ാര à´’à´š à´’à´°àµà´®à´¿à´šàµà´š à´…à´­ à´…à´¨àµà´­à´µ ആഹ ആഗàµà´°à´¹ ഇോ ഇപàµà´ªàµ‹ ഉഗ ഉപയോഗ പറ à´ªàµà´°à´µà´°àµâ€à´¤ à´Žà´² à´Žà´¨àµà´¤àµ†à´²àµà´²à´¾ à´à´² à´à´¤àµ†à´²àµà´²à´¾ à´’à´Ÿ à´’à´Ÿàµà´Ÿ ആഘ ആഘോഷ à´•à´š à´•àµà´±à´¿à´šàµà´š à´•à´· à´…à´•àµà´·à´° à´…à´Ÿ അവിടെ ഇട ഇവിടെ à´…à´• à´…à´¤àµà´•ൊണàµà´Ÿ à´…à´² à´…à´¤àµà´ªàµ‹à´²àµ† ആക ആയതàµà´•ൊണàµà´Ÿ ഇല ഇതàµà´ªàµ‹à´²àµ† à´Žà´Ÿ എവിടെ à´Žà´• à´Žà´¨àµà´¤àµà´•ൊണàµà´Ÿ ജപ ജനാധിപതàµà´¯ തപ താഴെ പറയàµà´¨àµà´¨ തക താഴെ കൊടàµà´¤àµà´¤ ഇയ ഇടയില à´Žà´¨ à´Žà´¨àµà´¨à´¾à´² ഉട ഉണàµà´Ÿà´¾à´¯à´¿à´°àµà´¨àµà´¨ പധ à´ªàµà´°à´¤à´¿à´¨à´¿à´§àµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ ഔക ഔദàµà´¯àµ‹à´—à´¿à´• ഇനി à´šà´¿à´² പദാരംഭ à´šà´¿à´¹àµà´¨à´™àµà´™à´³àµâ€ dot 2 3 നിരàµâ€ dot 2 നിഷൠdot 1 2 3 4 5 à´•àµà´· dot 2 5 6 dot ഇനി à´šà´¿à´² പദമധàµà´¯ à´šà´¿à´¹àµà´¨à´™àµà´™à´³àµâ€. ഡോടàµà´Ÿàµ 2 3 5 6 à´°àµâ€, ഡോടàµà´Ÿàµ 2 3 6 àµà´¯, ഡോടàµà´Ÿàµ 2 5 6 . fulstop, ഡോടàµà´Ÿàµ 1 2 3 4 5 à´•àµà´·, ഡോടàµà´Ÿàµ 2 àµà´°, ഡോടàµà´Ÿàµ 2 3 àµà´µ à´Žà´¨àµà´¨àµ ചേരàµâ€à´•àµà´•àµà´¨àµà´¨àµ. നിരàµâ€à´¦àµ‡à´¶à´™àµà´™à´³àµâ€. 1 à´…à´¬àµà´°à´¿à´µà´¿à´¯àµ‡à´·à´¨àµà´•à´³àµâ€ പദാരംഭതàµà´¤à´¿à´²àµâ€ മാതàµà´°à´®àµ‡ ഉപയോഗികàµà´•ാനàµâ€ പാടàµà´³àµà´³àµ‚. 2 ഡോടàµà´Ÿàµ 5, ഡോടàµà´Ÿàµ 3, ഡോടàµà´Ÿàµ 1 5 6, ഡോടàµà´Ÿàµ 6, ഡോടàµà´Ÿàµ 3 6, à´Žà´¨àµà´¨àµ€ à´•àµà´¤àµà´¤àµà´•à´³àµâ€à´•àµà´•ൠശേഷം വരàµà´¨àµà´¨ à´šàµà´°àµà´•àµà´•െഴàµà´¤àµà´¤àµà´•ളിലàµâ€ à´¸àµà´µà´°à´¾à´•àµà´·à´°à´™àµà´™à´³à´¿à´²àµâ€ ആരംഭികàµà´•àµà´¨àµà´¨à´µ പദാരംഭതàµà´¤à´¿à´²àµâ€ യാതൊരൠകാരണ വശാലàµà´‚ ഉപയോഗികàµà´•à´°àµà´¤àµ. 3 à´šà´¿à´²àµà´²à´•àµà´·à´°à´™àµà´™à´³àµâ€ à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨àµ അതാതൠഅകàµà´·à´°à´™àµà´™à´³àµâ€à´•àµà´•ൠശേഷം G അമരàµâ€à´¤àµà´¤àµà´•. 4 കൂടàµà´Ÿà´•àµà´·à´°à´™àµà´™à´³àµâ€ à´Žà´´àµà´¤àµà´®àµà´ªàµ‹à´³àµâ€ à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€à´•àµà´•ിടയിലാണൠനാലാം à´•àµà´¤àµà´¤àµ ഇടേണàµà´Ÿà´¤àµ. 5 à´šà´¿à´¹àµà´¨à´™àµà´™à´³àµ†à´´àµà´¤àµà´®àµà´ªàµ‹à´³àµâ€ സെമികàµà´•ോളനàµâ€ അമരàµâ€à´¤àµà´¤à´¿à´¯ ശേഷം à´šà´¿à´¹àµà´¨à´‚ à´Žà´´àµà´¤àµà´µà´¾à´¨àµâ€. 6 à´…à´•àµà´•à´™àµà´™à´³àµâ€ à´Žà´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨àµâ€ സെമീകàµà´•ോളനàµà´¶àµ‡à´·à´‚ à´…à´•àµà´•à´™àµà´™à´³àµâ€à´•àµà´•ൠതàµà´²àµà´¯à´®à´¾à´¯ ഇനàµâ€à´—àµà´³àµ€à´·àµâ€ à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€ à´Žà´´àµà´¤àµà´•. 7 വിസരàµâ€à´—àµà´—à´‚ à´Žà´´àµà´¤à´¾à´¨àµâ€ സെമികàµà´•ോളനàµâ€ അമരàµâ€à´¤àµà´¤à´¿à´¯ ശേഷം 4 6 അമരàµâ€à´¤àµà´¤àµà´•. 8 à´‹ à´Žà´¨àµà´¨ à´…à´•àµà´·à´°à´®àµ†à´´àµà´¤à´¾à´¨àµâ€ 1 2 4 അമരàµâ€à´¤àµà´¤àµà´•. 9 à´…à´¬àµà´°à´¿à´µàµ‡à´·à´¨àµâ€ കീ ആയ കീബോഡിലെ à´Ž à´Žà´¨àµà´¨ à´•à´¿ à´šàµà´°àµà´•àµà´•à´™àµà´™à´³àµ† വികസിപàµà´ªà´¿à´•àµà´•ാനàµâ€ മാതàµà´°à´®àµ† ഉപയോഗികàµà´•ാവàµ. അനാവശàµà´¯à´®à´¾à´¯à´¿ ഉപയോഗിചàµà´šà´¾à´²àµâ€ അവസാനമെഴàµà´¤à´¿à´¯ വാകàµà´•ൠനഷàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´‚ കൂടാതെ അതിനൠമàµà´®àµà´ªà´¿à´²à´¾à´¯àµà´³àµà´³ വാകàµà´•ൠചിലàµà´²à´•àµà´·à´°à´¤àµà´¤à´¿à´²à´µà´¸à´¾à´¨à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¾à´£àµ†à´™àµà´•à´¿à´²àµâ€ അതിനàµâ€à´±àµ† à´šà´¿à´²àµà´²àµà´‚ നഷàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´‚. ഇങàµà´™à´¨àµ† സംഭവിചàµà´šà´¾à´²àµâ€ 2 തവണ à´Žà´šàµà´šàµ കീ അമരàµâ€à´¤àµà´¤à´¿ à´¸àµà´ªàµ‡à´¸àµ അമരàµâ€à´¤àµà´¤à´¿ നഷàµà´Ÿà´ªàµà´ªàµ†à´Ÿàµà´Ÿ വാകàµà´•ൠവീണàµà´Ÿàµà´‚ à´Žà´´àµà´¤àµà´•. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/middle.txt000077500000000000000000000010051276165756300275510ustar00rootroot000000000000004 ൠ3 ൠ8 àµâ€ 124 ൃ 345 à´¾ 24 à´¿ 35 ീ 136 ൠ1256 ൂ 26 െ 15 േ 34 ൈ 1346 ൊ 135 ോ 246 ൗ 56 à´‚ 13 à´• 46 à´– 1245 à´— 126 à´˜ 346 à´™ 14 à´š 16 à´› 245 à´œ 356 à´ 25 à´ž 23456 à´Ÿ 2456 à´  1246 à´¡ 123456 à´¢ 3456 à´£ 2345 à´¤ 1456 à´¥ 145 à´¦ 2346 à´§ 1345 à´¨ 1234 à´ª 235 à´« 12 à´¬ 45 à´­ 134 à´® 13456 à´¯ 1235 à´° 123 à´² 1236 à´µ 146 à´¶ 12346 à´· 234 à´¸ 125 à´¹ 456 à´³ 12356 à´´ 12456 à´± 2 àµà´° 12345 à´•àµà´· 23 àµà´µ 256 . 1356 à´¨àµâ€ 1 àµà´‚ 2356 à´°àµâ€ 236 àµà´¯ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/malayalam/punctuations.txt000077500000000000000000000004051276165756300310520ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/000077500000000000000000000000001276165756300255745ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/Makefile.am000066400000000000000000000020311276165756300276240ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_numerical_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_numericaldir = $(pkgdatadir)/braille/numerical CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/abbreviations.txt000077500000000000000000000000341276165756300311650ustar00rootroot00000000000000sbw sharada-braille-writer abbreviations_default.txt000077500000000000000000000000341276165756300326120ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numericalsbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/beginning.txt000077500000000000000000000004011276165756300302730ustar00rootroot000000000000002 1 23 2 25 3 256 4 26 5 235 6 2356 7 236 8 35 9 356 0 346 + 36 - 16 * 34 / 3 . 123456 = 1235 ^ 156 _ 1 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/help.txt000077500000000000000000000210651276165756300272740ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/middle.txt000077500000000000000000000004011276165756300275710ustar00rootroot000000000000002 1 23 2 25 3 256 4 26 5 235 6 2356 7 236 8 35 9 356 0 346 + 36 - 16 * 34 / 3 . 123456 = 1235 ^ 156 _ 1 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 135 o 1234 p 12345 q 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/numerical/punctuations.txt000077500000000000000000000004051276165756300310730ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/000077500000000000000000000000001276165756300252625ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/Makefile.am000066400000000000000000000020231276165756300273130ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_spanish_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_spanishdir = $(pkgdatadir)/braille/spanish CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/abbreviations.txt000077500000000000000000000000341276165756300306530ustar00rootroot00000000000000sbw sharada-braille-writer abbreviations_default.txt000077500000000000000000000000341276165756300323000ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanishsbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/beginning.txt000077500000000000000000000003221276165756300277630ustar00rootroot000000000000001 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 12456 ñ 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 12356 á 2346 é 34 í 346 ó 23456 ú ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/help.txt000077500000000000000000000210651276165756300267620ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/middle.txt000077500000000000000000000003221276165756300272610ustar00rootroot000000000000001 a 12 b 14 c 145 d 15 e 124 f 1245 g 125 h 24 i 245 j 13 k 123 l 134 m 1345 n 12456 ñ 135 o 1234 p 12345 q 1235 r 234 s 2345 t 136 u 1236 v 2456 w 1346 x 13456 y 1356 z 12356 á 2346 é 34 í 346 ó 23456 ú ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/spanish/punctuations.txt000077500000000000000000000004051276165756300305610ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/000077500000000000000000000000001276165756300247235ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/Makefile.am000066400000000000000000000020151276165756300267550ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. braille_tamil_DATA = \ abbreviations.txt \ abbreviations_default.txt \ beginning.txt \ help.txt \ middle.txt \ punctuations.txt \ $(NULL) braille_tamildir = $(pkgdatadir)/braille/tamil CLEANFILES = \ *~ \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/abbreviations.txt000077500000000000000000000000341276165756300303140ustar00rootroot00000000000000sbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/abbreviations_default.txt000077500000000000000000000000341276165756300320200ustar00rootroot00000000000000sbw sharada-braille-writer ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/beginning.txt000077500000000000000000000004431276165756300274300ustar00rootroot000000000000001 à®… 345 ஆ 24 இ 35 ஈ 136 உ 1256 ஊ 26 எ 15 à® 34 à® 1346 à®’ 135 ஓ 246 à®” 6 ஃ 13 க 346 à®™ 14 ச 25 ஞ 23456 ட 3456 ண 2345 த 1345 ந 1234 ப 134 à®® 13456 ய 1235 à®° 123 ல 1236 வ 12356 à®´ 456 ள 12456 à®± 56 ன 245 ஜ 12346 à®· 234 ஸ 125 ஹ 4 ௠ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/help.txt000077500000000000000000000210651276165756300264230ustar00rootroot00000000000000Sharada braille writer is a text editor using a six key approach for producing print materials in different languages. It is written in python3 with gtk3 framework. It uses letters f, d, s, j, k, and l in the keyboard to represent 1, 2, 3, 4, 5 and 6 of the braille dots respectively. One can use different combinations of braille to produce text. For example key 'f' will produce 'a', 'f' and 'd' will produce 'b' and 'f' and 'j' will produce 'c' and like. The combination of keys should be pressed and released together. What is new in Sharada braille writer 2.0. 1 - Now using Python3 with gtk3, 2 - Auto new line, 3 - Layout independent, 4 - work with different distribution of Linux, 5 - Easy to add new language, 6 - List switcher using Alt, 7 - separate abbreviation and punctuation list for each language, 8 - Common text manipulation keys activated, 9 - Simple Mode, 10 - Python espeak no longer required, 11 - Version independent, 12 - Open with SBW enabled, 13 - Delete event cancel problem solved, 14 - Options moved to main window, 15 - No garbage printing and no longer hang. Features Languages : - This version comes with six languages English, Malayalam, Hindi, Kannada, Tamil, and Spanish. English is the default language, and one can switch to other languages by pressing f2 for Hindi, f3 for Kannada, f4 for malayalam, f5 for Spanish and f6 Tamil. One can go back too English using f1 key. One can select the language by using language menu as well. Orca support : - Sbw is fully orca supported and one can use the orca preferences for changing voices, punctuation levels to be pronounced, key echo by character etc. In order to activate orca preferences for sbw one should press insert+control+space together after opening the program. After the installation of the program, we recommend you to open the orca preferences for sbw and check the echo by character and uncheck the key echo to get a better speech support. To get speech support for Kannada and Tamil one should change the language to that language using the orca preferences for sbw. Contractions : - All the grade 2 and grade 3 contractions in English and Malayalam is available in sbw. In order to activate contractions one should uncheck the simple mode.To produce contraction, press the combination of letters after pressing the contraction key, Dot 5, 5-6, 4-5-6, 4, 3, 3-6, 6, 3, 1-5-6 are the contraction signs. For example, press f and d together after pressing 'j' will produce word "better" and like. Along with these contractions, we have provided some contractions in the simple mode itself. For this purpose we have used the combinations which are not used for alphabets. Contraction guide is provided in the end. Abbreviations : - One major feature of sbw is the facility to add new abbreviations. In order to add the abbreviation 1 - press alt+shift+o or go to the abbreviation menu in the menu-bar and open. 2 - type the abbreviated word and then press space twice and then type the word or words to be expanded. 3 - press alt+shift+s to save the combination. Alt+shift+r will delete all newly added abbreviations and restore the list to the default position. We have already provided all the grade 3 abbreviations in the package. letter 'a' is the abbreviation key and one should press 'a' after typing the abbreviation. list of default abbreviations are given at the end. Numerals : - By pressing f7 key one can select numeral mode. Nemeth code approach is accepted here. In this mode, d, s, k, l representing 2, 3, 5, 6 of the braille dots are used for numbers that is d for 1 and d, s together for 2 etc. Other letters are written as in braille mode.f, k, l combination is used to produce underscore an this combination can be used to produce line in any text. Numeral mode is used for handling mathematics. Punctuations : - To produce any punctuation one should press semicolon in the ordinary keyboard and then press necessary combinations. In order to meet certain situations we have made some changes in the list. Please not that we have selected some combinations which are different from conventional braille. d , coma, ds ; semicolon, dk : colon, dkl . fulstop, dl " double quote, sk ' apostrophe or single-quote, fl - hyphen, fds ( left-paren, jkl ) right-paren, dsk ! exclamation-mark, dsl ? question-mark, fdsj % percent, fsk < less-than, djl > greater-than, fdl [ left-bracket, sjk ] right-bracket, fsj { left-brace, fjl } right-brace, dsjk @ fdsjkl = equals, kl ° degrees, s . dot, fsl _ underline, fdjl $ fdsk ^ djkl √ fdjkl Rupees Sign press these key combinations after pressing semicolon in the key-board. Beginning list and middle list : - Left alt and right alt are used to switch bitween beginning list and middle list. This will help the user to write any letter anywhere. for example one can write a vowel in hindi inside a word. To write a full vowel instead of a sign, one should press left alt and then type the combination needed for the vowel. Fond and fond size : - Now we can change the fond and size of the text. To change the fond and size, press tab once and enter in the fond menu. Here one can select fond by using down arrow and change size by selecting size using tab key. again go to select button using tab and enter. To continue writing, tab again to text. Fond and background colour : - Now one can change the colour of the fond and background. use the tab key to select the colour as in the case of fond. Spell checker : - Sbw has a spell checker and at present it will support English. Audio converter : - audio converter in the tools menu will help one to convert text in to wave format and then can be used in other mobile devices to listen to. Simple-Mode : - sbw is installed as the simple mode checked. This is done to avoid complications for a beginner. An advanced user can uncheck the simple mode using the tab key and can use contractions and abbreviations. Auto-New-Line : - One can select line limit using the tab key.After selecting the number of characters needed on a line, orca will announce the fact when one cross the limit. Anyhow the program is installed auto new line as default. In this mode the program itself will select the new line when one cross the limit and press the space. Navigation : - Ctrl+home,ctrl+end will help to move to the top and end of the file. Arrow keys will help to navigate through text line by line and letter by letter. Ctrl+right arrow will help to navigate between words. control+i will help to go to a line. Text Manipulation : - Letter 'g' is used to produce capital letter in English and chillu in malayalam. press letter 'g' before typing the braille combination to make a letter capital and press 'g' after typing the braille combination to make a letter chillu in malayalam. If 'g' is pressed before using a contracted word, whole letters will be in capital. Letter 'h' will delete the last letter typed and 'g' and 'h' pressed together will delete the last word. Backspace and delete button also will function to delete the selected area. control+shift+right arrow will select the word and Ctrl+c will copy the file. Copyright (c) 2011-2013 LIOS Development Team All rights reserved . Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the below copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the below copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the nor the Lios team names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." FREE SOFTWARE FREE SOCIETY ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/middle.txt000077500000000000000000000004521276165756300267260ustar00rootroot000000000000001 ௮ 345 ா 24 ி 35 ீ 136 ௠1256 ூ 26 ெ 15 ே 34 ை 1346 ொ 135 ோ 246 ௌ 6 ௱ 13 க 346 à®™ 14 ச 25 ஞ 23456 ட 3456 ண 2345 த 1345 ந 1234 ப 134 à®® 13456 ய 1235 à®° 123 ல 1236 வ 12356 à®´ 456 ள 12456 à®± 56 ன 245 ஜ 12346 à®· 234 ஸ 125 ஹ 4 ௠45 ஂ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/braille/tamil/punctuations.txt000077500000000000000000000004051276165756300302220ustar00rootroot000000000000002 , 23 ; 25 : 256 . 235 ! 236 ? 123 ( 456 ) 126 [ 345 ] 134 { 146 } 12456 ₹ 246 < 135 > 35 ' 26 " 2345 @ 1345 # 12346 & 1 1 12 2 14 3 145 4 15 5 124 6 1245 7 125 8 24 9 245 0 346 + 16 - 356 * 34 / 123456 = 1234 % 56 ° 3 . 136 _ 1246 $ 1235 ^ 2456 √ 46 à´ƒ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/codereview.settings000066400000000000000000000001531276165756300261200ustar00rootroot00000000000000# This file is used by "git cl" to get code review information. CODE_REVIEW_SERVER: codereview.appspot.com ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/configure.ac000066400000000000000000000047511276165756300245000ustar00rootroot00000000000000# vim:set et ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # if not 1, append datestamp to the version number. m4_define([package_name], [ibus-braille]) m4_define([ibus_released], [1]) m4_define([ibus_major_version], [1]) m4_define([ibus_minor_version], [2]) m4_define([ibus_micro_version], [99]) m4_define(ibus_maybe_datestamp, m4_esyscmd([if test x]ibus_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi])) m4_define([ibus_version], ibus_major_version.ibus_minor_version.ibus_micro_version[]ibus_maybe_datestamp) AC_INIT([package_name], [ibus_version], [http://code.google.com/p/ibus/issues/entry], [package_name]) AM_INIT_AUTOMAKE([1.10]) AC_GNU_SOURCE AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) # define PACKAGE_VERSION_* variables #AS_VERSION #AS_NANO AM_SANITY_CHECK AM_MAINTAINER_MODE AM_DISABLE_STATIC AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CXX AC_ISC_POSIX AC_HEADER_STDC AM_PROG_LIBTOOL # Define python version AC_ARG_WITH(python, AS_HELP_STRING([--with-python[=PATH]], [Select python2 or python3]), [PYTHON=$with_python], [] ) #check python AM_PATH_PYTHON([2.5]) # OUTPUT files AC_CONFIG_FILES( Makefile engine/Makefile engine/ibus-braille engine/braille.xml.in icons/Makefile m4/Makefile braille/Makefile braille/english/Makefile braille/french/Makefile braille/hindi/Makefile braille/kannada/Makefile braille/malayalam/Makefile braille/numerical/Makefile braille/spanish/Makefile braille/tamil/Makefile braille/arabic/Makefile braille/braille/Makefile preferences/Makefile preferences/ibus-braille-preferences abbreviation-editor/Makefile abbreviation-editor/ibus-braille-abbreviation-editor language-editor/Makefile language-editor/ibus-braille-language-editor ) AC_OUTPUT ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/000077500000000000000000000000001276165756300234505ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/Makefile.am000066400000000000000000000025231276165756300255060ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. engine_enchant_PYTHON = \ engine.py \ main.py \ $(NULL) engine_enchantdir = $(datadir)/ibus-braille bin_SCRIPTS = ibus-braille component_DATA = braille.xml componentdir = $(datadir)/ibus/component CLEANFILES = \ *.pyc \ $(NULL) EXTRA_DIST = \ ibus-braille.in \ braille.xml.in.in \ $(NULL) braille.xml: braille.xml.in $(AM_V_GEN) \ ( \ libexecdir=${libexecdir}; \ pkgdatadir=${pkgdatadir}; \ s=`cat $<`; \ eval "echo \"$${s}\""; \ ) > $@ test: $(ENV) \ LANG=en_US \ PYTHONPATH=$(top_srcdir) \ $(PYTHON) $(srcdir)/main.py ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/braille.xml.in.in000066400000000000000000000014731276165756300266230ustar00rootroot00000000000000 org.freedesktop.IBus.SharadaBraille Braille Component /usr/bin/ibus-braille --ibus @VERSION@ Nalin.x.Linux <Nalin.x.Linux@gmail.com> GPL https://github.com/Nalin-x-Linux/ibus-braille ibus-braille braille GPL Nalin.x.Linux <Nalin.x.Linux@gmail.com> ${pkgdatadir}/icons/ibus-braille.png Braille Braille Input Method 0 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/engine.py000066400000000000000000000341731276165756300252770ustar00rootroot00000000000000# vim:set et sts=4 sw=4: # # ibus-sharada-braille - The Braille Input Bus project # # Copyright (c) 2014-2015 Nalin.x.Linux # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # for python2 from __future__ import print_function import os import configparser from gi.repository import GLib from gi.repository import IBus from gi.repository import Pango #Liblouis import louis # For 3 dot system from threading import Timer keysyms = IBus #Where the data is located data_dir = "/usr/share/ibus-braille"; home_dir = os.environ['HOME'] ########################## Temporary fix ################### espeak_available = 0 speechd_available = 0; try: import speechd speechd_available = 1; client = speechd.Client() except: try: from espeak import espeak espeak_available = 1; except: espeak_available = 0; def speak(text): if(speechd_available): client.speak(text); elif (espeak_available): espeak.synth(text) else: print("No tts api available!(python3-espeak/python3-speechd)"); def set_language(language): print(language) if(speechd_available): client.set_language(language) elif (espeak_available): espeak.set_voice(language) else: pass ####### End of Temporary fix ############# class EngineSharadaBraille(IBus.Engine): __gtype_name__ = 'EngineSharadaBraille' def __init__(self): super(EngineSharadaBraille, self).__init__() self.pressed_keys = u"" Config = configparser.ConfigParser() try: Config.read("{}/isb.cfg".format(home_dir)) self.checked_languages = Config.get('cfg',"checked_languages").split(",") self.simple_mode = int(Config.get('cfg',"simple-mode")) self.keycode_map = {} for key,value in {"dot-1":"1","dot-2":"2","dot-3":"3","dot-4":"4","dot-5":"5", "dot-6":"6","dot-7":"7","dot-8":"8","punctuation_key":"0","capitol_switch_key":"c", "letter_deletion_key":"9","abbreviation_key":"a","one_hand_skip_key":"o"}.items(): self.keycode_map[int(Config.get('cfg',key))] = value self.key_to_switch_between_languages = int(Config.get('cfg',"switch_between_languages")) self.list_switch_key = int(Config.get('cfg',"list_switch_key")) self.language_iter = int(Config.get('cfg',"default-language")) self.conventional_braille = int(Config.get('cfg',"conventional-braille")) self.liblouis_mode = int(Config.get('cfg',"liblouis-mode")) self.one_hand_mode = int(Config.get('cfg',"one-hand-mode")) self.one_hand_conversion_delay = int(Config.get('cfg',"one-hand-conversion-delay"))*1/1000; self.liblouis_table_list = Config.get('cfg',"liblouis-table-list").split(",") except: self.checked_languages = ["english-en","hindi-hi"] self.simple_mode = 0 self.keycode_map = {33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",44:"7",52:"8",30:"a",34:"c",35:"9",39:"0"} self.key_to_switch_between_languages = 119 self.list_switch_key = 56 self.language_iter = 0 self.conventional_braille = False; self.one_hand_mode = False self.one_hand_conversion_delay = 0.5 self.liblouis_mode = False; self.liblouis_table_list = ['unicode.dis','en-us-g2.ctb']; self.conventional_braille_dot_4 = False; self.conventional_braille_dot_4_pass = False; self.conventional_braille_dot_3 = False; #Three dot braille self.three_dot_pos = 1; #Braille Iter's self.braille_letter_map_pos = 0; #capital switch self.capital_switch = 0; self.capital = 0 self.__is_invalidate = False self.__preedit_string = "" self.__lookup_table = IBus.LookupTable.new(10, 0, True, True) self.__prop_list = IBus.PropList() self.__prop_list.append(IBus.Property(key="test", icon="ibus-local")) #Load the first language by default self.load_map(self.checked_languages[self.language_iter]) def do_enable (self): # Tell the input-context that the engine will utilize # surrounding-text: self.get_surrounding_text() self.do_focus_in(self) def do_process_key_event(self, keyval, keycode, state): is_press = ((state & IBus.ModifierType.RELEASE_MASK) == 0) no_control = ((state & IBus.ModifierType.CONTROL_MASK) == 0) no_alt = ((state & IBus.ModifierType.META_MASK) == 0) no_shift = ((state & IBus.ModifierType.SHIFT_MASK) == 0) no_super = ((state & IBus.ModifierType.SUPER_MASK) == 0) no_extra_mask = (no_control & no_alt & no_shift & no_super) if (not no_extra_mask): return False; #if (not is_control and not is_alt and not is_shift and not is_super): # return False; #Key Release if not is_press: ordered_pressed_keys = self.order_pressed_keys(self.pressed_keys); if (ordered_pressed_keys == "3" and self.conventional_braille): self.conventional_braille_dot_3 = True; self.old_braille_letter_map_pos = self.braille_letter_map_pos #Move map position to contraction if any if (ordered_pressed_keys in self.contractions_dict.keys() and self.liblouis_mode == False and self.one_hand_mode == False): self.braille_letter_map_pos = self.contractions_dict[ordered_pressed_keys]; #Toggle Punctuation elif ordered_pressed_keys == "0": self.braille_letter_map_pos = 2; #Expand Abbreviation elif (ordered_pressed_keys == "a" and self.simple_mode == 0): #self.pressed_keys = ""; surrounding_text = self.get_surrounding_text() text = surrounding_text[0].get_text() cursor_pos = surrounding_text[1] string_up_to_cursor = text[:cursor_pos]; last_word = string_up_to_cursor.split()[-1] #Substitute abbreviation if exist and letter bofore the cursor is not space if (last_word in self.abbreviations.keys() and string_up_to_cursor[-1] != " "): self.delete_surrounding_text(-(len(last_word)),len(last_word)); for key,value in self.abbreviations.items(): if key == last_word: self.__commit_string(value) #Fixme Why this heck is not working :( ?? #self.__commit_string(self.abbreviations[last_word.decode('UTF-8')].decode('UTF-8')) #Delete Last word elif (ordered_pressed_keys == "c9"): surrounding_text = self.get_surrounding_text() text = surrounding_text[0].get_text() cursor_pos = surrounding_text[1] string_up_to_cursor = text[:cursor_pos]; #If end is space, then count backword till a space found if (string_up_to_cursor[-1] == " "): count = 0 char_found = 0; for item in string_up_to_cursor[::-1]: if (item != " "): char_found = 1; if (item == " " and char_found == 1): break; count += 1 self.delete_surrounding_text(-(count),count); speak(string_up_to_cursor[-(count):]+"Deleted") #If end is not space, delete length of last word else: count = len(string_up_to_cursor.split()[-1]) self.delete_surrounding_text(-(count),count); speak(string_up_to_cursor.split()[-1]+"Deleted") #Delete Last letter elif (ordered_pressed_keys == "9"): surrounding_text = self.get_surrounding_text() text = surrounding_text[0].get_text() speak(text[-1:]+"Deleted") self.delete_surrounding_text(-1,1); #Toggle capital switch elif (ordered_pressed_keys == "c" and self.language == "english"): if (self.capital_switch == 1): if (self.capital == False): self.capital = True speak("Caps Lock On!") else: self.capital = False speak("Caps Lock Off!") self.capital_switch = 0; self.capital_switch = 1; elif( self.conventional_braille == True and ordered_pressed_keys == "4" and self.liblouis_mode == False): self.conventional_braille_dot_4 = True; else: if (len(ordered_pressed_keys) > 0): if (self.liblouis_mode): sum = 0 for i in ordered_pressed_keys: sum = sum + pow(2,int(i)-1); pressed_dots = 0x2800 + sum #self.louis_current_typing_word = self.louis_current_typing_word + chr(pressed_dots) self.__commit_string(chr(pressed_dots)) else: if (self.one_hand_mode): if (self.three_dot_pos == 1 and self.pressed_keys != ""): if (self.pressed_keys == "o"): self.pressed_keys = ""; self.three_dot_pos = 2; t = Timer(self.one_hand_conversion_delay, self.three_dot_do_commit) t.start() return False try: value = self.map[ordered_pressed_keys][self.braille_letter_map_pos] except: value = ""; if (self.capital_switch == 1 or self.capital == 1): value = value.upper() self.capital_switch = 0; self.__commit_string(value); self.conventional_braille_dot_4_pass = False; self.conventional_braille_dot_3 = False; if (self.conventional_braille == 1 and self.conventional_braille_dot_4): self.conventional_braille_dot_4 = False; self.__commit_string(self.map["4"][self.braille_letter_map_pos]); self.conventional_braille_dot_4_pass = True; self.braille_letter_map_pos = 1; self.pressed_keys = ""; return False #Key press else: self.get_surrounding_text() if keycode in self.keycode_map.keys(): #Store the letters if (self.one_hand_mode): if (self.three_dot_pos == 1): self.pressed_keys += self.keycode_map[keycode]; else: self.pressed_keys += str(int(self.keycode_map[keycode])+3); else: self.pressed_keys += self.keycode_map[keycode]; return True else: if (keyval == keysyms.space): self.braille_letter_map_pos = 0; if(self.liblouis_mode): surrounding_text = self.get_surrounding_text() text = surrounding_text[0].get_text() cursor_pos = surrounding_text[1] string_up_to_cursor = text[:cursor_pos]; count = len(string_up_to_cursor.split()[-1]) last_word = string_up_to_cursor.split()[-1] if (string_up_to_cursor[-1] != " "): word = louis.backTranslate(self.liblouis_table_list,last_word,None,0) self.delete_surrounding_text(-(count),count); self.__commit_string(word[0]) else: if (self.conventional_braille == True ): if(self.conventional_braille_dot_3): self.__commit_string(self.map["3"][self.old_braille_letter_map_pos]); self.conventional_braille_dot_3 = False; if(self.conventional_braille_dot_4): self.conventional_braille_dot_4 = False; self.__commit_string(self.map["4"][self.braille_letter_map_pos]); elif (self.conventional_braille_dot_4_pass == True): self.conventional_braille_dot_4_pass = False self.__commit_string(self.map["8"][self.braille_letter_map_pos]); return True else: if (keycode == self.key_to_switch_between_languages): if (len(self.checked_languages)-1 == self.language_iter): self.language_iter = 0 self.load_map(self.checked_languages[self.language_iter]) else: self.language_iter = self.language_iter + 1 self.load_map(self.checked_languages[self.language_iter]) if (keycode == self.list_switch_key): if (self.braille_letter_map_pos == 0): self.braille_letter_map_pos = 1; else: self.braille_letter_map_pos = 0; return False def load_map(self,language_with_code): self.language = language_with_code.split("-")[0] set_language(language_with_code.split("-")[1]) print ("loading Map for language : %s" %self.language) self.map = {} submap_number = 1; self.append_sub_map("beginning.txt",submap_number); submap_number = 2; self.append_sub_map("middle.txt",submap_number); submap_number = 3; self.append_sub_map("punctuations.txt",submap_number); #Contraction dict self.contractions_dict = {}; #load each contractions to map for text_file in os.listdir("%s/braille/%s/"%(data_dir,self.language)): if text_file not in ["beginning.txt","middle.txt","abbreviations.txt","abbreviations_default.txt","punctuations.txt","help.txt"]: if (self.simple_mode == 0 and "~" not in text_file): submap_number += 1; self.append_sub_map(text_file,submap_number); self.contractions_dict[text_file[:-4]] = submap_number-1; #Load abbreviations if exist self.load_abbrivation(); speak("{} Loaded!".format(self.language)); def append_sub_map(self,filename,submap_number): print("Loading sub map file for : %s with sn : %d " % (filename,submap_number)) for line in open("%s/braille/%s/%s"%(data_dir,self.language,filename),"r"): if (line.split(" ")[0]) in self.map.keys(): self.map[line.split(" ")[0]].append(line.split(" ")[1][:-1]) if len(self.map[line.split(" ")[0]]) != submap_number: print("Repeated on : ",line.split(" ")[0]) else: list=[]; for i in range (1,submap_number): list.append(" "); list.append(line.split(" ")[1][:-1]); self.map[line.split(" ")[0]] = list; for key in self.map.keys(): if len(self.map[key]) < submap_number: self.map[key].append(" "); def load_abbrivation(self): self.abbreviations = {} try: for line in open("%s/braille/%s/abbreviations.txt"%(data_dir,self.language),mode='r'): self.abbreviations[line.split(" ")[0]] = line.split(" ")[1][:-1] except FileNotFoundError: pass def order_pressed_keys(self,pressed_keys): ordered = "" #["g","f","d","s","h","j","k","l","a",";"] for key in ["1","2","3","4","5","6","7","8","a","c","9","0","o"]: if key in pressed_keys: ordered += key; return ordered; def __commit_string(self, text): self.commit_text(IBus.Text.new_from_string(text)) if (len(text) > 1): speak(text) def three_dot_do_commit(self): print("Commiting and Reverting") self.three_dot_pos = 1; ordered_pressed_keys = self.order_pressed_keys(self.pressed_keys); self.pressed_keys = "" try: value = self.map[ordered_pressed_keys][self.braille_letter_map_pos] self.__commit_string(value); self.braille_letter_map_pos = 1 except: pass ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/ibus-braille.in000066400000000000000000000015521276165756300263550ustar00rootroot00000000000000#!/bin/sh # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. exec @PYTHON@ @prefix@/share/ibus-braille/main.py $@ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/engine/main.py000066400000000000000000000074421276165756300247550ustar00rootroot00000000000000# vim:set et sts=4 sw=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # for python2 from __future__ import print_function import os import sys import getopt import locale from gi.repository import GLib from gi.repository import IBus from gi.repository import GObject from engine import EngineSharadaBraille class IMApp: def __init__(self, exec_by_ibus): self.__component = IBus.Component.new("org.freedesktop.IBus.SharadaBraille", "Braille Component", "0.1.0", "GPL", "Nalin.x.Linux ", "http://example.com", "/usr/bin/exec", "braille") engine = IBus.EngineDesc.new("braille", "Braille", "Braille", "", "GPL", "Nalin.x.Linux ", "", "") self.__component.add_engine(engine) self.__mainloop = GLib.MainLoop() self.__bus = IBus.Bus() self.__bus.connect("disconnected", self.__bus_disconnected_cb) self.__factory = IBus.Factory.new(self.__bus.get_connection()) self.__factory.add_engine("braille", GObject.type_from_name("EngineSharadaBraille")) if exec_by_ibus: self.__bus.request_name("org.freedesktop.IBus.SharadaBraille", 0) else: self.__bus.register_component(self.__component) self.__bus.set_global_engine_async("braille", -1, None, None, None) def run(self): self.__mainloop.run() def __bus_disconnected_cb(self, bus): self.__mainloop.quit() def launch_engine(exec_by_ibus): IBus.init() IMApp(exec_by_ibus).run() def print_help(v = 0): print("-i, --ibus executed by IBus.") print("-h, --help show this message.") print("-d, --daemonize daemonize ibus") sys.exit(v) def main(): try: locale.setlocale(locale.LC_ALL, "") except: pass exec_by_ibus = False daemonize = False shortopt = "ihd" longopt = ["ibus", "help", "daemonize"] try: opts, args = getopt.getopt(sys.argv[1:], shortopt, longopt) except getopt.GetoptError as err: print_help(1) for o, a in opts: if o in ("-h", "--help"): print_help(sys.stdout) elif o in ("-d", "--daemonize"): daemonize = True elif o in ("-i", "--ibus"): exec_by_ibus = True else: sys.stderr.write("Unknown argument: %s\n" % o) print_help(1) if daemonize: if os.fork(): sys.exit() launch_engine(exec_by_ibus) if __name__ == "__main__": main() ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/icons/000077500000000000000000000000001276165756300233165ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/icons/Makefile.am000066400000000000000000000016431276165756300253560ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. icons_DATA = \ ibus-braille.png \ $(NULL) iconsdir = $(pkgdatadir)/icons EXTRA_DIST = \ ibus-braille.png \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/icons/ibus-braille.png000077500000000000000000002401651276165756300264110ustar00rootroot00000000000000‰PNG  IHDR'åžo¦sRGB®Îé pHYs  šœtIMEÜ+lº¬… IDATxÚì½×sYš/vLúòコ¦g7ÛûžÝÙ½ÒîÝ•BŠyÜÿb¥ÐݸÚ&¤«Ù;3í¦íL²‡Í6ô$’ð Þ£|f£‡¬J$²²@²gö'ˆB!í9Ÿý}æÀ‘‘¿ßoš&ç\Ã0 „¢(2ÆÀÓñt<ÚÀ3ÆBœs]×EI&“‚ßï/..FA1Æ”RÎ9„!ôtÊžŽ§ãOœsιõ™RŠ1ÞÜÜLÓD ‚`³¦ëЧãéx:~ò°´—¥É,½gš¦`ý °ØB!dŒYì÷t<OÇŸ2(¥×A ”¦R)A‹Á,–³XÓ25ŸNÙÓñtüé~Ól´xM0 Ã27¾çü©®{:žŽ?—º³lKÛ} „/Zv¦5 „OuÝÓñtüYtÅPYРТÅx/ÚnÞS]÷t<–aá,C!„;˜`ùröï¤N~ñ/ÿipàJI‘PQ ØQpjHûOç—œs§ÇÈsƒR sÃ>’sŽá¼²}®óFŠž¯jßÎþm}€""œ1[&Y·o予õ_J©5ƒNcB8dŒmûι‘sN챞Ó5ö¼Yÿu^Ðþ¯ý06fÀƒ!h=¤sáA`™„ KŒ±L& Ô4 `¤ë:#†(ŠcŒÄs«†xy]ä¢×Â@Gn=?'ÎëØojÇáö8²¦Å}ìë0Æ,ÂC4a/‡uböO¤2ÆìÙ³xÀq.¢5ÃŒ1X( FÆ\ϤB›éxšÿ§ù%G&I’mdZ”#bPEBá@$‰†Õ€OT‰àÈV†;pç76íÚxŽ'»r@]¬››æÍÛâºBt°ƒ@Êç:O’Ê— ŽiAž\‡È—G…D• ÜrR‰•Ï®KHm:‚”RI’0ƦiÚñ•Gt]gŒaQÀS¥QȸEŒPIRTI&„%“IA’vn;L”ë‘džëž?ç[$±=Že¯{V¬lç:K+8ϲ¦‘ò€Sôl}°½^N\ƒ1âºãÎá4 B “N2Æ8ˆSh r¸W²IA®CøT-r8¤úTM’5Ê!¦çœæ‹akˆ¢¸]Ô¹E ‹Ž aNåf¿­Õp‘È¡qQ3Þ\G8Ë»²71YÇ‚à\WûQœëj/¢ÜÅ`.:sÝÚfcç]œÂØub¾2´¾Áʲ Ðus.Š"€b2‡EQäpÎ)ÈŠ¶L&…xNêSF)W) ôæd:—œòTàœSO)Ãz$×9ßÑIW[Š K™çOp(OçêX/î¼BŽX©k2óámtÅE„@&-†¡,eZãMm¹Žs I’" ’$©²¢iš¢j”@3ÔoÎ9²ÐQ' ÚáA×òä,ì©lkÁõ/ˆX!>±ô\æ|]·ƒÄõÔ-ù2’1&в§®³¸n»TÞb×d¿ËÎÉŸaOagÿ‰EQ×u¿Oñûý†a¤R©€? iþd:577÷àÁƒÅ•eUUëêêjkku]Ï$S„Q$AdŒ†¡"Ù›ë0/ÄužsÎqÙ9„²çÌ»2ö^¾ôRf8-ûtÊ‘ÓÖÝšXçO8çBÑþÒJØÚY¸s*!Ì PBŠ¢H±˜È“è ë:IEQ±,Ë’$(’lbr~ÔΊÎþÀƒØšÊ~1Iœoë8EpQžk]³ƒÐcé:ûR¨€®3)±YÚiÑ勸]jÚžƒS×9Ÿ6kQsèØžŒçú>ŸÛsز{f\õÖCRÊ8‘QÃÌdôŒÏ¯–––>x¸rîܹ‹/Î/-f2ÊY4­®®~ãµWÛÛÛ«ëê›ëëëQEE#VÀÆtg¶w-c‚ç:bôd\GñXà.®³£\p¹‹ÙäGa _pM¸ã"ØVœðPF@@9`Š")ŠÃ=™…™½#Èqò­yÝ¢HûY·f=gabÁ9Å,7,ìt›1¸¥³Ç;¬‚-}’= Xç@çó²-ù¶'DÈ{Ö ”}8€ û³mÉ„ÀV¡Èº‚A›cà€³ÜSB(ާèù½Eù²&ßjpJ>Õ"Œ-ÃR×u]×£Ñ(„ðvÿ§Ÿ?4:277§iZ(RLÙØH­®M>xxìØÑ—^|¾®®&ަR ƒPI]þØúm»Ãò» =ÉÖzrdÜÍE€!DÐ¥ 9ªä€rWFÖ„œË–½;„@Æ8ã(»¦X?ÙG0n-ä9aÍ·;ß¿EˆÙØ„ÐÒ³OfaÆ9§¦irÊ8ç„J)§.V瞨š“*·'ÅšJ¹Seå+:Ë2ñœnÆ`A‘Á=–ó69=952:ü曯ïêꬨ¨Jm¬òÿ·ë4àÉuö{Aò_ÙÓSu™ˆy>ö”Î6ük=ÑV`rÛ´Ë#°pzé!J³X±eÅØ‘€½é‡rb±(ç¢,-A ³VÏã¢)0$ˆ’‚1mèÙ§3c‘âx[èô+¶‹?¾Y†¶°rb{sÎ8”2—!‚˜&qL1·!Xô®ã¥Â h:Œ#9ãbO)ÝŽâpû-låãœRšýSEÌ>y–-9cÖóo¹€™Ääœ[nˆ31j›dŒ1ƸåÊå’¬9g®ÄH3ŒŒ ¢dåÐr¡aèŠ*êFÒò/­.~öû¯~<Cב$— Çô>ŸfÆflÝ4uŒ1¥((ˆÞº=2:>õ '~öoûd‘1Ftƒ1&‹’„"   ¥ÅØ’JN†´˜ÛVBÎöfY’@ÖR;¨!kdaŒApJ(‹*²çnG›ä gX€¬ ÁÞò–miÎ Ë!2šC×ä€q¾u!Î ·g”½—µ:‚(Êœ¥­ëÓ'Å0 :ß…ØÙŽ„¯˜‡n¹ByùÐùv¶õªÖÔ<ÎM3 Ð¹®gv-®Ïv¢scÆùØçy)v¡’>ÿùMŸ_%„b‚@ÉdÒ¢(¦ÒF´¨èÁÔÔ'¿ÿìâåkº)úüE"I†œóêꪪªªñ‰Ñ¹ù¡¢(:¥‚ @„”škk§OŸúÛ¿z»¶¶6 è©´Aˆ"I’,BD¼­šsNsÅñ¶-ëöÉÿPÀ`…N)D„NJ+ípÎ)£žØ›3©c»)‡¹4^^œ ø$EEF£BÌ €«þͳÜ™ñäœq[>~¬½<øQ¨; ðÛ®çŒÆÐJƒu戺EÎE½]ÂÕíЇ!–kσ÷„p`†(ŠaÃ0ýþ $)ç~ó›Îœ>Ošåe5‚(§3é`À×»«§< ;|à/~özeeq_ß•¯Ož\˜_®ªn$é«“'ß{ÿƒ™¹ÙÚúÚæÖæŠªŠpQdöá$L±¦©œÓT2!Џ¸¨èþ_þÇ£Gmn®Œªª$I8™Úd” f Tu#›¿?:6®›´¨´¢¼´Ø¤<•Ö ea‘aétF”DGÚ sÁQ…¬|ùèšg—÷›OZ”2§Ñ±õºÍÚt[³®[p‚ŒQÃ0Òi#‘2y"ä˜Üâ,áæææ#¸neq&èÏrD;qÝã „.ˆÏ³Ú³uÒðy\Æ'(\ñåRV…Öž.–ë-œ)ç…BÞ.Wy«ó@á'ÂÆtÝUŸ¢î þæ½ß]½2 ¨Áp¨8–HRÊ$Qðû|]GzÛÛZ[šj›k«k+76ã}7ïõ÷\¼ÜwíÚ-Ã4››šëž9¸÷Õ7^èÞÕôûî?˜˜™™Ö|ª(b=£B‰øúÆÒ¾ý{^{ýåh4rÿÁØÒò¼ªI‚ êº™ÑuYñÉŠº¸´:2ö`xtB`¤¨¨¼²Ê 4ObAÔ|ÂØYçJ=-îòñaoˆ«00!´3 Ýë¼»¢jƶ' åžÜÉu©”žL›‡Ž<àOâºåÅ™ _–eA–%KbGÅ ÜönÎÉq¥®yÚâ;èñBpz Óqgm™ûLÿïøaŒ{2C>TÇN…ÍæWÊ파‰"2 3•ÎøaQÒ¾?{þÝ>¾74 ”Š‚jѰ(âÍÕ`Àÿ×ýW½íõ ¥å¹´žîìî>pèx&Í/^èÛØ0 Ȳ¼ÿÀî—^>^×P†E‘ÑÚÐÞÖÖ¢(ÊÂÜ|2‘ôûÓ©ôðØðÕk×㯿ùÚ3öëFf~anaqARC!‹•TÍï ˆI–FF‡–W×5¨¶¦. ¥2#£K’lšºÓ²Sóu~îè"ñ'J÷sàpÀÓ+P.W·² \×Ðâ:]×m]÷S¸ntdÈÒuN®ƒÂÒùÕ‡.ïÅUbç¬s}äו·u´5♀—GÙ…ÞËmx¸òB=;M<¦¶Žll`;0nZá&c, §2ää¿ýè“?LÍ,Ã%ˆËÉtRóiÕÕŠ,Ì/Ìl¬­3ÓÐX%ªŠ¤i‚¬ ,MNÎ߸~{mu3,M&b”¦wíj}fÿ.M3é$B\|ÝÝ=étæÎAC'K¦Á¡"0%¯\¹::2ÑÞÖñÆëoTTT.--/.¬Š‚àS5Fhls0 i>Œ…ÍøæÈØÄØèXÆ0¢EÅáP@¨gtˆ¸Ë–Î7§„ô˜„ÂY©;¨©|@~g®ó¼‚“¶ùB¥º®§Rzúô›ñtqIEÆ`€ãP8\WWUW[µkWÇK/<çóÉüæä{·€ 4µµC$÷ý…ûÕ¯§§fŽ>RT”$²±>?2|çáôƒâhIMe#3UÕ¾ÿþÇ“_ŸÊ¤ÍÊÊÎðÊÊz2‘TŸªEIšž¹tåj2•Ù·ÿÀó/¼M²¸0·¹¾ …ü¿ˆE¡a¢¢*²²´´Ò»fz: •—`c´eÑ8cÐÛëQœDï¶Ò÷LfpÆÙ¶Ž›Éûo~PÎ*ŒDN®K¤Œ‡(æÊ¶qÝNQrOƒ‚Gg`yæyyæaæ›æ;AžYšO”GºƒT³eªÓÐuží å¹ð7OOà‘À[Ý>ÝðOÜŸúð“Ï/_ëW}QQ×6âÁP„dLI*++÷íÛU_WQ^Z²»·»±¡þß>ùí¯ßÿÝþAYF†F}JðÈÁC‘H¨£³±µío––çþëýÕOþ0><ýÆk¹kמë·ÏŸ;wÎÐiC}KqQYͱ†D<ùÝw?ÜŸ™+--&&ÂÁ?ú¼¿ÿÎ;ï¼óòK/ ÎÏÎáâ"ÆA:“”DE•Š¡¡§5¿CxóvÿÄØèóÏ=ûú믗–LÓtõÌ/ rÑa~Þ#òªÍ#ñ ðê¿ø˜d¶µLœÛG>XA]!Z^xô˪"Ùh ntÁi1î`^¢íÃÕà=/æ6ÆåN´Ù~ ãí"Ó®‚œÀ!ç¹ßÙ?Â9³~,f‰RJœ5”["“aët΀u†¥ù7‚ VoÆ\.Âx[öÖV&Ä"ë¨Uo €‚­‡Áad•˜qQ†Bu#8ä,¨©F·üö7Ÿô÷O Áœ&ÄTã™t†ÕÕUÿüg/ïëmFf‚f6}2îhiÜðÙ‡“K7¯/Φ©)úZS[ÕþÃí=ÂSEÅ%û÷‡ÊFGfúnÞ¹víæ›÷¤UWÖ4ÖW:Ø{üHoOgõý­ Éåù¥©Df]Q©  x_EŠ‹"%ÅB2¦ ‰sH—ˆ)âœrNC!åuLÌZ¤"èþvÜö (!ì)Ü!Þ¶çŽMÆÈ-e@«OØæ‹n=• !Æ£Ô4X2i¤2äð±çX¶šù ý: MQQ–%ˆí×å÷uyœì“Ç1ºv€ïòíR!*¡ãªÈpäP«ç~ê ‚<ã°¹jZ‹3p°@”ÓÚ’$_gšÄ0M*I²(ˆ†I4UK¦ôsç/þ¿¿|ov~Iöù!Â5TUŒ…%,ϯ ®——Dš›ê„6b ˆE$ʉ žœ]YYW)•ŽhöÈK/½O¬2*èi&KþÇŽEoߺ•LÆTÕ—HÆÚÛ[Þ~놆ZJ ¨,IÏ¿úF0à[š_HÄ“œ0F˜$Êœp=“%BÌ)QÓ4ˆA)Áh+¨m‰Ñ ά¬®ýáŠò ¿ÏO)¥Œ@Î,pnÄDYDDg„#XcäÒwò{ílÏr¯/pçWd?3îIoܳÉ'Ùþ.Œº™L鉔~èè³"‹ÿ \—Ïr…Tý®Û9÷×Ã÷ã…’AÖ=ƒÙßÙ°-bã8—ç¥Ù"áœ>´>dcz€oÕ ó-v²u;øS ØAï ܧL“Õ|D2õý÷g?þøÓõ$HD…1òkMuÝMMõ•5Õs|ú›ù™Ù’ÒòªšF.©wGÆÿŸ_üêÞ½{==E%Átf3™Ú5MV[SãSÃ’¨©ŠÿæÍÛ_|ñ{“èåEë뛩T\…¦–†¦¦JY<—UCÞÔÐ8÷pf|tLUŠÔdÀ)=‰ÒÓ:e@D‚œ[³òRù8ç¢ Þ¾{oÐÐI$..ŠŠ"NëB „”B “˜L@‚ªø ÕÝ3f™6Ü»†ŒxKgæ™Î\6ž«ür“y!#f I&3ñ”~øèsâlo›?‹®+Ô¦êÏÂu „ˆ»¿²Tçoåp=fðÐóÜb3JB«s‘g1A®ÿ‡µžë¸;DùUª6×åû· V['Yõ-,®|öÙ—_<Kd d"Œ1 } µå{wuzfï[o¾ÖÝÙ¶±ºvþüÅÑñi“ ޽ÿÉçë‹ëû÷ï).6·Ôýìgo„á[}·.œ»'ü¾àâõk7ßÿý‰ûc]­Õ5¥%eEÑÈðȽ³gØŒoÖTWUTTA„–—þó?ÿóÅ‹—÷ôì®®ªZš_L'3¢€£%aÀ!†à1œ[±›j­&1¹Š"k››ñþþþ±Ñ1AÄ¥¥Å@ÀHÆ39§AQdIƒƒlWœš ‚BÑׂ §w±àCdõºŒ[5“8·Šù)+Ýɶ†AÉL"ËuèÏÆuù€ž«DõOáºB¹Å¸ùüQXÖVÌÍòš-Ÿ :ÆîÄ…\P!«år!çÌî!D;âãÞ=žDžî®KŠÙŸ “)ŠªhÁÁ{#ï¾÷»s¯Šý°  ‰xœFssÝ 'ŽëëŸ IDATuv4ùq3¶QQVvìØsáPÑ[wÎ^¼Ü?8¼¶±±¯{wkksOoû¾ý=5µ»z»;:º§&^ºruxx|xdüÔ7ߘ„dÂDÚæU¾X†CņN¯]ï{÷½¯÷õûÍÞŒ'%Qz:Û\//):rø@UUy:“Žé Ý uµÍª|øp>K IŠ$˜äµ×^:vô@*¹¹¾¶Š!¬(«|ã×tƒ]¿Þ7;3Ç(SUe÷žÞcÇŽu÷tAJ>­®¾¾·wDèòå+ç/\¸swqn¹²ªvWïž²Ò’Ý{v½öÚ+ Mµu 5³³s™T†f‘)ޤÄd”rˆíæ 6*Æ3)SBD9•‰2>ópîÆõÛ²¢"A.)¯Ð|>C7“éBHÕTJy6<ÄíyY4Þ›l¶§a8¹Îs äÑktûšWͧËcq]ÖÂLéÉŒyèèsüY¹nçt­]l,+×C†t!„P´?äš|q¯~Ý…Ò^JæÔ™9ƒ!„ @ŽìpV Ë€+B%ù܈2Mpòä7¿ûè“©é¹HQ©(k±DZó‡j*ŠZš«Ê+#ƒC÷&'ÐÞÕ*ŠÊŠvóÆÀ‡|66v¿´¼TóiósI:Y\‘d±ªºRE]×#‘ðòÊÂÍþ»Ë+˲¬j>ÿÂâBeUõ+¯¼"+Š‘ÚLg’H@==½•UÕSÓ³óKË¢$Ëbؤüð¡C¯½õª¬J3sSP¤M͵»{øü©ÓñX"dšÂ1 `'ÜÚÅ〦8—DEÀ%€hêôìåkË+ëX’ƒáð! )çPN¹wŒð|‡ooqî4‹ å #«ß,eÙ¦ÆV-’£5ç6(Å«…z.ÚÎ9çŒ2Ó¤©”žL<Ëüs¢)NÙðçES VpSæ9û…Ãb¬Vé©è<ü=OÇÕñÁzwl@î{ /P—=u ÅuNcÌšÏO>úü‹/¿Z^Y‹•Q 2& …£å•ÕÝ-5õµ5'ž}öí·Þ†üxîÇë}}±M& ±ñ~ðÉàáÖÖ¶–֖ƆÚgžÙ½±¶rúÛÓ÷ïO(ŠRYYFΟ?÷Ë_ý·ï vvvwuvÇbñD"9;336>V^V^Y‘Y@âý©É/¾úzhd´¤´LU}ÓS‹”s¿_«­«)+/¢²XήáÍ7öPÁ²= ‡8aFÆ);íG·Cg¸j½ `eÛ+å¬5…Ùò<;Ð ²[,:mrY ã~_!õÜ…kï½÷Ù½þ1I ø4-‹ùT¥¾¾>f&ß\œŸÝÜXíìì(++5‰YTT<7¿xêÔ§§§«ªêÒ©ôÜܬ¦ª{öôÖ×Õ ÓéÌÊÚFmMc´¨t`àÞäÔt$–dA×3o¿ùÚ±ãG‚AßêÚòúúzIqÙ‡î ÍÌ.„ûüᢒ²#ÇîÙ×[Re U]]ÞÓÓU]]»¾»uóî@ÿðØÈ$第¬¼w÷®žîÎÞÝ=ûöîjh¨jjªž}8;3 AZZ^Ñ4U–d“PQEœ3Æ!œcÓ4(£©Tp i>Y’R)}jrúî¡……ŲâʪÊZ„DŒaœ‘¢â(1 ¥f»£SKéºnsš3=ÝÉF;ôP}œAž=‘¡Õ·º™Jéñdæà‘ã=a”œ{ùua;¾€ǫ̈,Äu…êœpí6©³SþtuV㜪z/Tóê rîà¦nõºrvûÞ¾¥Éöä²ìA¢(Z´¬—M™z(\”J‘¯O}÷ᇿŸy¸ðGE¬è™dQ4ÜÜÜ\Rih¨ý«¿|gÏîžÉÉûçο?^ZVQVZ>4:öá_¼|©±±9-­¬ª ü÷'Æún^§&©¯o*+­”devné_þåÿ迳«gFàáÔD<¾‘ˆÅJËŠ«k*5M3M¢(ªi›7oݸ~»¡¡)“¦+Ëë>Ÿïøñ£{÷umÆ–M’~øp*;ö¬"ùïÝ][‰ûýQÊÒ/¾t¢··'“IÄc«þ€ZS[ñÌÁÃÁ÷'3ºQZ\BÅb>Mã€1Æçšæ± ëJ(ç\óiœs]×)ašÏ F 67ãã£îÜæ”×ÖÕù|ç”Kl*²jù‹†iš„ÈŠ"+ e pX BùÐÈ#³¨óÇCBF©¡›©´‘Hr zøuaä•HáYÍ vìþ8éªNS3¼ÚoBÀ\0£õ!ðDüA¶­{\áî[²&ërÙÌód,û'B3“ISJ0FÁ¢’ÙÙ¥Ïÿpò믾M%I$TL3 ‚G–—•ôövïÞÕ]W_]W_³oï®x"qþüÅÛ·û‡Ç¾üò䃩©¶ÖöºúšÖÖÖÏ?ûÖÛ¯••÷ݼ~ñüÅ¥¥e„‡s³ï¾ûÞøØƒ®®žŠ²Òöö–_< h/]¾zõÊÆúFMmmqqÉÃéÙÏ>ûü£>êîÙ]QQ… À9¿ÿ`üν[†‘ªª®…ÑHÂÙ/~üñgºNݘ›ŸLg’ååeÍÍ ª&ézÊ02Œ‘ªêšt*}ëömjR, ‰X¢(JgÒ„¦ieYš&AJ’˜HÅ4MQT!Lͤ ΀ªøˆAÓ©Ì›7‡‡£ÑHYY‚@Õ4Ý09c„±íä¦)lµd^›Z?²{•WÏìr¦²P-ä!θ¡›™Œ™Héÿ‰¹)K íZr«ƒÜU’_͹s}ç#KéòËÌý$ó =^@eñ¢žãÜÝÓùvžµæâ öu´ÐN‹LÓ´Z0ø|>Q'çVÞÿðãï¾»À9Št]Ïd’~¿œI¥ü>ßáÃ_õ¥hQ(¶¹ õù”TÖÔܼ50:2%©¹µ©½½­««=öùJss}k[S&¹zåÆ;÷~¼pq}u£®®¡º²ª¦¦úн{vwïß³«ªºñÖÍÛW._{8=71>õýw?ÞºÕ_]UÝÒÐT ¿üâóo½ùªO“n÷]?÷ãÙåÅÅâ’*„K¯ÿîw­¯mvvv44ÔƒZ]}åÂÂÜÅ‹îߟˆF¢ÍMÍÁ`„Qþå—§~ûÛ÷$v÷ì"¦±²¶‹¯K"€XDAȉI‰i,@)ÈpF77×ã>ŸÈEQd„FÙäÔä­›·RÉTeUu0š„&Š’ ⢄¼ %„í‡çíÉ ×å÷ !Ä(5 ’Jñ”~èȳR”ÜòëÎÖ’;#0®Bw®~ßYƒ¼>‡Û4 ÷>sâ•€’ßô†çW*¹¶‰±ÞÂÙ‘ªPÑ ­ã¶CÒÖñÜÞ=Îöë‚Æ©%(%I ‡C&1&îÿâ_ß¿yó®,ªšŒ'â€R^$¦§éÂ✠Àö¶æp8I'梄±¤ =˜˜–dR¾¶±ÖÔÜðþÃ_ûý¢¢Šó‹Ó”è½»w5Ô5MM=œ—5_"‘CG~fßÞ _!$9éèÞßÒÜN ¼uk`lôþ²i’–Ö–Êâ¢çŽi¨¯ ‡”½{º»:;f¦fn÷ݹqkèâ…kçÎ] &kniT5±ªºì¯þúgÏ<³¯¾¾niiéÂù+£££Dç3¾ÿîüɯOI’ÒÙÑ#‰ROoÏó/‹'7ÖÖ‘ #D&1#À1é˯ëííA-.,躠µ“˜É¤DQ„É’¨ÆÝÁÁÁ]'•U%𦠂`× YmÒ!£ž&¢go‡Ýi <äQÎ,¿N·ýºÃO®ë8£#ƒ6šbc˜lkz·×=Înà…'ç3ž37e»M×Þ+ù\ç)Ûòû¢[-ß\M]ƒN®sà*Ù®\¶wv?4Æ­¬éº~íÚµ_ÿú×ãÓkЬhZ8OȲÔÚÖÐÐX]Q^T_Û‰†oõ]¿qãZii´½½E’p2¾ùÞ‡ÿþó/kªêê×ÖÖ©ÄêÚòêÚRC}•¬‚eY\^Züñû¯^½QVZ‘1`c}sïž=ìK§œóTZìêê6 622‘(‰e4-þŸþ‡¿«¨(ÚX_¢4C‰ÙÒÔzèÀ1«÷F¦2i“s +rQQèø³GÚk)YVêêj÷ìÞ ï Ü»zåúÐÐÈÐà˜ àÆ†FQ’÷îÝwâù纺Û÷îíÑ|òÍ[C„­–ÒBˆ˜„2RVú‡øûÏÈdôùù…d2‘!ˆ[½îDQ”$ âÆÚú­[Ssã`°¼²BE!°RBŽŽNÎ9×>ØOÄuv¼×yqÆ^\÷¤hŠå×ÙµäŽa<¿ØÞ…‚ìÜ}ÈÞ0ÑÙ”a‹[²Q7 ”Œ3Ê(¡T€ÂV8.W¨ÆçÌt©û\Núö0@î'¿°l´u¸K{vLA@‚C+à—å@C"¤”± "Œg&Õ 3­A2HL®ù‚I~ñÍ™¿85»ºUÊdQKêºh}Smk[]HƒÏ?ðü‹GÙEvéòåïÏ^HdÈFÌøà£¯n\êéî-) 55–½óÎK]í- ³ üú»Éé±ÚêúÚꦙéÕÞûâÔÉ*+ë÷ì9à“‚ª¤m¬¯^¾znf~²­»±¢¶,‘IJbä½÷ßûøã%Y¨©­ÝŒ%–—6ÒiSòc5ä/ª(6K]PÕX:Ý700ÿp& ‹XY\Xo¨kyõÕ׊‹‹ 3„t,¾\]S|âùc¡Á¡û„(ŠROÑ’ò’¿ûïÖÙ[‘2æ"ʽ=‡÷ííØX[YY\‡L6tΖd !<9ÈQZ„‹B*£QX5?ÃâÃé…þþáÙ¹¥¢ââòò2‰a¤¢bÊ™¥y,Ë’sÀƒh+£(—ä€ DÙ Œò+÷ÏîtÍY±(ñlRîÖö—Ù4]ë^„š:ÉdÌTÚðqd^®³@9Sö2º¡( „(ÎB ¢()²ÆL€D!ŠÌ-.üÙß~ûc2eüQ¦SÂ)G\”Ew÷tØ×[RR¢SÚ¿ÿ™æÖ¶ÕÕµóç.ž>}fyyµ¶²®¢²l÷îî½ûzëêªwïÞÕÕÕE©yéÊå¾ýC§¾>348ÚÝÝÓÑÑ*Jøgï¼õòËÏ×7TONß?áÂÈè(àXÓøÅ©“'5UÝ»gO(hokioo™››þêäW«+«‘H¨¬¼<ŽÜì»ó‹_ü—¾¾ÛÏìÛ[ZZ‹Å 3'''FÆ+ªJÂá BØï¤SúùóOü£iðÚÚºx"¶¹±‘Y__USS¡ÈZ*a$âiY’këjJŠ+nöÝZZZ-).!ĤÌ4ÌLÈXZZýá‡>œ=xð𫯾ŽDæççSqbEó „nÅDIŒmnŽŽŽºQ^^ZR\!6u]’$A¡†a0Ê #Üoˣ؞”îaãp/KÊþžbGÉ9Î?¡ªui~Úæ:[×í H8aÀü*jâÜ•2×Wç¿mvWå<ÿ wÕ£«Á…³9¬í¹9Srm#pç]#=¸Ž:¸º÷¤'ÄD*ŠŒ2 k'W¬¨þ¡áÑw?øäâÅɪɤ©i&KËJk¦ž:|è™ÃGÈ%cñxB”ÅŽŽîååÕÁ{#ÅÑRÈq:‘|ñ¥‡ï÷´ÍØz"/+/Þ³·§¢¢¡ïFÿÈðƒTÒ”$¹¶®¦³«åàáÝшÏ««+š[[9£cúoÿðÝÅÛ×n–—–¶µ4•—ïß·ë­7^ÙÝÛU[]ºOŸ¿paðÞP2™¾q­ÿË/N-.¬îêé ‡´šÚšw~öfeUÅFl¹ïÖµ3ßý1ÔÊËj¾=}æƒ÷?ŒÅâÍÍ-UU€&"6>6ÔwýÚÚòzQ¸¸¦². C/]¾úîo?X^Zéèèafv2™Œ…ÅÁP#iltâìùóšæ{ýÍ7:;;®]¾¥ëºTA !#“˜œEõ‰’²º¼2pçîøØÄʪjU•(!V±‚(`Æ)çB³»ˆlµ«±«™óS#B0tðè&íLÜŠ’g#)ýàácâŸÂu+K³¡€¬ª’ª*žÙÏ;Ä ٮЕÏi×;Y"ÅÆ#ÃÎçgK;棔®üæü*3&^ÐîØ!)·€S,І¡dY✛&ÃH–eÍ眿tí£Oþp÷Þ˜Ïñû‹Ri €XWWTU] ú‚~muiáÞ½T"ÙÜÔì j¡p8¶™øè£OΜù>,ƒ«+k«ëËååå•¥¥å¥X„ñd &Éâð½Ùñ±)„äh¤xmmµ¤$üÆ›/66Õ$“«ÉT<•JôìÚýÌþCós+Ù ûTÈyG{ÛK/¨©©ˆÇV"MMµ­»‹¢Å££w†GV–×êëëëëË÷îímnnØ`Ïž½»LªOOOöõÝšºtñê¹s)ííí~¿V^Qüö;o¼xâhyyÙý‰—/õÝŸ˜‚:¹3ÐÿîûŸÌÎÎwuuÖTWE"Á½ûzýuhxE×MP0ŠÅã7ún Œ¬¯¯/̬˜¦‰0bŒYT + „šcQÕ4Y’â±ØäÔÃÉûÓ“¥ÅQ¿ß … ÝH¥SŠ$+šÌÏå0¹÷ÐÍ6Øž'íä:Wslƒüè®#^—Θ‰´qàÈqˆžÜÂ^]š M•Ù™/ßTsööò¨˜ðÚ<¤P6³eho©8èhãµ½¡¯= Y¨cÒÎ-‡ë0·åŸå®`!”Á$™T*ãóù¾¨žaç.]ûä³?LNÍD¢¥XPSI]”ŠòªúÆ¢¶¶¦C÷¿úòó¥wî^¼xim=-+Y]ÙøòËS§Nþ1õô쪮¨lkmö‡Ô[ù5ÝH~³J8%Ô3½Ë•#æ28wÎ>y¬x#G[©èo…… cœH’(ŠâÔäÜéoÎ~{úlšcIÑÄ”ÓP$d˜™å•y@}çç/µ45èÉX|c ÐÒÚVSÛ”ÖÉððÔâ⊪jEáèîÝݯ¼üb8¬¥kEå‘Ý»÷”•V Ž Þ¿30248VVZÕÝÕ£jbgwãñçö÷îéèèh|îìå¾ë·’ ýê•ßüñt$îîéGü]-oÿÅ[í‰tòû/ôÝê „Â¾@xpxüƒß½wæÌ™ââÒÞ]»C¡pmm•(¡sçÏÝ[]]íÙÕ EQ½ÿþç_LMÎuu·Ê²¼´´²0¿˜Ñõx".Ѝ»§Ó¤œCÄ XY[»Þwsjz.,ö"벟ÿÕÛ-­õ3³“PÎi2™8zôhk[óÌìɉqQR„ñh¤!0LÝ4 ͯ1FÓéT:’E72”IdI¦œÄ䌕Wq'L÷ßê_YY‰„£¥%岬pfddáY›ó³2`^ÿL;îçÙ-ת ²Ð˯;pø€?I×-ÎMùTA’ð#Ñ'׊8‘}g?Lg7¼;r@óÛ"pžåºBµíN~Ûw„qíAñ¤~£ ‡;»p1B@’‘¬ˆÓS3Ÿ}úå…ó×Ù,©ˆ'Æ‘H8ôsN×7VRé„ ÑÆúZI€"†a:3¿ôÍ¿ãH«(«˜žž’eá•—_hn¬áÔH¥â±Ì&„èè‘Ò._ºN),..ÕuRS]ùwÿðß””–¦t#”ôt﫪l˜~0sýzßäƒIa$nnmìêjëêj--+«o¨ëêêD|çîàÀÀÝÁÁÑ«Wo õïîÝSZZE_xáù¿ø‹ŸuïêÀ¼réêððàôÔôîÝÁ÷ßûèÁ}ÃŒˆ IDATýéšê†’²`mm݉ç^lhh¾}ëÖ™3?,-ÏBªkë|~ÿèØè/ùË~8ÛÞѽ{÷ùùÀØÒòâÕku#ÞÖÞäø8’$®®®]¹zùû¾×4YYùêêFF§™Œ) J)Õ Rª¨ª®ë„RY–àAIDQD(kbA02 pà÷ Bã7ún¤Rɪʚ@@¶*r›»®Òm¬ÈOäâÌ&%–…©gŒ,†yø‡OˆarÆF‡W—ç¢aŸß§jšj¡)!ïD#Qî¿v$9ò'P‡k¥-n)ÔÍ–#ÀQ.·‘qÆ€Õbˆå°JÆ¥Vf-Ìí"ïêsèÙ»ÛEðHW÷²lM ‘ Ȳ 7‰ÄrBLE°ïvÿƒ>9}gtVðEˆ(›Äd€ÖÕTÕVW”GN;xpOobuñ›ÎMLL76µUT7&“ìë¯O¿û«T$íîm 4•̤–V×LM‹"n¬«Žø$(‘`ô£>üò¿¯(+‹„ÂË «›ëñÊšHOog´(‚J&S&1‹K"ÁvåZŸa2AôC(ûý‘ç_8qüøáŒžØˆ-"LE™>z°¾¡~`àîýû3†%¡tøðÏ*.’ŒEƒøÐ®Úææ¹……¾¾á±Ñ…‹ç6Ö3uu uuµåå/¼øüÑcÏ´¶×wt5¯¬-}ûmßøøý•ÅÍ»#¿ûà³ÉûÓ{öôúýŠªÿöoÞ>ñü!iß[×®÷OËŠV]W“ÖSøôÛwûÍÝ{ÚÃ!Õ©¯,.P¦*JЧÓ†žL¤DIà€fô4F@Ä‚ `«?7¡Œq &!IÔ‰)j*”„¥õɹپ;w몚ªk#©tRÕÎ8!p wÝ9Oñ\ÅžõÃåBù$AH É=eè ÝÈîÍTÈ—+ÐÍÒÌ÷V­Šúsʶ÷®´´Ë£J×§žÊ³px¥'«²id1c³òB „RióÌwg?ýü‹¥• Ÿ@‚(JŠn¤ÂUUEKsãž=Ý»{»š›ë»ºÚÉÔß]œžœž^<}úû;wî©~mßþ½MzíµWß~û­PÄæÌ/_:GÂá"„ß}øÉÉ“ßpŠŠ‹#‘p4Å^½qþÎþp$ÐÙÑ¡*>IÒîÝýßÿ·^߈555É’<;;3;û@V__]UU‘Ñ3±XRS>-p³ïÎà½QŸæ—$%™Œ‡ÃÁãÇîÙ³Ë4Òëk«„Y”:{ö7Ô7/.,õß¾[Q^F×Ö–_yå¥7ßzSQ¤T:®¨¸¢¢¼»»§¢¼tzjæöÍ»SSÓz&#+Š¢(­m-ÇŽmllˆFG®ªªšžyxûÖÀƒ“££ãg¾ýáòå¾hq´®¾^qk[Ûüwðà!Ÿß7<4¼_€iª 4t@𧜜¬Ç–ž „ˆ¢$IBÐ$¦(bMS Ã\YY^™Ÿ…ÕÕAÃÐI‘edצ<²GÁ ýBœQ¢›FZ7“ióàáã`øvYÎí."I"ptDsu˜sÕ,¹vðñì™å¹×TvÓÒvÏâÎ~^pÑ#cùÙ®.ý ôNßaó ÊLB Œ!ÂH× bA’4¿~!vþüåoNÿ¸²² Êc±$ä@•%ÃÈ´µ4;z  dôÆTÑ„½»TWV]¿|»¿(Ï”4µ4UÔ”íën¯­­G|­m ]]m÷Ü?yêÛáÑ?~wþfß@ îîªÞý@±P¢x4[Ÿ` •™xâ¾÷ÞÇ”A°÷t ÿÛ/ß/´sçÏ8ö@ÀßÐPGÑÄ£Ç÷,±¦ªÎnuå²¥ßþú£?¼íqûššö÷ös…t*¹¿»·MSd,£(2›+U”`wwÏóçÝ¿_ù™™)†¡*cÑæ–ˆhÙÜ~IÊRQUUðGûé…¹5'ME¤­­ù‡ûýX¬2‘Ü#)M×Õx<~íÚÉÎN/lmíår%UÖ*¢‘«W¯µµµ‰¢ÀqlCcmCCÃÎÎÖÚÆ ‚"M¥kz¡X8Ãp´|Ì1 @Q]ÓPQÇC“ šªº.ðâÒÜ,Aâõõ5Q(•Š$NBˆ†Yö/=qÃôõ;Ž2êP)£®$«Ië¸x~cÔ Üê^ð0<N¤,¾&ZöÄÕùq¾ã¾…‡‡‘ <ŒºsçŽ#åÇW¯y"¿Üº.1,M„,+(‚Zm‚Í­Oï½[_Ób³ÛdYÚÞÙ¤(Òçw3,Åó¬ªe²Ù,AБH%ñ™™…$Ë8†¹\®+W®^¾r™cÙ\>­ë*‚hápÅÕ«—].çÂÂ|.›%)ŒeXU“^XE¡(M1V«•¦]×1 ¡iJ¡˜“e™ pŠ¢J¥…\.­ >Mà†aâ8qØçæ´”µ¯ƒºrÔiЦJ²V(©ßueFØÁ ³¬ô9Žº×º×Ÿ6ðZXÎ'|ÎWò®¾²ŽE_¾Z˜Gx®‡õN;$Rœj°‹êe%˜¡C–³ 519sûÓÏǦWU ò¢U× EQ+£‘úúZQ`vA˜é鉙™I‡ÍR°,k@£óQï?ÿó¿’ow¸R™´a*’š·Ùù¨/¤šªÊAÑ4»µµ;61½—H ”(Ë2ÃÐ×®_¹rõ’$å·wÖ «¨úåËן' ß¼yÅã±]¾z‘¢¨Á¡Ùٹյ;þÁ'O»§&æPeeT¹k×/÷¯ßãnwl|jl|AÌH$’Lf~ùË_}~÷×ão¨o`Úé²gf§†‡%© áy‹ÀÛïßòýŸÿ·$).v (L¥÷ææ©„Ãápº8#À4L GH‡Ý:¿076:*Z,I$û,ÇÄ€†©ÊŠ®éŽ›ºYÈå5µ„„¦HŸ×K` ŸË±4CS4ÇP( ëBÁ€iºn (³çïoOSµžv˜*£š†¢©¥r~Ý7¯ue}Ý!FzÊšî8ËùOfîœx—}MÄñ‹ý<@Dà+H{EÔó*õìO¢îD€^ñþ[Å¢LŒÍæJeKOŸõ*˜^ö5æñ{ì+Ô©eßåü…«ŠÿÙ¨ûŠý|HÕ N20~ ä^S~²EÂi ¯Öº¯làW¥ìøVà8úõ%î8ðN«uŽ¡à›Î”º»‡>ìÜÞÉXmnÉDP€&Ä0Äfåƒ>wuU´¹±FÕ .§½¡¡ÁápŽNôö,̯={Ò#ØÄÖ3형•¡¿ýñ÷ϵ5q,•ØÞyð´»—¤¢öäAç'VÞ,³ÑÞr®½½•¢‰ÞÞ®ÞÞn𦣕só+ÿüOÿ:59ÛÒÜ^QQ!+ÅLvw{wuaaÑjýÃP Š¢ þîýtC + ioo/ôWUGxà SS$<'8îRQ]^Ý”ƒã­˜ H’ü?ýÛÖÖúl.Y”r†‚·ÞÄ1ba~m{+mèÀ4Q–cÜçw¾ûF]} "*†ƒ––ÖúúúB¡8804Ð;ÕÝ50:2¢h¤",ZhÈyãfÇ­·n5µ4q<¿º¶Ñ×?0;7Ÿ/ä3Ùܯÿõ·?KUUL´ògδÞxãj8ì_Y\Ïfr²$“ P šf™Ÿ[,eëëëÞ~ë-€¢ýÛ[[N9.›•¿zõrUu%Š@MS1€‘$… ¨ #¬`ôµ_§Ù›-£®XRòE¥ãâµo‚ºƒZÇ0ä3x•Ü|¢oî×´å;ybqyu_Õ:æÑÝ÷ñHÍ€_óxůò3y]Q–ÛÛOþÅýžåŠŠ(:„Ð1 š&¹”CýÊ¥óçÏ´æ²)€ÂB>OÑl]mäÜür>'q¬MA•`(øÆ×ꪻ›†®¶575Ô6ì—ä®çý½#Óã3,ÉÄã1œ€ÑXðúÕ·ššëY–™˜ïëëÝÜÚÜßOüê×ïonlµ· …ÂÏüõ÷ß»~ãb:³700:8Øâñ8MÞÿòá¿üâ—ª¢ï{ߦ(†¦Y‚ Æ'FFÇúY‹Tø8–%H2›ÉÝýüËß}ô ‚ÕÕu©L>¹µÇ²” 2v»ètÙ4M”J%Št™˜˜“KÐãöïííQþöÛ·.^jÖu¹XÌëšZ]UÛÔÔDÔì䚦š Í¡BÑøµo¾}M©ýD’c¹3íçÛÛÏ•J¥™é™©©©‡î®ï[D‹/à³Ú, u×®_nh¨WÇZ›Î‹¥õõuI’0 Ç0 EÊ\M5ŸÏ)Š:000?¿àñxœN—Çãikm<{¶aIU•QÑTíÅôr†yx›UV¢âf@£(jÂÚSEU‹’’+*¿Q­›Ÿ›ÙÛY·/ÜŠ^jÉOvÇqü 0éˆÿÙA¸Äá’‚¿´¶|apYŽ 1Ë¡g/DØ,oIPhÂrîÜ!Â8bš/¼Tâ‚”_èø|²ü0 3 ãH¿Wþ­q°Li)!4L“  a¨(ÔPÄÀII ¨¡@β°±yûî½Îž!Œ8‹3WPÚœöx¬Ç S+䳩R&ãq»\J*@hVèë¹÷åÔ,Íå²™B¶Øqö\GÇS—0€˜ÐÐ5Ãåò¹8ûÂü¢¤›@%‰·Øþú»?8ßr¾6ûË'ßÒTôÓy¥kpj`|Q-•"‘°Ã&¼â«gã!•½Ñq#øùéÅÞžÉåÅä—úŸuõ#$~õ[WKù\]}Íô×W®v`Òß?Ðõ| “V­žp2Uºs÷þnʳTÇù6¯Ëb‰P(²°¯ggW’ä·ß|çÛïÜÒuu?±U’²Õ×××Ö6&öÓãc3†9†áYÞãv]¸ÐÑÒÜ(•J(0›êëêt]ž™žœœžšœonj´Z8Óòƒ¿þ«÷Þy3àó9펕¥µG{–— ÿÃÇŸ­®nµµ±Xi^ /^:wýÆe C?éîîîVÕíô2´(ðöGŸþìg?Ëæ2ÍÍu‡…á(*«+ Ý=û{;@ÀëòQ4Ëñ–d2÷ðAç—÷íî$‚|Ùÿ›(ŠêºŽ"F(ä?¾­±©ÆîM]=Ña"ðDõinZ§mó RîëLUUK’òÍQw°%?¢98q=¤¦ ñ0êcÃ4Œ'EØ«ñE‡~¦yÄÚàß7üú“sדg-ŠÊ²|IVuˆZ¾Í½ä'Ÿ}ñðiw1£;^Å÷÷ÒIá®ÉŠÝn}÷Fk4ì1ÍB©˜Á¨®k¬¨¨™œ^èyÞ•ÍI@ÁªxE8쫌âñPeUÔëq ù‘ᱵͱ±™îžýýtskŒf™††º7ߺyõêEhêÏ»ûž ×îvæ7¿ù}OO¤¢¢µµ‰¥1?l˜fgWçÈȈh*b1AQœxþ´÷¿ø×t&FuMßÛÛÍç‹8†»]¢Ýa-lIÊ›†) Ö½½T_߀¦›ÅV(K¥b{kÛ;o¿åv:öv¶uSÎ糑HøÒ¥+( ¦§æ“É,†‘ÃÙDáÖWÞ¸qIW¥TbÏíô´6·D*«©°¶²108ÜÓ5NgwÀ¤(ãÆËßúÖµššX< øÝÛ[ÛwÿØ·±¶²³zú¤ëÓOï Z]DÆé¶|ç»ï¼ûî-Q`gg¦º»æyÁNQ¼ ÑgO{?üà“Ù™EA°2 «i*Aà( uE!p¼º&~íêÅÖ¶F‹ÀH¥@±“},_K‚?¹`œ4>(Ÿ0_ÖºoŠº½ŸËDß#AN[Ž™F|Åv3ÌSP‡·ÃN[‡»ØW,‰ y|vrp8N°„¯ú¾ê†ò0Ë߃¡À@P'šÛØÜ¿ýÙ½ç݃JYx‡¦éŠ¢F£>{kku  ÆÙ–J¯Çãh:—Õ "ŠÎ¢¤ÍÎ-²«ÕaB„À±‹—;ÚÏ4Kéý䶦nçÚ•›é\±óiïÞ~Š·XmgM]4ôWUG+#!‡M¬ª‰ùüžÕõÍáùÅù­‡{&¦æª««cU!‹ˆÝ¸yæ½ïþ¨¥¥É4õá¡á‘I–Õ™øðƒOV×Öãñx$ŠT¯\¾Dô‹»_ ÷…Ün/M³wÿxïç?ÿE± ]¼pÙеt*™Í¦óÙ”"K¢ †‚ÁL1ᘠŠë÷¾|˜Ë=o&›7•¢‰«—;jjâR©ÍædE´µŸÅ«Væfæ½þ€(XÀ*¢‘Ÿþ§¿‰Å¢û‰t:ét8jkê«âµ ONÎÍ/,/..ë†ér»DŽ„¾õæÍ€×Eã±ÊŠÊh±þ|xtdt{k÷þÃÇ]ùBI­¢1óÅ,c‚ÀŸ9ÛòÞ·ßnniˆ^,æv B>J¤4Oñ¤ûs7^eãhšŠ¢¼@ÝÅ«øsQw’÷sYÔwš9ʉúºÃÊn0'~HÐãôœƒ@¦sçóáÉq7ÛÃïç ÍSô~I˜#invaõƒnOÍ,q¼ ´¢HEÂá@cC­h¡œv!r'öÖ'&FuFc56§`lßÀÈoÞÿ]:®¯oÚÞÝÙÝßCtûܯƒ¤ †ct¢¤3¥‘á)M‡4Ëe yE•¢ÑÐOúSŽ"7Ö×Ò©”À M-íáHtizoffÅDp—ÛK³TuUèü¹úhÈ))0òÖTUZ­ÖÕÕõ‘‘±‰‰Ùžî~¥¤7·4‡#»C¼téÌ… gc±ËmíéíîéîM%sªb>{Ú{çÎù|¡¾¡Žg™@Ðuùây›U|ÞÙ5Ð߇š&©Šê ‹h{ôèÉßÿÝ?.//764…#MU·673™ô~"¡hj4Rép9Y­|&W¸÷ù½‰ñÉp8ât¸—KÅB$:æ¬Eä¥RQWeMU œ¬Ž×UFcCÃã™LŽãxŽã¹|ùÒw¿÷Ñ"jr~wgÇ@8¹zýz<^9¿°47?—Ï 24OQ4„†ªÉ˜¼@Û-ü¹³­o¼q£º¦5B!Mƒ$¨ò½pX~ØÃûDÚÆ)NvàdÛ8€š†¡¾Ø¨¯B‘µ÷ç¢Î"ЇkŠ@䤔ðãô”#¤“#§áÃÙ«¯ÂÏ8ÜÑ  CNô~>@ÝW i/Ÿ.'RgŽï:_Ó—T’èùÃ'wV×vHœ‡:5@Ð&/0^Ÿ“ãq—S¸uëò¹si>[–ÔD˜©©ÅÏï~¹½³uùr‡`µ„Âaпµ³ÝÓ×£èr @bãÓ3 ¿ùõ‡cãÓñꂦ6·×3…Œ(òN»ƒ"€Mä1E1¼PRƦ¦'‡ghŽ™Le8–þö»o^8Û’ØÞ’u)—Mˆ<ÛÑqÁf±ÏL-ìî$)œÃpФˆŽŽ¶óZY¨jÞçsTTüÁðöÖÞÜÌêøèB×óh"µµ5$ BAûÍ›W.]ꨯ« |«k]]½ËË+;©½ÁÁÑÏ?ÿ"‘L546Úív‹U¸ùÆÍ›7ߨÜÞ~ü´kzj®(É¯Çæ°í&¶ùËûãÿÈób¼ªÚ4!I“ªVêè™óz¼ñª G5Må8ass÷wïØ?4‹Ç9ž_]ÝHg3V›5Röx½˜.™†Y™x=ša—W–’É$ H†ãTM“d`( ›Shnkhk¬î¸p6ªZ,åi’fÎ4àq”Ã.C¯ñÔ:^ÖN,0/§)åZ§æ_nþ<Ô™™Ÿ{qÂ<œ__Ý8MN9¤U=2»?r')Í!„4ŽÏ*ËÛ‚S ÌÃ8?@ÝÁ¬ò8a툴ü¥KÒ+oò+'m ¿ÿàñ'·ÿ¸³°N0ºŠb€@p ÇA(ì­©‰ÕTG9Ž€†T]õFjw÷3SÓ+ÓS‹]]ýÃ:.œAÍîñ]»qõ|G‡ÛëÙØXïìêÙßß!H|ztþöí»{{©¶¶s¡H…há›Û›­6þÁý' ³³Šøüþ` “Ëï%º®KùG±HÄ@dÑq€%©GžÍϯحn!E³Xù÷Þ{Óp¨jÞ0%©”g²µ­Ãç ŽŽÌlo¦Ã¡˜,K8¿õÖË—Úh’ÈfÓ Ã´6µÄcUª¬-/­Ì,ÍOOÏäry¯×ër¹ív[sKÓ…‹çÝnOÇ… (Š ¬­­,®ÌÞxw°gÈåöÄ*«Immkÿ/ÿûÿæòØÓ™Äpÿto_O2¹¯ªt»]““3~ð‡/>ÿ²¹­Õ"Š ÃüAMW»ºº¦gfŠÅBMeÐj±áÄÒòêüÚ IDAT‡42:‚†“ºn`Ž¢ˆnȯ³¶.îr9®^<çpØPjªŠ “"š¦¿TB‚#+\ó$ñ×k´Îèi3Ï—3Ì—'Ìo„:Eæçf»‡ùP˜/ýHŽxEÙo—Šˆ|qkšxÙóPXÏË=8@pÄ`(4ͲÛçá Ó|…Xð"ÛåÅË¿pÀ,'o–sëLhR$U^-–s˜1 EQBÇH€š† P"&‚`ÎårêÇÝôe¯&áv»ß4@QÊ‹vš¬0’ªµµ4Ýxã@ÕäÞábgϳ$3:9¶¶³eqXq‚rˆÎ³M«ë#A׊‹/×TS«Ñ™™‰‰õááyÝÀ*c•.§Åf!/œm¼ØÞÐRWeeÉÑá‘Ñ‘ÙTnìæîÜ{Ô3Ðçv;bÑ¨ÍÆ_èhºyý|*¹ñ¼ëéÒÚ:É[*£qs/Ìíü÷¿û—gOŸ·¶4ÖT‡övsùÂÞÞÖÂü’Û¬¬¬SLQQŽslne>øðÃtn×éæU=W,•t {ãÆw«bI)â$R”²%U©®k¬il™š][^Z³ŠSÃ϶Ÿ}ï½·A{¡¸S,–œ.¡®!\UÌæ£cS«+™5 ¡§‡µâ—o6]¿Õ€‹Æ.¿†ØÐÈÈøäÜôôêÀÀä½/ŸŽŽM¶¶·ûýK!õæµ~ïÍæº*SUûz‡'·7‡‡¤-óK|ðÉãGÏ œ&i Çò…BÎ0•Öæºêª¨Çe»vå¢CQ1õ²7bBA!†€¬(RΩ+ßÇqu¸fœ"óyÅ,çÅ] @CÓU)Jj^RÏ_¼†ùÆìg’À‡!PôëD=žð=¯~ Ç8šœ”nd=–y<Ùø´¨ÃáÃ_ÅBñ¸ÖEQCW hà$a¢ˆªA†¶nn&~û›{GÆIжXìù|^ÓU¯Û 8ŽLd²R)#Ë9‚@ìV+Ç ÅˆÍÍ®þñ‹/2ù‚ËãÎgóJIª¯­½zù2 `.› )\‘4Ÿ·"©žš™ÛØÜ´Zºnˆ‚ÐÔXW__ÃsŒ®Ê £•q›Ý¹µ³¿¶º191===ãp8ëêê)¿téBm]U,^ÑÐP§(rooßÌÌüÞÎÞÈÈÄíÛŸmoïv\èpºìßy÷í‹—®¦R‰ÁÁ…Å9Ã0ãñ¸Ãîšœœù‡¿ÿÓSÓ‘H¨±¡^* ù|>—æyÜét“$ƒ"Àéò,,,ݾ}gdd¨¡¡QÓÔB±P,‘@[[ Y.aR’²Ë5553´¸0¿‘Ëj¢àÊæ3v»ðã¿ýÁ™¶]ÕeE¥HœçÙ3ç.†BáD"1??ŸNe³™4‡Ýé÷»/]¸X[]MQ”×ëm?sÆávolmô,.®ôv÷>|øxuy A„(ŽáÂR¡À0Ä™ÖÇð¹¯]½Âó†À×ÝÇÁ3–¾Îøä„¾¢(Šºþ‚‡YRÏ—kÝ7æa¾ìë°ƒ$­Ó<íŽKf¾oéë^Öúcx{!á9xœ¼Hï”Ó£[—ãWœÌ´$ ’$ÉÃGв¡†A ÇdUeY A ]]C·?ýrcc°X0Œ,I „f4®­‰†}N·S¼që §Sœ›¦º¢"®ièÊêö¿ÿò×Ù|>¹ÜŽR±Lîå3iC׃‘ÃR1Oàt&£|~÷Ñüâ’ÃiÕ V*Y–nnn¬­Š©R!—Ms (&ŒàÝÛ;`HE$*ËªÃæ~çí7Ü'‚j’œçx¦µ­Íb±MOÍNÍ.ÌÎ-IŠfw:,v‹Çïliolnm ‡C u†ŽŒŒŽŽŒ¯®lŽÜùì‹ýíÝk—¯Ú­¢À±ï½ûö­›7tUšžëîê3Màvùì.çêêÚÏÿéÝÝ]‘аß°Z­b‹ùññ‘ÅŹP(à÷û !\ÓŒç½ÿþo¿Í¤KµÕMÐ’œN&÷*‘p$LยH†®¦¬ø¹sç2™ìØè¸i"'²ŒHôOú£Ö–f"ÙLRÕdAäššë5ŸžžÍe DMµˆv€bªªÄ¨ÙÔXò{cá³mmýìžnÀK—.9]NgÞ}ç­xEdbllbbt/±‰„NÇî^öŸñÛ®ç.‹D¼é¬dšj"±›Ï§ w9íÏ©Š¬˜xwOß“'ÏxNp9\ëk›†nVVÄÎw´ê†‚ˆ UI’,¢Ån÷„\˜_±Y횦êºÚÜRÿ­7oúýžT:Q*æÝ.W8Ra³ÚS©ììÌÂúÚN>WŠUT$‹EZšNKuUe[[‹Às»;¹±ÑÉ™¹……ùÅ/îÝ_\ZˆÅcõ µ†b¶47ýð‡?ðÜ{{Ûcc£ƒƒÀ].Ipuþêþ®T’ëëÜ'†CšA Më|ölme³¶¶Îb1å-Œ®¿þÕÿüä÷p¹Ü•Ѫl&—L¤Š‰¿?D“¢É½dB5µêÚêtZ›G!Æ0œ")Ô‘%ëëj|WmUesc#Ǧ¡ëª x"óþëLÝ_#§ü¢ò¿êÊé" É C—5ðËÐñÓð‰]é‹Þ 9úñ,UN Ñ|UG‡"¨;Ñãùø”¥Œºã£'MÕ4M+GÑu½ü3M·Ú]©TáÓÏFQ´©±‰fhÔÔNŽmî.C›ÍªjºÅjÛßÏ}úéç_~ùÐë Ñ4½·¿›Ë§£ÑHuuŒ¦™r¯›Íä<Ÿß\]ÙX_ßbž èTr·µ­åÖ­ápBcuuukkÛét¥2j2•N$Ò[Û»›V»5 @Ähmn½vã2ÍÑP}C]6›[[[è^_MÝ¿÷ìáƒNAC}ƒÍÎùüöwß»ñýï¼ËPDr?=08øüy7Ã0MÍõëëkwï<úè£X†;wîÃÒ‚ÀÛlÖ|!ßÝÓ9::ês»c•QMS½¾ð÷÷áÜ)KeîMQ¦iªšÌ±l]m…Ïç©«‰·´4Û¬¼¬”P¢1 yZìãq«Ž]ªŽ hþÿC‚ ós/òë( '¼ìÞNZÊ¡§ $Ÿ9áäÄÈ»—Õï+ÍøK¯Ù¢Ã_“ã0p¢ÝxÉq…ʲl†aA ³±±ûù½§]C HšËåsC¬vVäU– ¹C“Í­^;›Ï¡†\È’GPjmcwg/¡PÕõL6óæõºšJ Ñ µ(•Š6›¥ãü¹D"7;7·²¶Y ?P…X\¼ÔìlѰ¿"âynusctbjz~y`x| o\­gÚÛM¨FB¾ÿôÓŸø|®ýýÉÙ‘ÅÅš¡ØòÒæ¿ÿò7ÓS3¡P°½¹ :KãšRÞÙÚö¹ý>W€åYA°¬­nÜý㽑‘1«Õn·;www S¶;ìþ€wkg»§·¯«»ÿygϳgݹ| AqšâŠÌç <Çï?¸Úq>™Ø5 †Ûå¸réŠÀZ·6w—v‰,Ãð‡“aéÊX¸ãbs$ê%1P[[]]UL¤×77æçž<íì|ÞÛû¼ßasTÅãŠ,Å*+þÛû/7o\ øËëë3³Óc£#¹\ÁåöerÅ?þôwïçrMÓI¦&Kên·£º:V VTÛδa*KEŠ&JÅ"NGúù##ô#'²Q÷5³¨þ—œ0ËnE‡y˜/¹)¢FŸf=‚¾*?=R)S_Q¯Bä+cú#SÓÓB‡^íö¦i¼ø'š¦Aiš&IRÓ´­Ì¿»=6>/Š.¨|±pÔæ°ži©ò{Ý^·‹ç¸ÍÅÅ…Uµub8î™é¥ßüîãù…·/@óôNbÃéx4‹y¨¡–“*RIimcC7Q«Í»¿ŸµÙ,ï¾sÝn£´tªPÈP4Y[[3ÜÌüêòÆÎ^¦`çœÁ`€aˆÆ†ªæ¦j†€«©¡&§æFçç׿7Ÿ<îÝØÜ®©­ E‚™½[o\ýÑ¿_S]¹»½ÙÝ9¾¹¶n8M&ö“¿ÿý'_~yßãñ¶··³,S’$Y/ÍÌMÏÌOÏÎÏÏ-,®®mk:8«êD‚ œ./E1ÉdJR䪪ª€Ç‰á¨aªJ¥Ców`musqy%K’²³³{æLûò·Á oggÛ”ó…G#Í--V‹czfnmm§X0Ph²,ŽÚÛ[ΞkaX\Ó õ ñ‹—oÊRizbrnv~fzþñ£®þqMEi–’e‰$Šš¦©YmB8 ‡ý•sçt¨ÊR X*I4ËHªL2_}¿U^Íû5sÿWÔº™ÄîF¹¯cà ÑS*ø‰ïõ•ɫܒ·¼#v}ÇQW®u(‚¿XfÙ ç¤Æò5¨;r`FÓt¡PX^^þÕonïì¥JCGŽ”™x¼Ò*»ÕÖq®ã½÷¾Ã²ìÀÐàÔì ‚OMMÎÝþì‹ídÛ™óþpP3õ@ÈŸØË õ’@ú쨩³,³ŸLÝ¿ÿèÁ—Ïü¡Éñ›Û)E1B¡@<îaI…PQdEQ^Ì•”¥]bo1K†¡«7n\nm­)•2’”ƒ¦f± U u,-®­ìÍL­áÃsœÅ*¸=ö mg*"!Ž#ƒA_cC4ôÉñÙñÑ©ùå…O?½³²¼zæÌ¹æææDb?ŸÏÇã•é\RÓÕL6Éä1œ"ŽãlŠlHrÆëñ¶´´ ¢mmmC5ô\.ÛÝÝ“Ïì„B—Ë®ëEQK‹«üîã®®¾‹WÏKRig{§X,r,ïõºív;Ï‹ºœÒ5=‘LVÆã¢hïí6 \]ª¥ÓéóçÏþèÇ?´Ú¸DrÇ0eU+2¬ãÊåË¡ÐÖæÎââj!¯PŒÈq6Í–BL#“MüÞ¶ö–PÈ_S]ÕÜÖ j  iŠâ8®/ðAOÔ¦ðp’NÌÖý³rÿ¨;p+"IŒ$‰òæEN`ô—…mÇßýázÌmò´¨ƒ2×BhšÆS,‹^þÓr À€i/ÂP_nó8Ž+P£YE]7I‚ÀMˆ¬X,P¡›ª‰jœÅVŢφþpçñþ^ÉbsšÐTuBà(“Õ5µ5aGCmLà€¦¤+‚ÞxEåêÜúäÐìè|æI×tcsO¡+õÎõŽë皃vuy²§¨¨ê´è]ÙÈ'Ä(‹ÃÝ;0ôÿüýß%S‰H$HQÈææŽª’¢rœàõVDL\•MI.x=nšãÇ&§w“ÖbWT€@±l*£Èźúxuu¥hakk«[Z[M)LÕ "DPq@Ý8q¦pD;÷ú\לHîÞ#îæB¢(@LÃÐôrºˆvþEVë7Ö×Ú’£§£ÿÄ ÃÇð€ÖuLŒþዼ•_‡²õˆ%Q9Jå0åàêÐSÈæLÓ¤)FÓ4EQq Ã0LÅ|±ˆ¢¨ÝîÞßÏ~zûÞ“§ýŠbXí6I*™&´X-&4JÅA•Ñè[oÜR59•ÝVŠñªZ«%05µº½»‹á€ÀQ—ÝZ[G!°ƒð×Wt}Ð(Çê躎c8ùb¦qôâòæãǽƒSÅ’! .5òù¼Ûíª­‰S Q(dKÅŒ"Ü6ŸÓe¸Ä°IÅù¾©Í'r5UU®®ŽÞ|ãšÍ&ì'wt])å‹u n§wckomcÇ„@°99Þ Ûkk£55!WIVÕÄhŸX_ßêïžžžg¦:wÚE¿Ïy¹ã̹ö«…ßÜ\ÛOì[lŽT¦ððYWߨÍb ‡ƒ6›%ðÚlâÒâlo_g.Wôûýv‡ÝÐÍ­í;Ÿ~þøq'†áÕuµù|>NkšFQ” 8Ž—3ŠY–¥iZQ”R©DÃ0åZUÕ\.Wóêº^ž6a @UÔd"!JA¡Päâùöúºj‡·Zè–æš ß·±¶:<0ÒÕ=°±¾ûôÉóå啦Æf›ÍFÑø;ï¼õƒï½] bŸyölhsc…,(À†††>øàɉ)ÃDhŠ(äò@8oj¨õºí¡€çê•Ká\*á(†"úqÈ×Áœè#~¢ÒúOÆÂØ:}¥h3à_ue¥Ïa-ùáiʉœæã¦®¯ä6ž~yœ‘|Pë“njÝÑ—CŽnÊ¿e‰ç8 `š¦ã : AR‚ÏÎ/öÙƒ¾þ 8»Õ«¨P7K^Ÿ·º*fwXÂaÿ… g,3596<Ü/ZÀGRÌÂÂúíÛŸ/,¬ÖÔÆQ€J…Üööš¢–N«Í.`0MÓÎYóy©§wpn~‰lFåó%@o¾{)ZÌ&7 ù=*›­²®ždØþ Å(šaiÆjáÃo¬2àtˆ8ŽDBpE¸P*ŽONÍ.Î,®LLÎU†¢ $Iüž7®\è8ëñ:÷÷w{úFTUIì'ffçž>yÞÓ;ÀsB[[;+©TJ’$MÓ,Ëâ8N„"K ù|.“I‹¢PYe:™LK’®ëŽãQ¥|yEÞŠ ¨i"$Iò¼P,EÑòãýäÒų¢/.NfÉ"òñxÕÙöÓ€[›™ÍmYR¬V Ïñ55ñ›7®ÕÔÄ ¹]ÇÑ~¦­2ßÙÙŸšœŸ˜YZZ±X8ŽëŠŠ iªEükÀïª®Š¶µÖ‡ƒ>M‘IÆÅà‰«ðÓªÜa%ÊŸ›iñæáìÞ¿ê^ÖºÃÎ|èé¼°#å¸å^®u/g÷èñÊ~d†ù²£;˜;ÁgPxŠSŽa„º¦ Ãp\QTš,Ç@wvöÞûòéúF'Xš ‚ɪf±P6›Åãs;bMue{kƒÏç`ld¢naÎÐ魭½/ºRéB¼:âô°^‡§©¥>Z\][è%I<^UʼnÖlªøþû¿ëîîs{ý—{7™L麦›Ùx,ÂÓ„©)#TYÝØ}ô´»TTl›,ÉŠ,Õ×V߸~Ùn¶6× S—% Ç«k%E_XZËfKÉ:D»Õf‰Ç+jž±‰¢ª(«k{ë›ëë››[ ‹^ïâÅË8AÌ/.I’$Š"Š¢ét:ŸÏ†Áqœ¦*Š¢ «ÕÚÜÜì÷ûs¹\2™4L³ü€+“TË…Î4Íä~*“É„Ãኊˆ,ËÉdÂ4MMÓvAXšÆTMÊeó¢hç9ÛÒâÊøÄ¯ß†)eåÿÂ{Ù×\…W¿Ì#¨;mtkæñ+!$qL×´25U7 ’¡IšÊò_Þë|ÞÕ¿µäx;A2²ªiºŠbPV‹V‹ØÖÞR[§3™ØÂ0³¦ªÂñ//oMޝLŒ­ærªÇëñúm škëbñpSS†#SSÓÓsóûû©d*wçν™ùÅh,VÛPGÓTC}MccM&µ3<6”L¤ÜNoee5‚²]Cw?R*¨-Íš,²¹R¡¨È%Žcœn;dzÙR·X †MNÎ Ž*ŠfµØ1Èùb$¼rå2͉ññáá¡¡±ýý$ ¹¤(²‚ M±¢(š†±µµ™ÎæåƒeùþPˑͦ&ËA••Q¯×³··»µµÉ² †º®K’$I„$IÓ4óù¼¦¨áp¨¡¡–¢Èd2¡ª¢Ê“ã››«8WD+9Nd9qo7ýþû=xð$VYðû ùìæú M’BÁ ‚B¾˜+È.·ßætmmí®onë¤iÖ„hY¦ŒãÐïóž?ß|åêE«MÈÒŽkº0pä®yMÁi¾à§oÞ^·?8ÑhBˆþ¥Pw je˜¯P‡³Å=ñ]9C¿bêü*ÝùP}3OD]9Kìx6P¹ù§4ʦ¦a`Ð A€aëÏ»»>ì)uŽ·Aäòy’&x m"J.›s¸ìm­MN‡ Ë9IÊ‘¸ MÅî®ÞÚJ­¬l•$Åj³r<E[ZÛlPȧ S†CáPÅÞ~zhxb{+±±—ˆWW;Ý.I*F‚¾+—ÎÆ¢ŸÓ²¶±·8·¼»›ÙK–††¦{{F‹Yµ.^ORºßëmkkEqrzray' Î"¸ýþ|QzøøÉ;w!Î_°Y¬Ksó¥RDZR1ßÝÝ512±¸¸²µ¹kÀ@p"ÅÀI’R9“M“4β"„°<))7reÞ©¦*º®“$IQT.—[[[+ Çá8Y¾°š¦•ÿGdY.‹¡ ¯µµ™ ñõÕb1ã(†¡º®-¯¯®¬­™cXËæVêƒoß»ÿØíõœik1¡âv;ÂáÀúúê³Îç©TÒf³Vø+YγâÖvâ÷Ÿ|v÷Þ½d*  I6_(r§Ê2„†Ýf ø½o¿uëʵV`­d@Ý„¦ !Šá²¢b‡b€O3\<Â×=-Áûk~6wùŠýü˜¦ _å’v¡…¦qÜæà5á!‡7ú#êÔ@ëe•;øœ'ä]½°.ØáqðW×B×Q hº†bÃ0Û[÷îßü¸×aó¡(Ž ¸f˜$CWÆ£áˆ% ›Å5==™Ï§¼^GÀï¢pˆÓÐÕÛŸvwõY¬b è]Zž3Lã­7ßuØ¥Ü"†MS1@º}ÁbI[\X5L@òlI’œnÇå‹*£ÁB6¡Éy¿ÏU]s&ÎÏÌ­nn¦7u m¨m´òŽ5››Zšš*£Q‚"GÇÇFÆGK²œÊeŸw÷ŽŒŒóœÐTßÌs¼RTv›¦ëëëk뚦š¡ëÐfu²¥½tŠ$馿›Å¶¾±®ÈÇ1&ÔÅ,wׂ t]WBHSd™'I’,ËEÑ4-I 0†aA(»–­1 CAííl6ƒ¢ ÍPEb±¹µ;99?99ÿøq×ôôl0¬®©ÞÝZmiiúÁß|ï[7mvÛêêÊØØÄØØf~_P’õÏîüñîç_líî‘E³´¬ê4E«ŠD¸(òá€ïÖ7::Îã4¢éŠªK$E 5L`8‚pJX≬¯9ýY}Ýñ†è`!aþ¥f˜e?̲ã:AàŠ!Å0AM"ˆ‰@Ó&@! ME€¢ p€a( PÔx¹Ä^ªW"Ê9A Ä4h@h"ÐD^ÔnH¤¦ùBU[v¸ƒ&%+ª¡«8à„iŠajCq†ÉIEJ`PŠêêþç+«E’ñ ‰ t.Sòz½ uUfø½â·nv\j?GaÈ`ÿÜü‚(ÚžàÂòîïï<èolkq‚’j 8.ç Ùí;MYÝnAu‰ˆ IDATÃ$PŒÒ!úøÑÓÎÎ.9žÏä2@j«c5U1ÄP©€!ÐÐãâ±ØÜÂÂN2ÁYD€4‰TÇÃÕÍ»/%©ÔÖÆ]N_rGZYH®.¬o¯î3¸p±ã²E´Ž¥3)‚ÄMh˜¦Q,–ÅD1#¨BI.)ŠÓé8{¦Ý" ÉT¢,¬,•T’ä1”! Ú4MW …œ®k•± Ç—Ëç“©”¦™Å0,gBP*)4 SSUÇqMÓE£)EpUV5ÍÔT]U 'L€ EŽáù\Á0u’$Uò‚õÝ·Þln®ÆI A³ uu55ºd®ÌoõÏLŽLOݽwohdŒÄižæ † :PB•%ç çö9ÞùÎ;—®_,¨yU–     Pˆ£Ž8¦‚;xqd¸ÿ‰ãå>ù¸s䉕ððTü5ê„Cñ“ð¥–Ü(JZ¾¨œ»p¾ ãùÞÏ/j PÅ0áW¾ åM@™ b Ð9`¤6À<ì©~ƒ/ÜõLh"ð„–÷ˆ#Ã+n¡:Ä1Ô UUUA1Œ@ (–LÑj/IÚ³ÎîÇ{vv³(J£@0!dYdžÄëj£ u•v«`ªZU ´ÒöÚ“¥ÙUÚŽG£N·Ûl6[!”Æqœe–e§NŸšF¨Æe©£ 559wùúûÃQŒ£Ô!”cʪt=JQ‹üo\<ÿƒïïüÙ“QådOk`<Àþš¸äg[ÇÎ`ÏX5?ã™ÇéÎæF)dÅE^ò´à/¿ö]øú¾ä7:Ûkµ¹.q=!F ÀX;o×µ–Ï”çº}Žû¦,f¼—ÓZk£>8›z¶D!2Æ@kšl´6ÂBýÍôÍ7/ÿê­«eiõi(Dl¢=9»4‰  vâawvºyæÔ1RYUŽ €\ȯîݰºYÀX”âÜÊâoï;QDÒx§ÌGŒcË+Fûöõ‡›ñ(›žž™žšoq~ú….Õ\||åXú;Þû«[Ý»½ùÖY¥ßüÖ 0ƾõ­ož?{¦’åG~¸ÓéÕ¢cn·3¼uóî•w?èv†—.>_¯MloïEI)¡”QJ´6ëè«”ª*Žj·ÛŽãöûý¼È˲´G’íÇö¬º±6B®”Ä7 àÇìúÛu]Æ»àBrÎ¥i’º®{âÄ©f³¹±±¾µµ†ÁçYžçÏsBv èzÞ… &&&7·6«ª2>zôèÚÕ+ÁùÅù0ªk\·qçÎêÿü¿ü¯Û£sܲªc˜á°)6ÐLî¥ gÿßüî¹Ó'ódTIè¹@ ôþ³‹ß'9,O܇ũÌ!õ·H±g‡Ó3"y‡16ÆH!Ër7×½üêëu䙣~2‡}–=Ùd ÚgjcÀ ÂÆC­547<±ö—š€ª*‚À犒„9~½ÙÊ yçÁú?ýãå‡×4`õF]p•eùôôôÒò\P‡§ŽÍ¹¯}ãË/>½òÎ?ç£Îÿoÿhan>¯;½Þ?þäÍ/nÞ˜Y*x°¶m èvwªªj·]^8i+ê»^H|×ñ\­Rf4Ììùç.,-M†™ç®¼ð ­Éù¿ùûŸ¼÷þGQ³0}ñÒ…F}07=µ²²b £"|õÝâÑÏ—–‹"ÛÚÚj4Z/¾x.ŠêÖ6 £ðò¢(ª¼ÕjQJÐJ*BH·Û%„={!ôÕWw•RvL‚1NØ‹æ8¸(x½)¥’$ÛÞÞN’c ¡± 7Œi½^w§,ùÞ¬€†ÃaQÝîNQdF#ˆB¨*Ïó’W¤Ä€,ϦÚKË˔һwïrÎëõ:-¹ëºÃ~÷ûßÿãÍÛ_þùŸÿ»™ééwÞ½þÆ?ýâî½°æ#„(†RòøìÝwß»që^6£F]”*˲z#š™kºŽjGîÉ“ËgN­<aå?‰ôãO?Ñ¿öÊw°¯¯^½öÕ‡ssKSÓá…¹ÙápøñŸ%éð÷ï·W–ö¸o_¹öÆÏ~I\¿Ñ·Ö»;½þÌT+ ‚z”ÅÊ…Š^½ÕžššÚîŽv"7nÜ‹ÂÖw^y‰¼µ¹>ŠÓQVLMÏ®+ƒÁ½;ëB¥ØÔÄb½ÖÞÞÞî:®Gkõ IF£Ñ(ŽûŒ1J©RŠsÞjµ—'''···¾ïgYL)EA@RJ`(ÅqÒ›_\\\´Ñív…J©v{RkccUk@'ŠVk"MÓ²ä[[[QPJ]Ïá¢ÂÈ¥”6›MÏó²,KÓÔ {Û½B·ÛÝÚÚñÃÀó¾VÔ=vóx<ÑèÇ¢=~ªG`޶>~ÜÈp µ!§”ÒZ=¾:À<ƒsЈ yûëkk›~ècÊ2—Ò0;.ò|4=½pv0÷7ê5öþÃÿð‹7ß}û­kë›)tÑÆÆ£3gO­¬ƒ<ÿK‹‹ó·nÞü/ÿ}që«<+¾ÿ[¿µ°¼ðágŸ¼yù²øgÏËÓ*Š¢x0yûö­¿ø‹îÿðûÇ–g´oß»ÿö[W×mÍLNe…ˆãX$9̳êÞúƒÍÍÍÞ(î Fi!<z¡cå›( ÛÝaÒᢂa 1Q#@äyšW)Q*„XXX˜™™ÙÙÙét:ABƒeY¦ijŒ ÃÐîÙ´Ö sÇŽ­`Œ Юë9—[[[ívRJá\&IRU¥N½^ŸhO=,&éÈå84}Bˆ1ªäœRŠ0!J˜ÇBeYŽF#aEF#/‹4M™ë\×IÅ»½xcóƒV}rqi9Ë B±äU#òÏŸZY^žŸœlŸ¿pvf~r{{›ó*¡ªªª( vìÞÀð)‰èÈ5Ý3œ ŽÜÂ=íaO?î/k“žö<ÏØ’›Û·¾ØU¡õ˜ã8cæ¡i Bi£Fv£ÇŠÌŠ6îÆÛp8Òý 0/ ¥^ô‡£·Þ¹úÆ/~Õï'³ó‹€èªäÚ˜F½.µ|ôè~»þþüîTË<•¢Jólff~~ñÄõÎÝë윘œž›«Õ£ç.œ›™nƃ™éæ‰ ÏzÃ÷uvú×?øôÓ/¾lÍNž:{¦(:çÏ»xáçÎ^€¼÷ÞûÛš­‹šë›ÛWß{ÿÓO??¾ròùç^¨Š2Ï eÐÖÆúúÇۛ[›ÛýÁЛ€à"!lÂÐÇæE"eN€H@ ÔeUTUÉö}")Å®E{gYÞét²,C3ÆüÀ#dW†sžç¹]‹¿øÒ JÉ›7oeYÞh4!DZ!DYæ„„ç¢,KBÈÒÒò¥K—Ê‚Çñˆ‹ªªJ!8D!@ÂXt«e-ÌÎÎDQT…Ò~(ŽãRF1J)¥Q‡WÜóƒzÔ¬8WÒPJ]¦%¯…/½øÂÂütà;Ï?wqzrb»Û¡Œ†¹à×s#BJ‚èx€9þ`à³h–xÏÀ^¦È<­9zªãâ¾SR ©*¡Ò‚¿øêwD_ws€¾ºu»³µùÌaÔq(€VÌÒVƒöÈÙe=žn핱»’1ʨ ŒF-‘@ h”6JI¡†(£•gîêfŽÕ !ÂH)Š1Aj ”áA€VRXoM®=Úùë¿yãòÛå×Â)žÃ"-ž?sh ÃZ·3ÍÌ·°ëçÜ„µ¶”ðÊ;ïݾyCÃjõá°Õüßý5=Õö7 ӴߨÓKN ú½/ïÞIË’8îììLàºß˜[<½°ì3PóàɋȘ›7¬?Jn®^~ûj·¿òòë‹ Ç6669/ÃÐ-²*/ª´¬* ݨ6šy‘YZ–åsÏ=·²rBXp­5‚JÊBbä6S‘²äU%ŒFÆ@‹”Ę ÅÃ0r]/IÒªâ”2Œ !Ô½½Ý\IiÀ®* •R‰²äbÎ…ÖæÜ¹ó'Ož‡Þ…Ђ1Æœ‹4͵†”8žë@`z®Cəӧç!ý^O UUUÉ+mf¬ 0PÏÄi†5©tÇŽÇ5ñîNozfö¹çŸ›šœhµ/¾øüüâü`اÄBˆ)¦ £T Ñ®KŒ(í&×Î Á»,“£VÏð?r\w¸žÜÿøÃ Írb””ei]#Ë—_ýŽ‹eþúœƒ[7¿èl­î¡Ÿ)D4Ö¨c=f½«¥w€ƒ´w&Aá˜ç£µ»~âB¨ìä<¦Ù£§Ð+ R–Jq‚!FX+­µA7ÛÓW¯}üæ/ßY[ÛæÀ$ÆàZäž>u²Ñôgfšßÿo¯Ÿ[]½{íÚ»!ssKós‹½Þà?ÿçÿïŸùV£Ùhµš;Ý Påi-òçf'µ© ‘QŠ)iÞ¿·qóöÃx˜GaSI#„¾tá¹.žŽâª*í%YXZi·gãâýL¤ãPc¤¨8e®Ô†ÃôË›wþò¯Ù¤Ì0u+¡0ÁžïS‡ÄÝï¼þâé3sAв?í4õ³gNÅ#øÉ§Ÿß½û°ÛNÏÌ?¾¢Luüäò7/œ>y|ÁuñÚ£ÕÛwï••®¸qóþå_]ŽjÑ¢ç9ÓÓs³3I:ºuó†*õìü,qiœŽz£ÑåË×>ýôËc˧Û³y^å9G;.cÈ(Í õ,Ý&Ï3€”ªª¸EŒFqY–Æ@Œ1BƒTJ'–“““gÏž…~ñÅÂ0 £BȲ,Ò4³‰¨â…Rj~~þøñãv̘$‰Öº,ç!äº, JqÅ˲ʃx~~~~~^kÝëõ’$8Žc/¸…­¸® !äœÛض;‰²,ªª²§fžçaJ©ãº”2RJH+7jмò]_)]–¹ï±…Źç_¸D :uúäé3'=‡U¼@`‚!FïÉOf½+Êxx±vx©}¤ #ø¯øu`(xä¦î/!¤•ª¸È gå3°)äé¯z~…Ü«Sá®Ig@„޶>‡T™Ÿ0zÞïiëã'E2£œ1ʲLjåxžçG½~úî{_¹z½? 9ç”b?p8Ͻ~Ç!µºŸ]´ï{”âéééóçÏß¾}G+ä° Ï*­õÒòÂÊñ¥"Y•œ9·à„ðÆ/.¿õö~|?/Å\›8¹¤ ÷=vêÔòDsêÜÙ¥Ÿÿüç~úE©ª¹ùv^Œ¬­no 'fNž;µ³Ýw]·(*Î9ç(D+ƒN’Qšæ”:ív»ªªÍÍÍá0–Rzžç8^žçY–yžžë²,+Š¢xž'„øòË/íÈW*É¡”ÖëQQ°,Ë”Æ!clvv6Š¢‡v:BHEqF#m||MQƨ'N,--9Ž“ç¹çyJ);´¹Ë––T^E£Ñ˜™™éõzƒÁ ,óZ­V«ï£-5S†!$¸( ¥B¨*òz½™$‰ïºÜ(Ï^zñ›UU®¬,ž:µÂI’‘ë2A–e®ëZ¨Øå‘.º$«ýN×ûÕ«l ž1Gù÷uGþóãoöüÏâ|uûfwg̯c¶^Ü“TFhÏC|/ùì6Æ(£¡hKzLêÑZkm5Cõ^©yoùÄO  ÒÆñ|ê÷Ö6~öËwß{ÿóþ0÷‚I!eUæŽKfg[“í( q½î&ñàþƒ»ÍVcqq9MK„\ÎѵkþÃ?ý,ªÕ„ýÁøo^üæ·¾1J„dEY4홹E¡ðöÖ0Í”K£ ”žï¶Zõ‹—΄¾û¾ïAÖÖ;Û;;ns§Ûëų K+++£d8öÐŽK‹2‹ã‘6!̲j4¹®³¼|lvfÞhÄ™Ö@H¦”` 4”RMQäBˆ( =Ï-Ë"Iâ¢ÈµV„`¡”RkE)cŒ‚];iE­ªŠ’ç¹E{ù¾1n6›JK Rå¼BBà ºté¢RÖº5¶Ø±ª*Ó41f·Ä°Q˜žž>sæL†½^/Žc $’R@†VZJÉ…PJkc”RÚ„P£a‚1γìâÅ ß~íe!ËóNó›’t$dåPšå©à¶”v j!íy„Ì!U¸q%9Îû˜ç{Z|­¨{6 ïp¼i¥m®Kóêå×^ÿÚ¹n¬úº¿³pH0v”3èÀÙsx®íFñž©…?@L½@H}ëæÝwÞûðÃOnrŽší¹2ÀÈf£6=Ykµü驿ò±¹ùÙÉ_¾õÞ•+WþúÇÿÄúÖ·^ F¿|óWW¯^­×ü……éÎvlqï½÷~­á,.Mú’² 7JÖVïÞ¿{åQht~ÿîÖÙ3—N?)KÙn®=XßÙˆJ7Ûµ$Éò\ˆÂp:ŒÚq–¢Pc]ËDP°½ý£¿ý›Ÿ<|ÐaÄo7&”¨ª2ö\¬…\®,套§'Û’gE»/ÌÌ×›S7¾ºÿùÍ»E!ëQýç.B0XYœ=¾8?ݪ­,ÍWUùáÇŸtº#‚Û·¾ýÖU)Ðsßxa¢=iŒQJJ-»½ÎúÆ6—`GÉdQ¤Éd»95ݪD<u BAØÄ8,3ι‘ÊÊ¥Úh©´Êq©à*MÊ8Nó¬Â9.Õ€;>Æj Š²€q!!"çÎ_äeòðá½ÑpèyžC` ÑˆWÂqBc°Tj8FµàôÙ“~à$é°,$!t0&IêºBXJEÕF ‡Ã,Ïß?sæTxkî YPÊ\×s]RF)ÚM Å$Mˆ¥Ô XVÕ )£5@À,+Š’SÂÇ'J®! *©&˜B!8„œ¥…®ä~øCŠñ'_ïtvxÅoß¾óчŸ ®$zÛqB©ãù£¼,½ ŒI­ BÔó¤19ç!£¥TÒ@C ¥Ds¤ÒZ¥´ÖûÅ Æø1hqwþgÿ @¦ìœöi+ò±òÈø[öŸ<‘'ö=Þ=¦)ð7˜¦RžcSŽÃò'G ¢()«;=Þ·FÅIìyAÉ+ UTkp΋¢¨Õ'~ü7?{ÿúÇ£aÞnOfyÕélŒŽ-/¤ñ@1•'IQÆŒ!ø(É뵈g2h4\ׂÐh‚ªª¢?è~ûµ\J´ªâÑ6ÄÎ÷~ëÕf»õÖå+?fdb IDATýé/ÇaÌ?wþl­Ñøê«[q»®ëyRFk¦9cŒRU<ËŠãËKõz³¨J¡¯w»ÝF£á{žMDι"‚f³y÷Þm£0Äó|Çq0–å¤5°|9‹å·sË[·nùªJa·JJBH11Æ”áf³9??ïûþÆÆÆƒ÷¿E™žž.Šb4aŒƒ àœKUh­ëõúôÔLEœK×uÃáP)åyžNbŒµÖyžûƒz½>37›çù£Í ι6!Ä9·Ý8„Ð¥ŒÂÆBB¤ÒY–Q]×)˪,2ßÿôþ(MÓÏ?ÿ4N†®ë"ä–eÙétþŸÿô—333KKK3³S“““-ß÷£8UJÅqÜív}ß¿téÒäÔl¯×ƒF{ž‡1eeŒñÕþÿï™ ·nZ×H×!Ö5ÒÚ@)81fÈà¾é­½ÃìŸf·?|¢õÜ7‰Ìuµ‘Aê„kkŸýüÊÛo}X* „xIšº.›ŸŸ™šj4Á÷¾÷ÂÅ‹gNœ86õß»ú~–ós‹Z“·Þ~çê{×ó¢8¾r²Fk£õÆÆÅn£Ù`L;p]zûöÃkW?ô Â|‰1J)ÃEE s.ôzôHëÒnÌ•Ú=(Ç2Ø6ï1Æ Ò£ÑèîÝ»Œ:RJß1ÆY–1ÆÂ0tg\qBìLr0¬onäy†!€9ŽRªÛÛæ\ŠJRJµ”Rj1!Ø(ä{N2h¾ýê+/¼ðb¯Ûç+*æ2ŒˆRŠ9¥Ô#¤âR#BB­Ý F»D#ZÔœŠ«Ï¿¸ùpu}këõW^|éøñcyž¦ÉžÇhUûõQYÆÉ}&¤OÍŒô4Rè‘Ép|Ù÷ã3µÑ ¯›ë¬2sê¸ " !RJ>›e4Vàƒ`?É`·ÀÏCí©|˜ÌK™K)Ó€~úÙÍ¿ýñwï­Qƒ9®6a¨´âUžÆÃ¨îýÖë¯_Yº¼y–MNÍž8qz8ʾ¼qo»;ëÉöÔìÔT3 æfNŸ<DsÏïÝ[ßXO³òîÝG}ð%uêg/\\\Z0X§Ù(ËÎK!BA¬”ñ\¿ÛídYÚn·¦¦&ÑY–rΥюëe„àŒ`¡àFH)ã8θ©+ËÒ.»•–À@B!D)-¥PJV¼ÔF[y•ÍÍÍíímBˆïûJ))ÑV*%9ç¾ïÎÏÏŸ:yJ)Õëu‹¢\y‰ ñýP®µ¢”p^ }ÆèÂÂüääÄæÖ¦å˜B-:ÈÂ,ínÚ¦D‹Æ´ŸL–fqçEÁ#ŒZˆLERj±RZ)ƒ!FcH ÄRê¢ÌÐ/½ü­×^{muõáåËïjm\bŒ „œ ÆH)1ƒ2ÆBBp)%„»Ò&S)P)„Œ¢Z­V/Šòæ/º½¡lvf&ªÕÊ"+yÉ\¦¥~Æ*üðêØŠ–F–î´L8üüGŠg­9—yÉã¬|é•D??5×i}qøg{Z6?œôpXíÒü0O!TTÂu‚ë×?ù‡úy¯—QÃYˆ4ÏÓÉÉɨ^ö{U ª<ÛÞÙlµBû•¬ŒU^ôûý6?]äñׯmvºRÖ|kóáæÝ='X|øðÁ[Ã4‰óªâ¢ðñÄìlÖ•eI|×ÙÚå"éŽv(Z+¥Ðq€s !JÓxffæÔ©“„ ÕÕբȚͺb«Ÿ !Zšëxe–*)AJ™³gÏj­=zd/ÂØ]@ȲBïêÈÇq<ÏUZÄi:,½Àöc£ÑBF-ECŒÒ"Ïó~¿?ìôm?&„À·ÛmÁU–hß÷m^=uêÔéÓ§‡ÃáêêjE®ëƒ^·ðýBh5؇Ãaš¦ËËËç·Y–ÙŽ‚6Æ@‚Ã0D§iZ•\ e‘+¶APRc´’ö§²¸4÷þûïݼu£Q«3ææy憔óÒöS×õ…yVÚ¢šór\A1J „PQd ´ÖyžBC?ðx(Dª5¬×Zóû½õ^¯ÇʘÈóÜÞôaˆ1>î\6âQÁEa߯4 Š\cŒëxqïìt[­‰ÙÙY¥Ô(MÓ¬¢œø¾oÁYh Eå[Ö©}žÁ`¦©ä€0B¨ð\qn¤¥£9Ô º®ëº¬?ì¬mÜ—R†aD)NÓt0è¹®†!„p0èi£—––NžÑhž¦Évgç‹[·zÃÑììÙ8E®„È0Fch­ž³›kc̯v:ª~!ȪRj y¥ ÔŽƒG£$‚çŸÞ÷Ý{÷î•e^¯Gyžçyž¦BëÐó<­MUUJÊV«555åûþ£Gvww`êi`””aQVR ÌÌä”RŠ‹¼ÌòmžQŠ˜çj  PR)æ)¢ªª<Ï´ÖÌaUUõûýÁ`Ðívëõº½ÔµZm(†ã¥¶ý§§§;VÊt}}½*EF¼àÃaœ%y³Ñ•Ę(¡“d¤µž™™š››s]÷úÇŸ ¥TeHUZì2¥Ôñ| eñÙ" B¸Íó´ÈóÓ§Oÿáïý›Á`ðÆOÿ‰1æ°Ç)¥4‚­Ííªä6Þ,tËžGV¶Ìó<ëãeç@Zë~¿?ì u?’kl~ˆ1&˜ „´Q{_'F¼ÿ?]}´þÇ?ú£…Ź"a‚Æ„=ÙíMh«’ m?eá­h`äMчÿöæ˜gq@Vº/Ÿ(,mm9nêvg0fE~ýƒ/Þ~÷£n7õÝ&f¬¬%.`ÒÃy•$Æ~l ˆÃ+×¾è÷ÒZÍI’áúæÆ0Í.\ºX æ>zPi­ªªÂµ†Vh Ë2Ji£Ñ(ŠÂ<$u¥Žã …,˜ã2Æ2TCµa¯×ÙÞ–;m€Ö†2ì¯,K‹örÎ'Ûååeß÷»Ý®Ý}A“$‘†X5;Œ‘R2NFŒàÇ· ÷ïߎ2©8f˜ÒPVÚsù³‹x[qz½ž‹ØzÌö?Âz½n±¬9ÖØX|cc£Óé„Ç 8ŽR\Eá®”ÚòÍ[Z^^.Ê|k{Ó˲L“Üq©grÎ “b|Þ[BÝh”fYöÍç.ýà?X[}øÎ;ï ˆBI’ÌÎÎgY6Ë¢0æÚ·gÛNkËL)Fq{žçyžEØ;R–¥]£U\íºÙu]´ÒRÌînόҞ1ÂüÁõO7Ö·÷_ÿ»ßùv­&ƒ„°Ú»˜„ Öš¸ßüàÙÛ¯]^èQZ)ú).¥_‹ÃþöuO“€<uöf:PCk­!D7n}ùΕ«Û[¹´bB šR&¯ªÊ.šŒ1…<-«û:ʲÊÂZtöÒY„;ÝÕŠÇžó¼2š,[UeY–¡F£Q«Õúý~š¦UUQÖ ýÈž1Æu0ai$VÒxž§µº{÷®ã2Ƙ”¼È3Ïó<ßA•%ç\ƒ´¶äëv»–BÚjµcžçmöF ˜zJÅy‘×£ÚÂÜìÜüÌÎÖ ÈGR")tY)H]‚*K-¶XÑjµ&''˲ÜÜÜÄ—eiÑišº®ëû>çœ1f·ÞžçY‚~¿ŸeYZÅŒ1 ±Cø~´ô9cŒTÜ÷Ýv»ízÎÖöf·»Ãã‡s,Ëò¢RZ$´xØÏÔV€k±ðÊ+¯¾ü⋟}úÅÇ^¯Õj.sŠ2“Rw»];ÞT@Aˆ³,ó<Bcá/eY !Š¢°zïëëëÍfÓŽOv>dBc"×u-k‰g±B iC¨=dÌñ ¬ [Ûƒ¿üÿêÁýµ?þãyÀ*8Ù{ "”=MìZ´G‰üº¡ß@ûùéÛs}@vŸÚ%Øeßïb9ûó¢¸wï^¯; BÜQÆ%⪬<ß!„°Ë B ®¸¡_Ï‹Øg BÔÚs +ŸÝøRç;BªF£EévDžçRh„PÅ3Bˆ-Ç£'×u½trº Æ µVyž—euñÜ%Ϋ­íÑ(ö}W)U™çy® ÇŠ”R V@J¹³³cE¸,åÔN”ÒF£ÇÃ# /ÓåógæfWWW··z‚ÉɶPz§qœ \× C¿( ÍÄDkyy9Š¢GåyŠ±ÃÆ0 íþÊ‚•âØÔ:11Çq§Ó±õ1!Dré8žT’s^®ë! ÅB ÉÅæÆF¯ÛûQö3 !DˆØ$£ìB! ´Ù3j²@Û“¿öêw¾ûÝï¾sù­Ï>ûljb¢,˸L1†Öí亮R* kqû¾OH8’$áœÏÌÌX˜²,ëõº † ”RÃápWwO—ņ¢M¼ãñÆ#!Þõ"†‘°È3¡ç×€æY_»výÎ;ÿÓÿø§ Qù¾?ÖÆ¥Ÿ§ÿô3ßq¡¢„вäÀÇq=ÏKÓBE!cÔšÌÎÎÚ!!¤( {ÛØíˆ-ø³,³н…¦§§-ïÁöcV¾%ð×q6Z©"Ï¥Àh‚‘0Üaˆ  ¬X- £a~õ½O aKËK˜!ÎKÆ\cˆ–D-¤ÒºŽ!’RB0BŒ}à>O=4Ã>ÙýYç0vÌ@B–E•feœ•{î"¿ÝQ·ëK~¤<“Ùõ9î±ÇäEaUE5/VŽÃ"eYI!ü°Ž˜7Hòaœ`ŒÏÏ‹œ9Ô¦¦ÝÖ ýîY–¾`ßý®|1U)Š¢00æ(©9Ƙz#²üÃáÐföÈY½-{B'NœXXXØÙzÔéôʪ¤Œ…T"B0ÁÐÊQzž733399 ˆãXkka 0&a¥´ÑrÎ}ß·ó«´%„Èó\ìÂM‰vx ”Ò ]RÆF£8‰ˆR†@À\Q2ʲ ýXdùÂÒÂÉ“']×ít:–ßíºnÇR)Æ¥D^–…RAD>sêL£Ùª*9&Iš" T„)v×ÄcÀ®ýæÐ4Mõ:¥t{csffæ{ßûÞÒÂâßýÝ-ŸÝf~«ˆncvb·ˆ¶¢³£|;IJm›åj­wvv „v‹`«tÀââ¢arέ‡³}kÐ7N€Òm{BèþÛ¾;DßøòóõGkívkiaI)æxï¾[^•vó)…°•ÙÑ0ÎC¢—GÖœ¿ BÈh-„*K‘æÕKO×~&¿Î@æ_””€ûŽc©¸÷ÌZßïwwww7ÇW×·Æè$•‹l9NT*F£â.2(PÑÜ+˲8Šh'±±±ñ«_ý*VÑoûÛÛÛ[ ƒº®[­V·Û¥i!ífhØHÅ*0c ­þiØ£µžÍf³ÙŒÆ6¨Ä¦‹‰žLÇÄê(Ë’@ƒÁ€þI}&ýaŒû©™æÓßRJ!¢é¬üÿþí?nooÿÇÿø¿ÿ¯ÿãÿÜÞÞNç ç„^»Ã‘éºâ\¬$€–Ëål6£ôBp¤PŒ®ÑÖYÀã8ùôÕ‰1æööv¹\è©®ë²,½õ¤Âï½§:ŠD`ó|9ŸÏ¼guJE!8ÆB@Æ%wFçÙ2‰£ñÈ7›ÏªZkã$±ÎYçóZkBšDœc^kc­•R !«ª¾º¸2Ö*%âXù`Ó4±ÎÏg ű®Êª,ëªòÎ Á{g Ìæ‹ÑpøùçŸ;c¿üòËùl6èxôz½&¹yïÇã1¡O(êÖ÷C“É„.Õ 4ÆX«Õ*Š‚²"0aëh!Nû=ÊZ¿aúB4Å% ]… eÝ LmŒ•2j·ºÓéü«/¿šL§Àqw{ƒøM,xz#¥´Öð}.ùzy4byä„þ¸D¶êë*¯úºÿþ1×È××%Š’9û¾wχ¼¤ æ ¢Ð€Ð¹Ào'ÙŸþúö÷úúìbb¬/³²Ì ©Q-‹’ã*;ÓÆЛ´¶´ðž´ˆˆuU#ð²¬â$:>>B\]]ELÐŽÞH Tj6Ž©æaÃ!Gˆ Áƒ³Ëå’¿¹¹BRø@Í–œscL¤±<O¿½”"m%Z—Óét6›Yk©ç¡[ÃhÃ9§.I’W¯^F£ÛÛÛóó÷Ô‘Ö•5ÚJÉ…àJ `µöεãô`okg»ÒõÝl*€“ð½J)¢ù¢®+Œ"€F;]›²¨˜g\  "a¬œ3àB(®‘Þ«I˜÷Þ[§_¾|qòâDWÕåå…5¦ÝnÅq¤¢ˆ~£¦”Bôz=2²£ æ”9i!Þ¬{½^«Õ¢®Œ KÊ™”Á(‹/©ÕjQCN×£(¢E½ƒyžÆCäh¬i Æšª®d#ãÞC§iÒbw·Wÿþï¿‹ßÝÝUJ ”8Œ1|Ð@xKþ#¯¦)Ž%rH®*]”z™Wÿò›ÿþs¸ä—~Jj¢g¹ãȘsÆ{o«ŠJ—zYgg·þúí·ï®fY!U»Háe¶œŸ•çÃÑfš´ÓD½ªàTÃxŠ]Z‚¥Ž¨á+’ï!qd¬5“É„w†ªËCUUÓ#îïïgYvzzJ…Rj6›¡’qÇibMeK¶1Þ —÷3º¿)„ˆ™†ˆŒ­kcŒR+rY–Ëå"/fD?'ªýP!gœnhç]+ËåòíÛ·ÎWiÒBˆã(Ô¬®+cm%•pR•e¹5½8<êv»³li¬Œ†¦ÐÖÚÙbN•³q–K‚e.… zNo:ß\ßc9J(ãjë´Š¸‚GÄn·gÊåºàMÓ·¶~ùË_æËìÏüóaww7„°œÍáSOLÆØ|>¿¹¹éõzÞûÅbA¡Hea3ü Å$ *¯›‰¦Y 4·,ËårIÕ)á§)̨٣émH › Tú¸Ò£ÕÖ ‘J•’!8msçô¿þë¿öz½ßüæ7W«ÂÕƒ<±­û6Ã3‚}䝸¡eÿIûºYì5K9NYX¹dy¼¿›Íþüç¿þéË77÷YiÜè:䥕 ÚI{>ŸßÝMúQwŒ.½÷!îQ㔯V³‡‡8䜇୵JEUU ZëÓÓÓV+MÒ(ÏóLßEtîonnÎÏÏ1N‡ ½^/¯jç\pJ×%„pt|¼³µIí½Žtzâ8¦ ;Mã¢(´®ƒÁîîvUUgggY¶lµzªt(9Pd­UJ¥iZUÕëׯ)MqÖZï*Z²Wu®MÍÓÚKÅ77ÇÃa6›½{÷vVf­^7h/„ J •”r6›“õðਮÍl¶ 7¨,jŒWh¬/«<0–$mô|>p•”ø†Ú­­­­Ówï§Ó)ç\H¾\.aO54ؘÏçeYÒýMãS¥Åýޤ>D ¶I’\\\4±}rrrzzE1-&“ clcc#ÏóËËKz¿(CR[HŒÁÆï¡a½!ˆ…Hþµä|Bo ½ìÆ1ï1 RÊ$Qw—ï¿üòËþçn%QY–­VúÁ õ¹ÀħÑu²ìSöö#×ÈŸãÕºr„|âŒÞ\œÿà¿Â¬õJH8³ \(L^ØŒaXÿõ_¿ûý|uqvï=—²çƒán¡ã˜Eôi[[[Ü^!bU–MxX‘‘¥=0œ×ÍÎÀ¹U^uÎÒñ5:(¯œá’ó˜J)®Må9ç\DQ|{{;›Í¼÷4­y¡”e,ÔUB7:ƒÁ$Ëß¼yÃ9 œÇƸ²0Þdð\[Vùh4zõêÓÂl> ̆¢öy•w:ÁP8†ºÖˆ¢›Ê~¿oœ½¹»­LåÀôª“˜,ç’DÕuÙJ;½Áèì¬dAúºD!îæS\–e˪ÈÁ¸v+±ÖêJU•FÆ£(.u ^îlíldÕòââ¬ÖËþ VL&sí|‹µâx`·NWuMÅ9D±. !pn­-²|ggg</¦ÙÍÍM¿ß÷@È¢ÔišnïnM&“,+¬µ­V‡ÄÛ£(žÍy¾$¢tPa2£(º¼¼¤1æÑÑÑû÷ï9ç“ɤ(Š8ŽIïy>Ÿ“ÒnCÿ©ª*Š¢ÑhDëu*}é¾F´ô»¼¼DÄÑæh>Ÿ/óŒPæ>xL(éY¢$÷Ü/Šilpæ,–Ú %NŽUÕÆ¸êºFŽÎ{çC>ØšòÈÓñI38]ÉÆ>aÊ>^ª…Ÿ‚{”BŸ‘Xzø'®\ç#dà3Um­¶`²¼ºžÜüîw}óúýb^&QW©ˆsAeùRpd ˆáJ%ÈÕ®j‰õ ì£b]†ö ÷©( ºÿ@»ÝžNïËÙÑÑÁh´quy3Ÿ/éw!( IPRû׈«˜èõëoˆíQE’¤RJDKX0ú‰ù}1 ŽŽŽ¤”§§§wwwœóñx|w·@§Íƒ²C0U ƒƒÝ¼,®n®—Ëe»Ó‘2ÆP¯B¥QQä†Å9o·»EQÜßO‹¢¢¶X(ʲÆ©ÜBƒJJǪ®ëÛ›ÛÙl†Y°œ‰Ñht~}㜩ëHJɰ.í£;íöõõõ°×?>>.ŠÂjC»8:ýív{±Xh­iÕläfIù‡ƒV§­V+I’år9N£(ê÷ûqßßß“NœŸŸ‡Cê¨i/Ç9/Š¢ªªÁ`@Þ]ôøÖZBÀI)»Ý.õÃÍ—-—ËÉý”¦RJ³Æm¹Æk5ó™B`dZö‹_üb45rFk *ø‘Œži´¬þŸ±Pþ98ÌuÁóGÒ)ßð=¨;[烷u]æUYTù7ïÞþé¯_ž.ò¼JâN¤’yqdL}yy]×5É­R÷O!G ¢²,÷övwvv´64~ŒT<8çUÄ œSi¡C$¹àŠs^×õÅÅ91Y²,.èÌ­ c’$ét:e]žžN§ÓV«µ±±±X,–Ë¥³vé|ƒöH’d{{›S$Œç¾Oh”2¢æÇ9×ét¢(Zfó<σcž,!½1Ú#Š$!@霳N[kÑ«ÛJ€’|>Ÿnooÿ¯ÿôÏZëëË‹Á W×eUéápHó^êi“$!­[š¦Ð#4lcꪪ¨¤4B¼ëë뺮9çI’\]]-—ËårIí=~¯×£ÎN´9ì÷ûïÞ½»¹¹¡Â’ì/‰>ŸçyY–ív[ð˜ÎᛣJðÁ¿ÔÇ‘ÜÜòâdooï“O{½^3–kÖžÁÂ)ŸUzœ!ÙO°Ôú9LŸÕ=Òy7ÞÏ—‹à­ups}q>AlÇQË{ïXàœsUeÃ8J¥bRJ.Wcè÷GI’Ð]KeÌ#}ìÑãa7Ý ¾)ðšìÌ4íøÅÅYž—RÊðÏ!ÒÍI.öÓWEQ,s™Ôum­oµÚNFH¢ÈèL0ƾýæÌ{OÛ^ÆXUiƘʘ:#cLU× ÷Ö\]œkSc¸’ÚY¨¡“¶$r’¢á"Â4ŸŸŸ»‚«H%yžçY©k²¹‹P`YVƘ~¿¿°+† ³\ε5ÓéT ¡dÌ‚¹À²Ê«2GD2ƹ@ÎBÎØÒ–›£ñÿö_“çù›¯_[k@I©µmò"Îf3 j®¨lîv»Ä6¢2•ʶV«Eʶóù|2™lmmÑ4©r&×eª‰Ü@½±”èšo¡Õ?ñ† \¾X,¨ õ ÑšsŽRnº)!B(9Ç4M‡ÃþÁÞîÑÑÁþÞN¯×KZ1µGÈ?ÜÑá]{Ö'(룔&z—ï¹Þý̨k´œÚ R`ŒUº.êª(2@Æ‚œgù2ÓQÜ1Æi]íìnnooN&“‹‹«²¨Êj 3†Àñ‘R¼·„'”4£7à‘ªLÃÓ£´FÓ:͸…êÕétºXÎŒ©…ήž5]·M:j·Û'''óùíÍÍÍd2ã¨Ò¤]£!®ƒŠ9‰[ÖÝn÷ðð MÓÛ»kêW¾9FHµ©í¡:m:VU5›ÍP¬n„†i·Ûí´Å|0ÎÒh‡ÎÄt:%…ßSe~¸$_ !<ì ­g>XoóŽSÖŠ(!°ÕJ·_¼<¸¿?8;½:?»Z©ùSËAp>¬µâ!4ä«§JƒëXMª‚²Z¬¯ W–Ë¥ŠD«•xÏêªBÑ DåQEQ\__/ó‹ªÒvr',è,+OÞ…ŽB®ÕN®¯¯¯¯/{½­Î«ª¦Å ]ÎÔÜhÐ;>>bŒÙ¢*¬©K¥Zµ5¹”Ò««šB`d G”YyRBÀ8—Ç)-¸ªªr.8§iÕÁÜÜÜL&÷¹(’›Çóy6½Ë¦“y$"DÇE $Œ@ù6MãííÍú§º¸¸øÓþX×µ·ß~ó­1]IÄNl–f”šhWAÉ(Š666®®.}!º7)0æóy£›Ï^+¥8t«ÂIP®fœGíµÖœ`Â8£’Îp¼­âø»ï¾»»»BŨ|¶ð¥)CEQ%UU9ï»Ãág_ì± '“$[Ö³é¢ÝIëÚô®›&™7Þ›|>©ë2MÓ¤×ܹ͊0›Ü!¤ˆ\í§yB„ÊyïÛ(Š\°–ðŽ3ߪMQ°e–©Hþú׿‡ÿïoÿŸË‹›ÑpÌK“Vž>°yž@IÆ<³VïïïO§SR:dŒFƒº®•’4ÅPJœž¾ë÷ûÃáðòòr:Ž„v t²÷÷÷i§¢”êõzEQæ_¾|I®Z´yïv»ggg•6—×WÀñâêpÅóU] Šw‚õVH€! s™m§Éh4ØÚŸ¼8899 ûˆŒ3rPðŒ1ǘs´È€ùŒ ¡cÚÆC‚{ª¤}Þ”TÎ…x¦o ërfë­†í?•KÀšXc €Þºuƒ&êh¨•¶[ 0i ŸÞWç7&D͆XÀ1†@—D@à'*‰e¡kcLpŽ1æmÀHDQä·hsλG”*æV9&Ñ Ü–f•ëk•–^p/^¼ØÞÞ&-=ºùv3 »©¡QþÁáq–eT/Ì…~Š$+ `Rrë¼6ÆyÀ¼Çëëkâà5“žfOi„êö/¾ø¢6÷···Ô †=ctY–ˆžCÝ f)ãmnnnmm}ùׯæóeUUI’¡8ç$6‚œ{Ǽ3\*éœ'Ýh缪ÊN§óÙç¯z½Þ7ß|ó׿¾><8"¿8JMG¦äÖív;ÉÌ0ÆF£õÌý~ŸàÈÄ!$À$!ÂiaCõ9mêKI‹íîîJ)ÿ‡ÿ8;;#0W»Ýn Ë¢¬(V›a5cÀ¹¬Ê’Ï@km´‰ã¸Ûén{{{;Ç'G››ãN7I’Y«¹³¾yöŸ°Â‡'É ŸÕ‡^+õÂó°é¿Ó¿î³íz+é™—‘¬Å9ÄI§Õ¡hÅ­Ö·ç—4éòÞ3æ B§IŒyƘµÞcí*¯ÖepÎEí¶Â[Ÿ$éÖÖ–Ût¯_¿^—go 7ÖšfóÈÛeÝ*©ñ­–úý>!'èz&ª?:|T¥iÚï÷Ib±XPTÓÈD)¬C°µ®YТY×áææfå”òÀ7B(‘ÐÄ¿,sN(%¬ÕçgW³YÆ9ﺋyV–EÒ8b¬‰º®ÛÝÎñña§Ó!(#KqŠ¢Hp%¥´Ì(Å­1F;ã1$IÂ@M§Óííí_ýêC¿ÿýïonnÒ4%ÿ ‡t»]ÚppÎIj…^ªÃûý¾sîìììþþ¾éÐHh”ÜY–9çâ8ît:Ô&IBæÔŽF£Åbq/„8::*Š‚~‘i9ç’¨M .äÀƒsΰ֚º ÈbkÐÛßÝÛÛÛ;>ÜÝØolŒ¢Hú`Cp @Dh㧬œŒºõê#Z¯¬Ùªÿ *{##~j_רž v·wŽöÆãñpÐB£µ÷–s ]6ïÂ#_ògÍÄ×>ÏZ‹„¨Ð~Ì)áG ý|ôó³×F`ÎÚœ c ¼R¹©†û‡{4£qV·Ú”+cèEQÜÞÞŸŸŸO&“2ÇežÏç˪Öi+vÖ]ß\Ò\ø ³Ð;ç›ð{jØÀ›µ^Eº*Ș°ÈT¿5³{:OÞûÁ`@8 *‡‘Ê!ªÇ¼÷‘ ZWlk{sww·ÝNË2GdëUh#¹aŒ1uN[©ÙlF`_Îy¯72 ÁeÙ‚|H8O´Öe] 烾2úÛwoïïïµ]å[BúV•&òžµVÊÈZo‰¸Y–Uáààà¿øEUUüã﫪ê÷ûZëÙtN ô²t:š+.—Ë“““º®onnhS×ð•š%IÒx“.¬~¿/¥¼¾¾®ªŠDøæ–eÉ„ÝÜÜpÎé?==¥¤YÐÎÝš:„À‘q`>8g ýD»³µ¹¿¿Oñ¶µµÕJS@n¨VcDbl¹g=}ü1oœõÖŽ*§§yÏlÎPÎOé??9ê>Ú×ùj³ë©OÅÒ9< À1ã¬ó†1’– i¢ šÁ‘÷i_À9‡ñhg{ëÅñQQoþúöö~úöÝû›ûÒ[g ,´Z­GÝíºvâ÷_X—}JJ¢†b£a¸4Þâ”—H2€ ŇK𦅨:<޲lÑn·÷÷†£ÁùùùÅű`h @IÒ EQ@p»»Û£Ñ(MÓ<_"2úùe¡…ài+ô!¸ª.ƒgI’Ô‹,MSë4-ŽË2§Ê­×î,—9I”šÔhÇ9$…= u]WU‘Dñ`Øÿåÿx}sy~~^–µܹ@‹‡F‡¯( Š âŒÞÝÝÑ㜛L&ô•$þG—WƒŒ%ö-ÙHËŒ– ༸¸ >m0[ÿêꪮkÆsN+ï½1Nkë½O“ˆ(ðÎicŠSõ IDATjÎyÐ [ÛÃÃÃ×Ç'ý~?V‘RŠ8çù5q¡ÀŸS%I«³F®ƒ j$R@²ðÞ³¢¨œ»»¾ºY.ó$Ióõe 1}¼÷ƒ^÷óÏ?wÎ]__´—F‚Öe`Ðu»í¢¨²e©ß;Øït:÷÷·‹å2/ŠV;Qq¤­éµ;´Ýªª Q ¢R\Aææ‘ιª*’4>:8ÜØ½}û–'ÍØÜÜbŒ]^žÓB¢ßïEAS(J;$ÍD%jðH´‚ Æ1!Š7©Q€J«Õ¢™61$zqqAÒëô-N'xäDOŸ\T½~¼1ÚÛÛǯ^÷z½v» Œi­uU<$x~ d©GiÓû¬Â³Ⱡ•¸5OÉŽñÇäÏûü<¦Ï³}6Áö}DXU•B(.x·`™`l--­Â€#˜ZsΓ8€àáa/G‡»íN< Žóoߟûîôêæn±È¼•Í ¶ÙeS›´î´ÒìOHôƒþJ X$9å4êßô½µvkkk{{;ÏsjŽ„Ë¨i¼u¡®l%Î…ï¾{'%÷ÞG*†ôÔ)˜z¼n·›$ Í$â8Žã˜y^*µÚ"R’DÄápøâÕgyžßÝÝÐ|ÂØš”Kîïïã8ív»T´#"rÑ”ÐRðZ—BˆÍÍÍ^¯³\.ÏÎ.¼÷I’t»ÝV«•e‹ÛÛÛn·Ûëõ¨½ÜÜܤÅ`Ô¾¸¸˜Ïç Gk= º@'›Ú¹futtDŠ2TOöûý³³3ê£éežçív›^Î底1]yB’$ÙØØ8>>|ñâÅîîv»Ý–ȃ÷–°4Ÿ 43§/—R r:BÆð‘æó9íYsÃ99yñòxgskÇ Ié¶«I2€dÁí½Æ–±! ±²y”<(yßñ F¸+G +†”ÜZÿF‡r *¯ÆöŒ„•cà |ÚZm á‡A4X®Û×­€h?ޏÖ×}œõ1$ÛzÂ}4fl€Íg›lF…!z½Þx<îŸ_ÜßOg³EYéª46°à5NÆ¢àœI¶‚VçBš¦ù¡Ú©I’ÍPq…Ê{H›Û[»Ä°Ì²LŠHhŒ1YU¤iÚëtªÀŠ¢H¢xkkkggçâò-U8u]£ +ù£“$1¶,Ë2Še»ÕÕÚÕ•™ÏçTÑÑ /&!ï½h-ÁÙ|]›<ϧÓéd2SJ)õûý²¬ëÚ{0ÏsJ¹Íè?MÓºÊ1½^ïàà`4]___\\ÐY^dkk‹DÚ///•RƒÁ€^šˆÒÓ#0 ‰ Ѭe4žž’¤,) Íf³ÛÛ[BWUŘ㘖oJ)¥âø€D÷!¨y±ä„D Þy)1 666þåW¿o ƒ~’D*Bï-9'#òg-;VELJ–þÇ?vPä r-§…õè#ÛÆg^?‡ùŠõ,öìYá¤G…u$×£aã:™!@S:R·@ê‹~ïîöþnr¿\æóe™çe–eˬr^2Æ8r š›‡`9*ô7ªUMͽ1[///¯²,›Nçι8J©²Ö %€±"Ë‹¢h'é«Ï?ë´ÚwwwóEFIBÐÆ@Y¬z˪ªªê\¾½½Ýnu¯¯ïŒ™Ê" •µD¥-™ÖÕ’rp‹EVUo©ut®–"Ž¢ˆ1tΕ%Ù§8êm„@ºe¼¸½|ùR)õÝwßÅq|rrryyyqqÑétö÷÷…dö@Ã[BZv:šUÒ+C+BK‡Ã­­­«««ÉdBün‚_R¯K{6ôºy6[ä¦ÖÞ{o<ãL i¶£÷ÞÓ”LcJGF©h0¾Ž:öT®ïç±Z…ߣ1ëÓÀ{ºžÿ˜ƒÝUOÇÖ¦ !Z­Ö>ßhDzßI—‹|:Ÿ-ËùR.òrV;ëXp@r-ˆ #!„1u“fé–mT=Ö ñæByÿî‚1ƹPqÜÀy‰yijnåBXdËëÛ›¢,QÈnÚ²ÖÚeNªÀ¹¨ª:I“ýýñưÈ+BíÐJš" £E- («äù²ªªl™[kûý~§Ý}ô BˆÁ`ÀØtFÈPAƘ ¢_ÿú×­V뫯¾Z,Ib¬µJÅ”‹hˆß(êmnn’9Mè½ >ñx<úä“[[[V"¥„À¼·1yåùÕ2€k<ø>(‹B?h|„GJ'OÏòߨ×= ªµ‰ÿ÷?ø€ºÄæ?öõÓúaÎÁ÷‘5=§[öÔÙùQŒ=-D› Z¯`׳bSŒ­ó-¢¤ßEƘV,ŠÀìŽ.9ÓuY×Þ !ù LII)¥1¯|V_°ÙÅ!HPkê%@N³Í–J·6·²"ŸL&´¤( ±+ÍU5k´sUJNz···W׳é"ŠRŽœ‰–È «ªêððpss3IZËå’s)ed´sмr6D±LÓÔ{_"ãœKÉi­OJMˆØïw÷÷÷ó<ýúµÖšºGÒ;xûö-c~ww7˲ÛÛÛ<Ïûý>aßhÕNù¶Ù‹´ÛíÛÛûFãAŸsntåœã eUëS Š1€LÍ üÈ2òñ§Â~,k~¬g[7Ný ýSûºf¿>Mù˜æÑÓ•üz&yV?³aã>ŽOÿ½Ái#€s%B1Á‚ˆC¨t=è«à¬7öv’[mÐH zpÒök€Bë«^ÛxÔ}0Œ1ÆØ9»;;“ét>Ÿu%”<΃k­·N †Œ1ï82%•^Uåååål¦j]Ò²Æâƒ_Ô:IDJ9ö9ç77W‹EÆëuóù‚ž¶÷Ô²­ª 9Ï`7u¼d÷Í7ßmll‘}‡µ>Ž½Öº×ÜÝ]5æÃ¤€@é,мj±XZ³sîèèh:à‹èªóù¼ßïïìì|óÍ7´q‰ã˜ãçBˆ˜¨*­µÁ !:ÝÖööøäÅñ«WŸìííp.Ñ{æ­õa@ç­7^ ôÞsDÆÀ{¿š0>+ÄúP[®Ÿ±ððX?0^[¾?Ÿô¾ïž>ÿ«ÂlpëÜMwÀGŠ×§× ÙšO="¬o6>4Zٙpι±Ö«Bœ¶[¼ñ®2ºÌ²A¯mœ¯´»¹ŸY£ã4‰be ÛÀލ ¡Ñhó˜^ ý1ÆÑ °Qˆˆã¸×ëìP%&¥L9æeáò\)•¦ÖxïCpˆØëv‡ÃáùÍLëÚÚÚ{DZ5+[%ý²Äè#b¸”r2™(]__—e&Ýn·­µ‘"²ÖÒÆt1Ï|М¯´t8)Yk;ÎÁÁ÷þâ⢪ªëëkZ‹‘‘Qþh=P–%ᶨ‹KÓ”ÏM§×XaÑ E]ßæææx<~óæÍýý= j¦‡¶vÀa um½÷R(Îy%±ª[­ÞÞÞÎgŸ¿|ñâ¨?èkJ¥RoÉÙKΑ3œ1 "§Gs»=Ë÷/t¤ïzÜzøáôõ7¿§»µ•šNÌj%Ð@£àq®ûÙaO[»çeÉðõë{M¿ûa9þ@¶§Ãzô6KÏ,cšdku‘yoYB¢s\Ñm÷’(å DWì"ÅpC4p²º¾^æ%Sç\ p¶65ó …Ä Œ֖Ͳ»Ÿzï¹ TC‰1LâÎáÁ‹Ò˜7ß¼¡a=¤qR×u0¶Ôµ@nƒWˆ8èt^J.®/3VCð¼ò,éÄRŠÊhDZU¥±eYr.»Ý®®mY–·wY[†1—‚W¦È,3ª•j­­·œs åUÄ„'óôãã'''_ýõÝÝ]·ÛE|mª^¯'ŸN§¾v‹‹9G¤b’Ò×ÖÖMPàá-»ººÙÜÞ úü²®ëËÛ clko¿ªª›é=ÎÑBèK[&í„s¡µu*ë’N×¹À³µ”2X]û¬ÝmõûêåþçŸ~þâèd3í¨4‰d¾ b´¢òrRy+"…*b¡£Ó¥ €iï…\¢6†Y‡B  kCÐà J'Q×—"§mý0¢“ðÐ_q¶ê`+n ¡Tcì‡:Þ” Þþ„9îA„Õ¯g Î9­²èÁ1’‚?}šòH7åYÈÕ#xäz¸®óÜÖ÷Ö§pësÑgÄVõýï圓IZY/9Î9 ¼ÚpèãÉ´ÌóLvúà€œæ Ÿýì<¶á¤7—+u†Ëåòêêª(Š¢(š¹+Meq¹X¦i*wÖŽÆÃ‡‡ÌÛ·ïßi­£HJ&j­‹¢ˆ“„±`ŒY–ež—ÖÚ^¯w|ü‚1öîí) xeF»²F’ÀJJƘ®k"Œú`‹ªlµZŸ~úi»Ý~óæÍùù9ÜÝÝmnnJ)ïïïß¿Ÿ$ ‘•R’#!¼®E/;-ýc›››iÚžÎgä > nnyžEQÕñå˜ìÎïœCX•Æ8.XðÎZã…ä[Û›¿ü‡/^½zu´s·r£"ЦrÖw’~¶¬ïfy "7`×ó"Øb»ß÷ZÌ—qC°u‘;o•RJpï )‹"à2ÂXykz’„äÒXQYfWŽÜ+åÿ€¢é˜«;¯¬Ãß ã=X<*)öŸÈuÏê=‰ºuÅõgcæQrÇï©|oæùÄ›þnXÍw”Ñš±Ž 9Ã0D¸»:/‚fLp!sÞX«!½jM–[ÏÃë”yŸ¼¹¹¡•Àº©}c·ÓÒZ3‰.k}y~6™L§I+ev1­´–RGS×à´bcccgg§ÓéÝßß“žßd>kô9z(=C¥ ÁÍU$¼µUU‘¶RÇ´'@éÝÝ]¿ßoúdj‰£(2uE :)%ý:Q¾?™N9çqœ®´'‚µÖëœ6ežëºöÖ2é @DšÑ0ãœóÖJ)ã–*–÷Î¥Ôþþö«Ï>ýì³O÷öv:N,ÒÀ¬u5éçß¿;[„ý#ÕÞMæùËWóéíg'{Ÿ}ò¢ëÄB»«v×é’yãœç$§"È3ÏÈ1 Á€AË9÷Þik|Ž+V'mYëócaÀ|Î9‚N­g [ÇG>µƒ\¿‘× ==EÕ?ÈÁäûˆŸÚqâ“^îYèÇÂïcr.#bÀãj›á'ànI”ˆˆ `pô \8Ÿ{p@q”|X±$qíÚtëSÓFŒ°¿¦X³£Äˆ, Î9!y–eËùb¹\ª(ÖÚ[ç„Ä8Ž=„§b1ŽÓ/^t:·oß___'µ!Ñ\“:±ÆÔA×"&QœKSë~¿trØjµ&“ UŒDu% 2”ê… ž›››g§$ò“$I¯×‹¢ˆükÓ4ÕÆL§S!ò­MkíÕÍ1 ›Ú»Ð8çêr…ž¥’ddYY¹½9:99ùôÕËããÃÑx(%¡,r'ĉbT4ŠøôâúþÇÓ½ìcšåæ_}û?ÿíÀìh{ïS_…I¡ÇwÓ0%@ €¬$§Bæl®™„ÕÎJ)#ç<C&¤jÞÖ€€À¸à\`Ž1ÑØôø±Õ†ž§k“qâ£-4EÝ£”°VÙýX|ÌOóôY_ >b1=ͯ‹¯4gúQQ÷,ñ‰ÆO Äi¶MÉTÊQ’-}S‚o@,1ÿî¶,M]•BÎE¬´s†å­ìˇ6°Vm£w!c~kcLøf[kιŠçœGŸU™t2ŠTÊbckdÈ9·Ö ^Ãy‘"ªªªÛífYF€ì` XY0Ф6U]×ãáàÕ«W2R¯_¿¦uöb±˜ÏçÍ·PÃL³Gb!Pt‘õ·iš.‹ÛÛÛn§³±±!„˜Ï—¤PD*ëÌÈ|ÈóÁA ÅiÞjcBGqÜzqx¸½½µ¿¿ßëu‚-'7çQ¤¢(â²T«[UµIeý¾zóîj²3t³¼NZÃ㓸ÕV’ìAÒuu{6¹7^Ì––3ßIZ‘¾ãq媌…àX`žKƒˆ(°àÁu*o¸ÀCŽ1À8ŽhC ú*ÀJ’yÝ]ä©þEÝÓÒo=¦žÎíŸ ÿ¾\÷´Ò}4'}¶Â| ¼zÄ“ôY²ŸüA³u^PIÚ CãIÛ8÷^øìíµno—÷·…­½J»nh;L¡U›”òè`O«*8W/™T<©ë:ISc­µ&Ž#ÀཇÀXX%óós­5¢¨®Œ”’3F)nMב¸LB@ŽEQX­÷OŽŽcß}÷ѽkEzq´ÖƒÁ@kM0ú¬µV ôû}â˜^__çyNÂA÷wwöAó‚”°©Oæ+Ú!e6Öð6<瀜qŽiÚÝØïìl ½AJ à²X„C­„”RÄ%³–ù:–vÓ»ÉâÛÓKÕé篯¯Ûí¼Ýë~þê"MSÆØwç7ß~÷ÝÎÆø“G‘€ªÔ,ØvÒÊ\͹TB(Á92|x1-#œàlp€cèÁ·â” T‚qV_ƒ¯ ræ,ÐdÂ.à3„ñµëþ9õµ¬³¾ßzÈ“ðŸÐ×=µ†löuÍóXOeOÔúÞó©´ÞóÈ•”—È?ŒŒÖ[,X@PiÜgë "C„ÀÜ®L•Áùù,XkG.¸¤oÓ‹6h«ÒXœæéë#Ÿ†Žˆý~¿Ûí¦qtyyY™RÊzæœ/+Å).c孥̓ÆI¿Û±ÖN—S*YCIÑH¦ßïÏ–‹†vD‰ô¡I)¹w6„°±1ÚßßÁ}ûí·W7·¤ÄžeY«ÕjZÁÑh4 Èæj±XDQ4 ƒÁé»·¤¢GI•d-iŒY”e\|9çEUU’ ðÖçHÂMQ$1è(’½~wooçå'G»»ÛR‰º.}Q“›G>xgƒà‡²ÊÀÚåœI‘"/Î/nîçYk¼Á›²Èl-˜®ÍâØJ׳ëÉb2Üì³4f‘òÎh]Y.dA @ŽLã+¦¦ ¬óÞ31"¯JeQOÆýîö¨3h§ ‘9ÇX Þ3&WǘÁúø€vEÏiÈ>Þέ×kO¡T „'.Ê'Óç ó“¯Ù ÕÔår‘UÆ…(–qœVeÖ<ÃÆˆÂïQ'C/(å½&Dã8ÞÞÞF§ß}}}}Í¥’2*kãœ'Ö¦võCˆÖÈX¿ßÝÛÙÕZϲÙ|¾ žõÊÿ nõz½¬,(>i€I"vŒ1mkïƒ1fkkëÓ—'EQ|ùúëårÙîö²,#ö-AL„§§§´¶ÞÞÞ&—b—:çHMh8zïïï凜óù<Ž"¾ú#µ5EQpEQ–qÄ€œp0"Æ‘:Úß{ñâŧ¯NF£A Ƽ1u%ƒ |®çÎÎ!–*0ÞXíµb9_«E¸¼¼ªj{¨Ëœ9[“-î{½ÞhsK)|ö‹“݃ñææ¦z±\Œ6ÆL†óëëÍþÀhctŒaÞ)%¹âƒ@ä.ëƒ u¿,ÏÏoÿüæë“ƒÝÿå³#¾7ìÇ xçlñjá €dàáopeÖÿûû'ž/âþSf˜¸DdlÎhÀȈx@ë¶;»"J|ØŒ1&±ÎÀq]NðÙ5úzf§‘Æz–[¡™ƒ¥,è‚H£®ïùaé©gI~´—Ä’}÷ö&«´g­¢![ ]ð®vXˆ¢X0Á2®seY6ç¾ñçôpšµ¼ÿþúúz±X j²¬(3©˜±µµ¡›ŽB…©ñàhkk+Ï—×w7.ÈÁhk>ŸÏ—e·Û„ ïÎN'dŒ !$*rÎé¼BH ÆÚ½­Í££ÃûÛ;òëtzÖ…V«S׿ðððöö¶®ë››»v»2Ò¶wVF ¯ëÜb>áövŠ¢¨î³wgß1†\ ã|”´=«1 ZW3".!„P×UðF(.8cÌôñ'/N^¼xñÿxBF àƒµÖÚÀF»Ûí6rzï œ\œG0x*¾¾™\__µºÂ²¥3J œåËEU—×¶ ûû‡>¸ãÝýÛûI𦽍[Þ,u^¦¸§Ó"Iëyáú~&„ØÛÛˆãh¾\þå/ɲìåË—W‹ù¿}ù—üúl»ßµA•!|ÈcDåŠÊ¬ôȲŽsœäðª `µf Ú§Ñz¤Ta­_Oh¤oBpÁrÎE,øà+` ¯ôð~"ìÑ.nýV hy4rýEw(´–|ño¨[¯:Iâ>Zf<ü Øéä(¥,¸à ìîlÕÆŸ]Î m¥Æiž0 ÷žj³=¥;Ñ{Ðô±ˆôÆXša(%ʲ,Ë€moo·Ûíù|~}}9ŸÏ[í>ÕUU-—KÒ̵Ö"WàH@T}°N›ªþâ‹/677ÿÿöÞtG’#IUµÃϸ2"#oI2ÉêêLïnûc~-0¯ÐO¶û û»Ø'˜îAÏ`€éîêªbW³H&™™qº»¹é!²?ÔÌÂÜÌÜ#’ä ,…B2ÂÃÃÍLEUŽïx÷îÝwß} ‰¬µû‡GíÖküæÍÍÍÉ£§Ëåòêêª,‹Ô¨£££Õrquuõão™¡,RD˜!af-Ê< ‘F‰”FÅÎ9@s||òñ'Ï>~ñüñãÓ½½‘[øÊC'}0R¢‚Øîš!®1ˆ„ÒûPZÏJi€™J_zïAb¾£•ÒñZN?zaËòúúR)å•_\-|Q¢ˆ²6ö`E$òñ/..þð‡?|öòÓ«ËËøaµZ?<9yöô©V*åptr|tt€F­ýRƒ×„塀ú”Ÿ6B¸?Çê/WEŠˆB§Y8vwd˜mé…ÖŸf ¶û›.Kg¨Pû†u9óí3¶?Ä´^V·þF++e¹Z*„<×Ý‘uáÍùâ¦X(Êâ,GE!DfÇÙƒ°lÒàæ&´Un½÷±qÛ”šÎ9Û°Ñ>Á{_–n<žÆÙEìÄ55¶ Z©"bÝZ˜‰èÁƒQåáõë×Qv2jœ=yòäû￈­ñxüäÉ“ø‚~|MD³ÙLkre‚­‹ µ6zDDDJZÿ* IDAT)FF µÚYk%Óðèàð£ç/>ûüåGÏÏ÷¦DœEJëûƒˆŠˆTÜ7uÈ„» âÅœw޽óAØÂ ®—8 a`_óÄ F‘ÙÑQ6Ê5©èIâmmØ:kË$1Þ{kKÖZ%‰aæó7gþ×ÿùoŠ¢˜ÏçZp2™=úË“l<ªô¿Ë…r‚â}(!ØQ·Í”¼³ÌúNZmæJƒµú¹î"ƒ¶@ý:­ƒ™Ü¶+t`uDKöÖœ¥ýã´­_áäV‰)Ò/”RÓéØήˆ×«r6Ëž=;¦„Âëw^8xa@BT"ØŠ°Óè¸ÄsìXJeyåÇ$Zc2›OŠ¢¸Y\E@b2çÜõò:˲½½½¨9sׂ ZQtñÞç•pÿA4)Šâääd6›E¯Ÿo¾ùFD?~³úÈOÓtYÚ$IÆãqQ,ß¾}‰6Æd.øœâ°Áý¯€: i4JííÍö÷÷?ùâôñãÇÏ_<=˜ïA`\É T}ª6#®¶¡xÎG[¼ÅbQEYZï„léÖέzÄŠ0Ž!Ì`ËõòæúÇ×ß=ûø£Ñh‚[¯×ÌÎ>|xe#88öYj´ÖïßíïÍö÷f{óil/i­GyjF“˜} $D9±#_¢8à]=‹AfÌ /tÇ8úž4Ÿ»ÏºmZ;šæò`p¶åšßŠ“Ê¾ÄR?ÚÛÍM¡¾¡fda[–p<£¢À¹ÏÌI2×Z+ß¿¹)ØGBóCBÚ½ÿu>óS­uYFô3Õ8Ó‡.—ËÅâÚZ›&9‘rÎ-—«(Bñ_µ&‹ˆ6*Â+Ùû$I¦Óñxœ_\\DnkT˜m@p׋åt:F———‘Ÿ~úéïþø‡ËË oËD“$ÑJ#/DÜÌ—;I´ !°“ÑÁ|ïñãÇŸ|úÑ“GòKl ¡;FbNLN<uÒã»1‡ÞTõíEx *û¾èç~ËqÛÁØ Ñ¡5Á³%6v;gl'æÛq9,íÍ%þTC–&aœvTH¥ãù$UON«‹óÅ¥·Â@ ^DD|£kߟÞtôI ²Æ-Òˆ¢<ûx”_\¼°F¸ºº¡Éx6™L¢É[LDc³´‰ö¡,ËxàìÍæ‘FÕ—ñÍ›7‡‡‡‡‡‡þû×ÖÚׯ_@´È9??ýúu¼]ÖZ­“ÉdB`ÆõºÌF•-R%Å]–@`2Ο>>}þüñógOONN&“ÑMy¡°²=RHJ)d !h“4šqÍCÑZŽ(aŒåt„é)M‹‹+A0 8q d@+RHÂ@È ƒ-¯¯.ÎÞüpòøI:›,Eìd:-׫ÅÍõõÕEš¦Î®]­Æ©%1K÷Ê¢òšdѨ ’ a/Þ‰8ŸaÚ I?³ëïËšè/€»e£U‡IâÜa:uGê­aô`¦½¸‰X:[KçʧˆM¤Ü£’$¤éx”­¼uÂe gæñ£(T×E"±7ë¼Ø”tsšõ³óþ5Æ¥CK >}úÔõ§¯ÿXEš¥RZ܈j<¦È^‹¬íˆ2«°ÎÅ(=òÔäy®Æ7˜•ÃÃÃ/^D¹¡³³³hó] ¢ëXQ‹ÅBhMp w<Î'F§V]´¢b œ’ýýù8?{þäóÏ_~üâùáá÷Þ÷ÝŸÏÏßÇÓ<Ï×kϳ, A®®nLøyy3ÆÈ eÑÉdØ/—Ë›«ËÈXͲìúú:šÑFLÜjµ:9ÍÆãñÕÕUH_­V‘§gÙc‚ã|–§1ú‹ÕhFˆ¢*­(MÍáÑþ‹/¾üì‹ÓÓÓã£CÄàìÚ¹ÀZO9BHÀ±¿F\+U¥¥ ¡™Ùcœ³{û¼ðÞ!$̈âÊ¥/‹À72ˆ €„o3ºXF•½½ Ígsï*ôyÔ×Fóùœ™Ç“I“ñzïKkó<7I„C‰â(Bhí”#û¬ô¼æ¸kK’p3N-Z2G@ ¤õÀ<›._3ˆ€²ö#©EP┼~1!*RžÓî‹´wェCÍ^QC)ó„Š“¢RCI–NgjU”¥+½£GSsyþnš"ߨ@Š)3™H “¬×ë,Ë „fOÙ€ÈÔ]{k×Y–y¬µY:Zܬþñ¿ÿ³µ6Mhq³Ì²‘ÑéÚ—F'Y–¬V«T™õ¢ô¥K´‘4 Ö‘1„hËåáÁAžg‰†ËË ;ÂOB—×77ËÕåõÍx<>}üäÍ›7ï®ÞÂe±^ªHòŒ¨¼g$4¤RP”+ mtªN¦éÑÑዞ¼zõù‹/²¨Àën öcPhP%(@¢l¸ú °/Õ46ÍÌŠR£‘™‰8IŒ÷I°ãÙ^F«¥„%ê³Ü]™o¿ÿquýžŽŽŽŒ-m’ML’­­KÆdÝòüýûç:cî(s—‹…åýùü‹Šbå9¨ýÑ:ÀüèˆÅ+2Q¬ºÊ8xǘd @•–ÜÚ€OBv‰Bíá,¾ÖøÂÁØkÔCåžA2Z‹‰Öõ.æ>Tq½–Ó©ôí€nñ–‡NâÑ'õĨzQ¨†PÝ–DÒ½VJ±ø$ÕÑ (ŠñxiEQÄÁ7QRED$G›«(ð ¬H­4ã-²'ÑÆ– "JcÈDÈub0ÏÔ_þö¯Ÿ={òò厧'iª"°„àv‘Ñma{÷ì×ö݇ï ßvöâ³®fÊ9ŠÉ¡€0ã|>#„4ùî»ï×—Ê¥T’¢ wAH§ÑY„™Ë²ø»¿û»ÕõÕƒÿð¢ñòý‡>ÿòó½Ã=g Á!$ „|…äÂÀ,`‰<) ì*&v‡¼sü}O›žÁñò¶ÀÛ^×ì˜?ìp?ÙF“:̸méЃ³P½Öeóp3õ‘ÒáÀ½mŒF¥”åm¤þ²,[Û2ËÂt<:?_/–×ÎêlœhMŠtíVÁÍQ ›èíݤ™—4‡^uâ¡BT\æœS‹ÍyïÓ4‘år9ß›žžž¦izqñ~µZ§i@Ƥ——×”¦¹1i4Ù[­V‚\qD¤¨4„ƒ¸1²”j¼6:<<üâ³Ï?ùä“Ï^>ͲÌ‚[-–M«©¢)ªæ¢Zê®Í‰;ˆ”€; žZ¸.>£ ÂÚÀx’=NŽÊëß.o®Þ1?8Æl4³¶$È|•X¹rU¾;;KµšÍ&(ü§¯¿þûÿôŸ><~õ›WZkMà@iÀB`ð "ŒWÈÁ¢ 6H© ”2ÌÔñéŒ ¹~7~k,ô“¸ŸÐMikQnjœÐ£­aBz‹u{gƒuÌ?O;ñ#"€ŠM¥¹›i+¢”ʲ<ÏÆÞ:k­BÄ<Ó£D¯…X ^H·ô¡ÛÑÞè¾t¸äñÆ s¾~12 èò ¡âé‘„€™¹´)8<<ÜߟGâ(ûã½ðàAœ¼GSÈØ`ˆDÕ¨Lã½Gˆ£NAD­ªÚ4¡§‰>==ùä£?}ùÉ‹§Ï÷=3;g[­©ñ²¤zRÒŽºÛ·®ÅŽàxÿAǪ^k­”6&Eôè´$ ªø‡Çû„òoßþPÜ\“Éh4gj, ÉR“šäÜ^fYr0›fIe‘–Ë‚“ÿz~=÷ñFÞ$"ÈêaB)ÝEÚïÓA–t¯£ôÚö^¸}ñæÞžŒu®*¶+:)RJY¼Ô}]BF)¥ R0uÖ†,@–¯'ã|2•ëPØ2j=T$·¨ÍÜšì±™7“’J¼“9òAsÑ ªó‹H<{™™Å“ãÉøôôt<ÎÏÎÎÞ¿?[.—³ÙA´Å AÞ¾}看6ˆÜ`Þž¾1Tˆº*¤PiÉóôðð`ÿ`þ›W¿}ñÑóOŸ(…ËÅåÍõE’èÉ8±Öz»òuu;Ä Õ9»XtúÈ­G¹#×7,µ$DDA¸½x”BÑ(òÌ,ý*3tr|¸.Ý›³óåÍÕh4Rã™J’45 ðìì ‹.Åzyss“$É|6IŒA”óö} ¾„àŒwʯ9„ñDå©ÊÖÄ-»Áƒ@Ù†¶ SÃr¥Âº™sõÄ0»½¨_ ÖXÔõŒ Â)ϺmJµí¨ë\CLÚ˜ãªzÂXGôpµ¸[‡aô+ϲŒH{}ÞÔt:%¢EðãÕZJºL—Hˆ(ÍGhCä¶zïW«Ut“Šº&m R<â´Ö«e‰ ”eùlºwuuål@Pi¦8pŽˆDØù2F 3ÏçóÇc~øá‡hÂ윋·õz%ƒâûC-Ì µ´x:ç€R*IM>2óùäé³Ç_}õ꣞œ*@çÊ›ÅB‘L&#^­išÆeŒŠ’>!l”7|{¾íjÄø'"h°)оÖÙx°Ó ³ .G 4h`u#³,™NFç—×"€×ΙTc¢ƒ¬ˆppã,/D-—ËÀ.zÓ ÷.IÓ)*Ͼ´^œÓÀ™Ñi>S )Y'†úà×>€‚Tƒ!Àr7"¬OÈîɵ»€ý&à0ÄìÃa,ÜH¸FnEÀ‘ ™7í‡~¾Ñ€ÓÚ +̬´âj¯@ ¤6¶xÐu¶ÿïª×ÈCs±϶DB`”N(3ZåO<Á*„¢<9XYýøvÅМ½ATi2JL>›aYËÕâA„EA!¨Ý<´Q^ lÏÞýÈÌYnBðiðÖGÄI•ËÕêúàÁÑ£GO&“Éwß}÷úû§Ói–‚¦òjy­µFP ÀŽ…Cšfëˆ=@ñЉGÄ$O´¶ÆàááüåË—_~ùå³gÏ"‹ÝeŒ†QëÀ,h$fa Qb%jÐWw’(Že½ˆÔ|n«¤X?bÁ ³kE¨k3’Xö¥&Ð ˆÙ±à ¨ÇYjËb½Z)Î/¯™¼ÎÇ)h39Ú¿Y-amɺÙþ<ÌLñýYX/33Ùä\ÑÁȘÒ&ö&˜•µ«`íĘY6i*­I-ÅA‚Daïd-(T­Žžt 0²½\è̇ªGc£¾ÕÖ2 7ŽÄ*3Bú0ÿºþf@DHk5ÏngûÙž.t¤&ú5Cĸô`"«­{MЬ•æ‚›Pû5ZëÙlïø¸´eBxôèdíÞ®Înˆò,Ë8RÔ´B”ué£{p%œ^†hBRa¯jPNL“T“ïAÀ1³pÐZFû=rέ×kf¾¾¾.ŠÒZ;žŽc£_•Q!».ƒÖiJðJé|¨8em|f'tÛhÞÈW" ,ÀyÎe&t>¥IE.²Ñx4P±Z—.ÖI’(¢‚fQˆ¼¶ éÉÄä&Iµ@Çìƒ'Mu?‰êh>·ÖwÛ ˜}ã~e#ÏìémÂÏQph¡öí[ÜAéšÛYh#ßКtm‡‚0ˆ„lÇmÓßoð8Ñ:«±ìŠN:J)$s|||A$*Ñ+çVÞ_\Zk!å=À$”eRX-}Tq*±!ÙIúÛà¸Õj‘ç©1éº ¥]gYrpp0ŽË²|óæ,擱ÅBD£Ñh½¶‰Nââð”` !Œ§"¶-B˜í^¾üä«/>ÿê7¯¢·"F[ãÊx]|·0ßÿØ€ÅÞ Œê£~ÛAÕAi´_Óÿw@@”$ìœÓÂY#@+<“$;»<_[Ÿ¦éd2 7Ë…µVë|”åJ) %(åCžçY–éèP.Á#Kàä¶.­¶šj‹oÖcoÚÑi`öi–ýÔ±gurkøó³ÐÏ2ø urzÖLs÷ÛµQ¿¾£&"ºÅl@gí'ÚþGŒç¦m£u­sQûÄùbeWŽç…÷ï®Þ/.ƒV™1iô‹,Š"ÇbÓ4¿¹¹‰.9‰l¬u›±Jû!y_˜€ÈàC9<8ÇÞÛ³³³èبµVd´ÖDÊZ›¨Œª‡s"(`ŒÇ$¯ Ÿ|úÙóÏ>}öÑÇÏ?>ÖÚÅõU@E!„²X¥Y2Ø[«¢›û)ý½r¢5¸öuMµÖqÌÖ^*!òÕ»LHç90Õ›keR#„!ˆI2Pts³,K§³4KGÂP¥s!æêF)4ÊD'™2 I8aP€„¢ 8l¬Ì!˜e]thuÛŽŠ­a¶¹ ŸUzÖ!ÜZ‹Ü®r ÒÚóÚÏu¦¡½Gvž__bÇóŽM…5Òfy·§.ÛX¹›nŒóÙl°@DïmÀÁ2Cb(‚ZööŽæoß\EQó‰0«=%·µ‹FãÔÚ"„0™ŒNNN&“Éååå?þ¸vëøëDÄ!ÞXBÈÒ Y$ÉsZ1¸¶þÙ³'Ÿ½üø³Ï_¼üäÙ|BY®ëÕm¶ÜdìJ)lé´ûÌ¡=[»…Õ"mc÷íå5ø+ýoòímÇvN+!`-øWe~‰f$•$™"½Z­œ÷²$ËTQ–‘çnŒÒQ# „ÌhÞ±x!Œ}Ûã·–3Ah¾ÃmE0"ŒZëÛ%ïI Â{ Ÿ"«µùwà@¸NÙäKÏ3¶ß‡í¤” ~²³ÇÈæä`ÃÕ¡•µùGÁ•øæJ‘wåb± ñxúçïÏøáLXïíMVKk­s–•Rótòðáן}dËz÷î]”ÜŠg]üs±ÏÔßΙ-³GFùååù›7gËåuŒ¥µv¬µJ™,ËØYPH|.1êàpÿääÁ£G>ÿâå§Ÿ~<ŸŽ½-Wëõ*„0ï5°·%%Æ$I¾¶®§ ÄVSul{R» ›öáÖ_dM÷¸£ÓAD®Ýk­M*B7‰H€@+Pej”åc µ,J"&ù(ŸcY:DŒBI€ÀY®è‚ €lPKÀf tw)¾v¡Û ›þ©¾;_»SVï':$·qOX+þmƒÆ[™¹_ÓÞ:<·†ÝÓždtú(öiƒnKñ¡‚b½ˆ™7oßýë×ß¾ýñŠp«#ôN¬µúÓŸVÅõåå2ÎîÚ…J¤&t2Jê‹él~||<™Œ//®^¿~½^Û<Ï£À>4¿8µ‰xцf“ƒ§ÏþùËçOŸeæ÷o¯”Ñ@IÀ$ׯÉukÎ%à]hƒ“Iº?=xùÙ§õW¿}ñÑ“étŒÄ6\yoµ¤ Q§I}\€ÖŠ”Šr”ñ&Ä>mÓèªn l¸X“RuAÂŒ" ¦ÏƒZlæP¿Ol‘(& lƒca MH3—ÎEy¤Š¢†¨Qsé¬f&+ŠKH0µ˜4˜ñ(›RÉÅ套À®mqyiƒåQ£Ô¦ ˆë‘¢>֚Ŷ Uù(båç×–Ô ³†õF¿X@½Ù½«¯Zúõþ8zc“‚¦Äà;kEýÓêH‚¢7iû$ìgɃèè)Ov¶“&ÇëÌÜû-¦¶TsYYuËåÍÍeaKþÓŸ¾ýý¿^%#@›¥( ìFU3‚Q‚ˆH(,ƒˆ(H¬µQP‚€Ñhtpp È¼þá»wïΜ'I³DöÁA H✠³ùäùógÏž=ù›ÿéof³Ét:&Þ[ÀD;¸*)ÝôèXºêôG;}‡‰Ú!wÖ0ƒfŒÞ6v¼"j6RÍ ¡ªâÍó|]®‰(ÍÌþþ~–e!TGŸRJ¢ü7²RÊ A­Ïvk®Èõ%6ªÜÅæJ?ùt¼ÄjvÚ›Ý"èC,šJÔ j1À>ÙŽÑ B a+“é°Z;°OÞì¦v©¾Ì^5VÃôõzuss#Þ¼÷þ÷¿ÿóë7çd2¥dU\¨Ääyîƒ0{Q¨8.i¢â*B@`/ž%pHB€ÀuÄeæy>›Í’$ùæÛïV«•÷þêòF]iÓX:K–OB›IDATt¢È±vÇŽ>úøù矿|ùÙÇ›DYk}¹ U† yšÆ+ãµ·£ ÐÆ÷l\õÐ*$qî>Áú˜’–gÍpˆvþ¿éõ¼""ž‚ï…ƒ  !D“$ZkZ.—ƨ$MgãÀ.Và£IäÈ:¥… ‘ à›ç³kFÀ*ðX"@€¢Nc4ªDÏ#bsöOŽm ­†_²Ûëü—ŒºAÝ¡!m|IÛu¤óýŽ EwöŠÐ?¸vŒqû?ªîEÍ1AÄ\Y–ë²°®¼>+¿ùæÛõZÆ{‡kï]ìç{ó¼Xû<袰Eé‚/9`œ£$ùI B¥¢¾H¬Bã8Ñ®WgggùhBHÙŒ²L$8oGùèèéñ'/N?þøãO?ýtÈ!”ë%‹Èh”‡¸±òÞ2s”"ï Ùcý_ÖFÕQ3þîlpƒ"nƒã©ï:X¿lS³•eÛ€t0S QÔ¢ H…¨ˆ+‹?yu~}}½ŸDÝZ­Qùb4Έ€ÅÇ.º1 Da(ï'¡Þ†@H@ ‚dÝyDïàmK/Â_âKÿ´ô²¿k¶ÅÛ®Z´Ù#êˆÉBÏr¹i5;J3†êt>w("b`_ç ÑgÜF.Üjyc­UI¤7‹ùlô×ýïÿâ«Ož>vöîüŸþéw¿ûç?þù»–‹2I1#ëo+( H!(À(7—Ëû÷ï=,×7©6J#K9žäÇG?ûüå'/žùê“Ñh¤”*í:ZÌEŠ·µëxÉJ)2)"j2šLgüØ®c¢Ž›aRzŸj­3qݦSØø’îh w>pá$86|9 ÷¶(–QH{4£Ê²¸¸¸¸Y\=¤'‘p€Œ Ö{›@Õ"ª‘I*Vn Ìç6¢p03ì:`Ý•BÿäSî'F]_•¨é^4t›A5õN³¤Óiú Ý„»ú»Z÷9íNf7Û!!­ÖªFry¯59ïݺÒùxúñÇŸüÇÿí?~ûã7JQŸL'óÉì¿ûÝ7…óœ%y‹“笖AkcÛ³„J–e+{“MFóéøpÿÕŸþæË/NNŒG¹÷¶X/âgóHr½¹Y%‰`ÄH–½µyè×ÃUvºJƒ>ƒ´èŽFÿ¶L¡_ö Žw+tZy·u>øÆ (ŠàÕÕÕÕÕÕ‹ÏöööF“Ižçι,Oæóùd2QJ…à4V{(£àzü^ÿTµ× VY°ƒ¯ :È-&’ò¡uì/uƒê±}VH›Ô+5ž[ºEmM®Zn¨;lsÌÛó·,Ò†ÞÖÈ€ÀŒQº+„5—&QJ“ÎFÜ×ÿúoÿ÷ÿõÿLRüø‹gWW—çﯮ/×W×××zo>·…ÐwY–å(Í0€µ–%IBÀDôøñÉãÇ¿üâå«/>{öô4Ѫ,V^B9æÌ`׫øÉg“#;[]»÷>êZ™öÓFŸjC íp‡;2ú•É`s«™ý –y÷ìvÆki?¾¦¬ç6Û>(‚ÌP–åùùùó^tz9ÑòæôôôÛÃwß}sUÚu–Ž÷÷çÅz±^¯þå_7V˜ZkÒ ï³ÒTêÌܼ%dLýàÁégŸ}úÕW_=þ<)£5Eåâ@€E@uŸzEzªÏü>kfÐpR -Q³öÝèLêvPWv—43¡“†T¨tŽŠ&Žïň¹"Š;m£kV!¿Yâ–ƒ @%:MtªH ƒs@åY2™íe“±óâ°WJÀÈ73d ”Ãñ ww%úÛ±>Þ¦ößçCõ§,÷I8w)ómì÷/ SÜ7!‡ˆdtŸòˆˆtá®\ùveH·¶¬X­›Ò]Í/ÚÒ«X*Ä>›"3Mû›Ç>-–ð»þæâòm’$&ÕIš&IÖ)¬]ð,L X€²L§©1Fs||üèÑÃãããÓG'§§§Ó阈 o­µ®´ Ð(­ŽTí€Ü™v¯¢-3s'j|1ÛŸ.l›ãõϽá|¡' ›²ˆ $ÌÒ4gfï-GɉZªƒEjQƪñÖ¨?RY:[X—9€„½Y‡l®‹"°¬¬sÞ£° æPbëB† ÚÁ=}Û,nw—¥Í1¿Ý×>¤½©ïYdz®Ó(ÜGûÇ]gílÖÙ`¡/̃6îa,šyQº¢µÞþÅW¿}pôäþóÿû¿ÿ/ß|ûíj²,ÑÉ´iÄÛš$Éh’cÀ43“Éxorp8ð`ÿðh2=:8OòØà&BX-®¯¯¯ÓÙÜ{ORR"AI×â“6,"ºÚ÷¼¡Z÷ýA;´àŸ iweb]ÝyXçÒîE7x×¶TÕLmDÃuHª{è¨÷æ#“V‘˜=£gá¢h PbFDä™Vkï./€” 1‚R€ã2œ³ñ*sg÷ì‚ìàõöçuM7ë6ÌGàUhûÜYþušøm•èiìµ÷cØ©ö·m>» ßb[F¨qœ°é&˜Ëµ²ž?;:<~õåg¿ÿýï¿þ·¯ß¿~±b¥tžçãñx:îíí=zpšçùl6šïM¦³|<ÎÓLk­eÍÖ–ëõºtµÖZáþÞŒµñ„Pi:1#‘2Jüð\±?ál+.òÜ7dž Ü×’l~lã˵{Ôíƒb…ãH$ Òˆˆ*r°>Xks`a@AbfXõÕRT$@œhR¼sίÓLÐ… •Qd”ÃJ*Ï$0Ý–:žuý#«Ž®®_âÆLsÝÚÔ’qßi°Î÷ì÷îbµfÀƒoÚqçÙ˜›yßniÞ^ž¢;íž;ršÛÒ€Á?ÊrÅOìLÄÊç`~TÅÂތǣ÷ï¿|õÕÇïÞ½;¿¼´ ¶ÖF8åt:L&ÑU§~À!8[®7뜡Ì{Æ­f_O£è~Ãr-÷À¾2EÿLLuêÌÜ ‹‘Þ‰;¹³'Þ_MôöõçëþJÕqäøŒN µ`Eˆnì±¥ÉÌCÓƒ 옢Råúf4JB® %ŠVb3`€PI@fMœ¤ šMìNõØ&B §ðY?Ûp˜°Ý$yÐGµ{ϲÏÁ@hÉpìuº)Û¦·Ûç–Í IZºuÈöSnuôb™@‘”gŒvÎk­Ò,îúr„fÏž=Ò¡’”m÷`„‹’m3‡Ô:!¢,‰ˆ0‘æ(ºÅb_„ÐW|ðk?IÇÃõmœ{ƒ“ëö"è *w{;ørƒ… ô<¨ÛóÀv¶Ù®?™ëU²³„$ˆ˜bŽ•˜¬ÈŠÅbÁáÊ;DF@föÖ§Ñ 9”"kö‰-ÁdFë©I”xç4#x-”SOzÛöQÝÍEØJ}å/¸SM}S9¡“ªÄ¯hFÿsϺÁº+êaîšq¥Â¦´^gÝÞ3¼p'êäÍÐÕ]ž[ÐHs®cD-½(4H <"jC¤´sκõùÅz$¦9“}+4p€¨8B¨3""Ëh&Ôz¥^ ì¼ˆ(£uš¨Ä´ z7¯nøa÷wÜ]0Øý´¤iãfõTÛ6¼·Ÿ©¶ÆÌÂ-=¿æMtšÑIž%y&„…-KïD©W¿÷âØé´PX¯‹b½¥QF“©Á Ø%J­£Ü¢ˆžÛ2¬`”ÞT½­)ÕÁî–¸½¾Ás¶‡¨¿,ú+ÛN‘ Ã6«äö\µ}A8ꨚÝ/ ºEuÅä,ºO6&$ÌÍÐ6ŠG4 w;e¥^0® &_A$hM"ÈìQ¡R£ˆµ°"ØD)B³}„f$˜šˆnñ>ÄÔ1Mšä„7XNF‹ “VÐU&܃}àf>Ö•$¢è³|ˆ›H!´5½€E;j÷Ô]d.÷8{qEÉnD ›è‡æ£³ðð®ÏÃFìým©-=iÀöÊn7Ü·Qñû½¬îÜÎïìEØò‹Û¨"ÃýCá{»C\`~yç$¶ó£tGûa¸^hný «lN"6_³«¹[4Ú¶y~è }‡wZ§aÃ<œÓnÂù¡,gY–˜|o?{þñ«¯¾Zþþ_ÿtþýùêzå$¤F¯Ñûå{&ÑÓ½Y™±‘ IVÔÊôjˆ¢Ô‰úÀ¢Ý&y¼­µ;>û»Où  Ÿï¿Söq˜MU:ˆì·Y·5Á›Ã§/¡³c®Ò×whc,ú<ØBh—ˆ@jÎö.‘lˆ-k j™'ÆÍ™tSÈÅ£UíØ#ÚzlÝ pKäô'`õ¿·¶©µmü”=ë»—ƒžRÐ’•¼¥›pÓèS±ômË(éÕê:°WI>O3av:Éæ‡#Ü›×ÿr³|{4¢çOÖ*/Ag*`ðä™ H@j~ÞÆb…Ñ騦Íýªo·èŽÍèž*•pÖ5QWÃîºn¸½aÿUi*aǨ™ô+ûX¡µ;"ÎAjcv ¥]«”éÇÞcLv@p!$íÝkÅÎ ¯í÷ÝyN »Y÷ç&Ê® jìlS¹ÚýÕô0û•Ï–Þ¶ëP÷„™Û‰LTø Þ{"ˆ^|ÞûÄ@peð¥ÎS+%³+ÝBŒÑ\¸"M)x`…€HQÿc] ù«_-ÞàÞÔÿ<ÐvtwVÔ5Üx1Î9î ylò»É­/!€‚[ †¶6f´Ú&"Fˆ¤¶¨¦¨H²ÒQ)C!Ú „v§«cBÔ>gbdFY»ªÑZ'I‚5æ 1 Š*!p?m&"é¡Úó‰Ê×¢aNÕİŽG  ­Ûx»7qþ\®=`ìÜùZŠ«ÛK’¬}½­_¡ö잨‘A°Íˆ,Î\Yk‰(*êBÅØfëûm‹>µÑhÝWø¹u]lu’«Ýhš>6¢^ºÒg»4ˈ™…¶²ËÚÿÁ~mטØñµÌ÷ìPv>w_Qßï7´•Ø= r_ìOô;=˜ÎÖQêîã±±è÷ú*«­ü¼Îå€%rÞÛ½Ü’»Øð6SûvÚÉ !Õ¥µžÍf?¦mýŒ&ÅÅ»’ÀÛÞuë¾µ#³Y¨sð)÷o¬€üg]½÷:iCH…V}ÛļZ$Ãã‘6T*Êcn«R¡æ?ûü†m•n‡’;è=·\^؆Øêì6#¦ƒôf0måжÛrˆÂŽ}‰6ŒØpå͆Y½€ÚúÓí›/UÔA½S7»UóÕp…b?+„`­M’äøøØ{_Ûm-h¡å Öápô+·˜›tà5}“Œ>3{G!·mÿ¬ s˜^9ÔÆ-^Vκ›{sGŸ£)ÃZ2²HD°ýªª“]évÔ5¬ç;]üvÏ4;>I£4œÙo3åèS„·õÙv7ÊúåÜ5Â=[—fȰ±òßR,DÖÖ§Xÿ¯Ò!—Þn»™±li¯‡hr$ÉÁÁ÷”n[&ö÷ ƒµA¦Îï¶{ìíwkFŽƒÓð¸Ëô³•_R7e÷|ø0I’ëÕÒ£Cá=mYoõ½ï€6LËYq“`-m8Gó-æ¡E@élí×··¿àJ¥ÔÊ–7ëÅ®¯—ׂÀòAQ·ZÚxè__/Æ£Y±]àjG8H–|ŠÖmsaͼ«·ËX¢]kD…v4IV«Õª(‘ÔåÅÒ[PäUØuíÓ¹£Š÷¡­—^Ô ÿ¹Q nµ•ç:(áNýVa\H C ©KilºjlkvlÓ:)hÛò³©=šËÜöàQF[æTw` ûv?»«ÐA%ˆb„cO+4š‘!„ÀÞ{‚DÑF¥¬ ϼwQ+"­”BÒýYyëzï5¹M³i¸fÞuývåÖ×3ÆôÍÍj¹.×¥@Õá…Þ]×}ÿý÷—7‰Ùûñì:¿.S“•kgR}gØQÝè<ÅAšlò);i°]ç£0m&NçM¢xx[s2þ–©ç0Ý!G¥Äàõ±#ƒÞ1;¢.° TB=¨$0Œƒ%(ûùTªM~@»Åû—ØÏiÃð 1BÜë{׫‘¤% NMŸF£óªï""¡hà?謻îaø8u;^¯Éxoùìýûx¹²Þzš«ë®/.¦ÓéW_ýåÓ§§,>Ñf41ƒ+iGÕ>ØEü ÛÜåwèd NíÛÕö}ºO•¨Æ¼÷õë×±m—x„M bš¦Ðbè5g]üþ޽pÌÝÏ0µ¡ÁžŠVÉ àk[Ôm¾ Ÿu;HzƒÝ…ܶLrËo5sŨýÜ( ¨ÖOúiåDÄ ƒ*BT}¶ír¯èj]rø ØÀî˜$–åZ$Ìö˜a¹X;<&ôQ7ÛŸÿíßþ­ÉL’¦ b­ED“$Àþ?õµ7tǯ´RÂàí™ H ¾‚oæ(ÐêδtMð'þÝø§‘^&H-úØÅ|ð«®%ŽCï¸ùÇwÎý:6y†ßªé²TRó\ýéÛoLÛA Ö@Ša»Jz–më¦ÿ¼e&w¼?kJm3óååM>žP†y}ñ~¶·hªe(ž;b§Ã×Ñ‹môØà–Ñ<ýf10‹R²UX¤ûQ?9#-´åÅ”t£FjZÙàÞIH;>-Üb䙸òP„Xÿ ÔfHµâ­ßÃðûo{.±C‰-ÅÕø†Û®W¶¨ÙV]œþ/m»ÞV{*!xé~øe¬*Kúú[NP!(T?aG~Ì›¢þû÷[$8ðøº«HÒjÏPppðxëV¸ý¬;ØAg­Ö‰(­‰À±Ú-Ÿª½ 6Œj”–RH÷ãÆe ª­;mQl^ÜŒ_5i© üµö‰ÔzuØÿ„ñÿãkšïàö‡÷ªøÎÍ:i ©t±‹\ký¨R  øÎ!IU~UCŽ~nû‹Û™òžbRT‚¹Ý5`2ßyF­ yÛY ýóoè@©Ô»êñ/ Qº&nÜ B[ZïÛ3̶1À&3¸ëÕ¦O÷?êP¶'V ÓaEbË2MG«E1šæÃQ×¢``ƒÉÑ Uí” `@Ì=ö…;Ÿáѽ÷±ÛÀÞ_Ä»ö=ìýuÙòŸt¯}ð§ÜŠÈX‡}÷Ó&ø·dð•U%°{w¿s˯E¿ï:ceç–êÌÄD="°°שÞD©¶XxŽ÷HEïW¸á]o¨nW%i. ù,HJl[É€¶Özï#¼Üý¥ŒÏýúõëÿÏ_m­¤fv¥›Nz×$„_oÙ¯_¿~ý̯_mEú$It–e6A„A6–ȿ޲_¿~ýúEÎ:¨1wÑ›^¿yóÆ{ßç#Ì,†ß¯·ìׯ_¿~æ—1&[ÄÄ%Irvvöÿ‹xiŽÂðyIEND®B`‚ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor/000077500000000000000000000000001276165756300252525ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor/Makefile.am000066400000000000000000000021461276165756300273110ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. isb_language_editor_DATA = \ main.py \ ui.glade \ $(NULL) isb_language_editordir = $(datadir)/ibus-braille-language-editor/ isb_desktop_icon_DATA = ibus-braille-language-editor.desktop isb_desktop_icondir = $(datadir)/applications/ bin_SCRIPTS = ibus-braille-language-editor CLEANFILES = \ *.pyc \ $(NULL) ibus-braille-language-editor.desktop000066400000000000000000000004471276165756300342120ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor [Desktop Entry] Categories=GNOME;Utility; Version=1.0 Type=Application Terminal=false Comment=Change edit languages of ibus-braille Exec=ibus-braille-language-editor Name=ibus-braille-language-editor Icon=/usr/share/ibus-braille/icons/ibus-braille.png Name[en_IN]=ibus-braille-language-editor ibus-braille-language-editor.in000066400000000000000000000015701276165756300331450ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor#!/bin/sh # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. exec python3 @prefix@/share/ibus-braille-language-editor/main.py $@ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor/main.py000066400000000000000000000401611276165756300265520ustar00rootroot00000000000000#!/usr/bin/env python # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import shutil import configparser from gi.repository import Gtk from gi.repository import IBus home_dir = os.environ['HOME'] data_dir = "/usr/share/ibus-braille/braille" class page(Gtk.ScrolledWindow): def __init__(self,name,language,key_dict): self.key_dict = key_dict self.language = language Gtk.ScrolledWindow.__init__(self) self.filename = name self.liststore = Gtk.ListStore(str, str) self.treeview = Gtk.TreeView() self.treeview.set_model(self.liststore) self.pressed_keys = "" cell = Gtk.CellRendererText(editable=True) cell.connect('edited', self.key_combination_changed, 0) cell.connect("editing-started",self.editingKey,0) col = Gtk.TreeViewColumn("key-combination",cell,text = 0) self.treeview.append_column(col) cell = Gtk.CellRendererText(editable=True) cell.connect('edited', self.value_changed, 1) col = Gtk.TreeViewColumn("Value",cell,text = 1) self.treeview.append_column(col) self.import_from_file(data_dir+"/"+self.language+"/"+name) def editingKey(self, cell, editable, path, treeModel): editable.set_editable(False) editable.connect('key-press-event', self.kbKeyPressed) editable.connect('key-release-event', self.kbKeyReleased) def kbKeyPressed(self, editable, event): hardware_keycode = int(event.hardware_keycode)-8 value = "" try: value = self.key_dict[hardware_keycode] except: value = "" self.pressed_keys = self.pressed_keys + value def kbKeyReleased(self, editable, event): if (self.pressed_keys != ""): orderd = "" for item in ["1","2","3","4","5","6","7","8"]: if item in self.pressed_keys: orderd = orderd + item editable.set_text(orderd) self.pressed_keys = "" def import_from_file(self,filename): try: text = open(filename).read() except: file = open(filename,'w') file.close() text = "" skip_all = 0 replace_all = 0 for line in text.split("\n"): if(len(line.split(" "))>1): if (not self.key_combination_exist(line.split(" ")[0])): self.liststore.append(line.split(" ")) else: if (not skip_all and not replace_all): dialog = Gtk.Dialog("Warning!",None,1,("Skip",Gtk.ResponseType.NO,"Skip-All",Gtk.ResponseType.NONE,"Replace",Gtk.ResponseType.YES,"Replace-All",Gtk.ResponseType.APPLY)) label = Gtk.Label("key-combination already exist : "+line) box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if(response == Gtk.ResponseType.NONE): skip_all = 1 elif (response == Gtk.ResponseType.APPLY): replace_all = 1 elif (response == Gtk.ResponseType.YES): for row in self.liststore: if row[0] == line.split(" ")[0]: self.liststore.insert_before(row.iter,line.split(" ")) self.liststore.remove(row.iter) break else: pass dialog.destroy() if(replace_all): for row in self.liststore: if row[0] == line.split(" ")[0]: self.liststore.insert_before(row.iter,line.split(" ")) self.liststore.remove(row.iter) break self.saved = False self.treeview.show() self.add(self.treeview) def key_combination_exist(self,value): flag = 0 for item in self.liststore: abb,exp = item if (abb == value): flag = 1 break return flag def key_combination_changed(self, w, changed_raw, new_value, column): if(not self.key_combination_exist(new_value)): self.liststore[changed_raw][column] = new_value self.saved = False else: dialog_exist = Gtk.Dialog("Warning!",None,1,("Close",Gtk.ResponseType.YES)) label = Gtk.Label("Key-Combination already exists!") box = dialog_exist.get_content_area(); box.add(label) dialog_exist.show_all() response = dialog_exist.run() dialog_exist.destroy() def value_changed(self, w, row, new_value, column): self.liststore[row][column] = new_value class ibus_sharada_braille_le(): def __init__ (self,file_list=None): self.guibuilder = Gtk.Builder() self.guibuilder.add_from_file("/usr/share/ibus-braille-language-editor/ui.glade") self.window = self.guibuilder.get_object("window1") self.guibuilder.connect_signals(self); self.notebook = self.guibuilder.get_object("notebook") self.black_list = [] self.key_dict = {} self.config = configparser.ConfigParser() if (self.config.read("{}/isb.cfg".format(home_dir)) == []): self.key_dict = { 33:"1",32:"2",31:"3",36:"4",37:"5",38:"6",44:"7",52:"8"} else: self.key_dict[int(self.config.get('cfg',"dot-1"))] = "1" self.key_dict[int(self.config.get('cfg',"dot-2"))] = "2" self.key_dict[int(self.config.get('cfg',"dot-3"))] = "3" self.key_dict[int(self.config.get('cfg',"dot-4"))] = "4" self.key_dict[int(self.config.get('cfg',"dot-5"))] = "5" self.key_dict[int(self.config.get('cfg',"dot-6"))] = "6" self.key_dict[int(self.config.get('cfg',"dot-7"))] = "7" self.key_dict[int(self.config.get('cfg',"dot-8"))] = "8" self.lang_liststore = Gtk.ListStore(str) for line in open("{}/languages.txt".format(data_dir)): if ("\n" in line): self.lang_liststore.append([line[:-1]]) else: self.lang_liststore.append([line]) self.combobox_language = self.guibuilder.get_object("combobox_language") self.combobox_language.set_model(self.lang_liststore) renderer_text = Gtk.CellRendererText() self.combobox_language.pack_start(renderer_text, True) self.combobox_language.add_attribute(renderer_text, "text", 0) self.saved = True self.combobox_language.set_active(0) self.notebook.show(); self.window.show() def remove_selected_language(self,widget,data=None): iter = self.combobox_language.get_active_iter() item = self.lang_liststore.get_value(iter,0) shutil.rmtree(data_dir+"/"+item.split("-")[0]) self.lang_liststore.remove(iter) file = open("{}/languages.txt".format(data_dir),"w") for raw in self.lang_liststore: file.write(raw[0]+"\n") file.close() self.combobox_language.set_active(0) def add_new_language(self,widget,data=None): dialog = Gtk.Dialog("New entry",self.window,1,("Add",Gtk.ResponseType.YES,"Cancel",Gtk.ResponseType.NO)) label = Gtk.Label("Please enter the language name \n with espeak voice varient (eg english-en)") box = dialog.get_content_area(); box.add(label) entry = Gtk.Entry() label.set_mnemonic_widget(entry) box.add(entry) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: new_value = entry.get_text() exist = 0 pos = 0 for row in self.lang_liststore: if row[0] == new_value: exist = 1 break; pos = pos + 1 if(exist): dialog_exist = Gtk.Dialog("Warning!",self.window,1,("Close",Gtk.ResponseType.YES)) label = Gtk.Label("Language already exists!") box = dialog_exist.get_content_area(); box.add(label) dialog_exist.show_all() response = dialog_exist.run() dialog_exist.destroy() else: os.mkdir(data_dir+"/"+new_value.split("-")[0]) file = open("{}/{}/abbreviations_default.txt".format(data_dir,new_value.split("-")[0]),"w") file.close() file = open("{}/{}/abbreviations.txt".format(data_dir,new_value.split("-")[0]),"w") file.close() file = open("{}/languages.txt".format(data_dir),"a") file.write(new_value) self.lang_liststore.append([new_value]) self.combobox_language.set_active(pos) dialog.destroy() def language_changed(self,combo,data=None): if(not self.saved): dialog = Gtk.Dialog("Warning!",self.window,1,("Save",Gtk.ResponseType.YES,"Change",Gtk.ResponseType.NO)) label = Gtk.Label("Do you want to change language without saving ?") box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: #self.save(self) self.saved = True dialog.destroy() tree_iter = combo.get_active_iter() if (tree_iter == None): return model = combo.get_model() self.language = model.get_value(tree_iter,0).split("-")[0] for i in range(0,len(self.black_list)): self.notebook.remove_page(-1) self.black_list = ['help.txt','abbreviations.txt','abbreviations_default.txt'] for item in ['beginning.txt','middle.txt','punctuations.txt']+os.listdir("/usr/share/ibus-braille/braille/"+self.language+"/"): if item not in self.black_list: label = Gtk.Label(item) print(item) sw = page(item,self.language,self.key_dict) sw.show() self.notebook.append_page(sw,label); self.black_list.append(item) def add_map(self,widget,data=None): dialog = Gtk.Dialog("New entry",self.window,1,("Add",Gtk.ResponseType.YES,"Cancel",Gtk.ResponseType.NO)) label = Gtk.Label("Please enter the map name ") box = dialog.get_content_area(); box.add(label) entry = Gtk.Entry() label.set_mnemonic_widget(entry) box.add(entry) self.pressed_keys = "" def kbKeyPressed(editable, event): hardware_keycode = int(event.hardware_keycode)-8 value = "" try: value = self.key_dict[hardware_keycode] except: value = "" self.pressed_keys = self.pressed_keys + value def kbKeyReleased(editable, event): if (self.pressed_keys != ""): orderd = "" for item in ["1","2","3","4","5","6","7","8"]: if item in self.pressed_keys: orderd = orderd + item editable.set_text(orderd) self.pressed_keys = "" entry.connect('key-press-event',kbKeyPressed ) entry.connect('key-release-event',kbKeyReleased ) entry.set_editable(False) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: map_name = entry.get_text() map_name = map_name + ".txt" if map_name not in self.black_list: label = Gtk.Label(map_name) sw = page(map_name,self.language,self.key_dict) sw.show() self.notebook.append_page(sw,label); self.black_list.append(map_name) dialog.destroy() def remove_map(self,widget,data=None): pagenum = self.notebook.get_current_page() if pagenum > 2: object = self.notebook.get_nth_page(pagenum) os.remove("{}/{}/{}".format(data_dir,self.language,object.filename)) self.notebook.remove_page(pagenum) def add(self,widget,data=None): dialog = Gtk.Dialog("New entry",self.window,1,("Add",Gtk.ResponseType.YES,"Cancel",Gtk.ResponseType.NO)) label = Gtk.Label("Fill entrys with appropriate data \n") box = dialog.get_content_area(); box.add(label) table = Gtk.Table(2, 2, True) box.add(table) label_key_combination = Gtk.Label("Key-Combination") entry_key_combination = Gtk.Entry() entry_key_combination.set_editable(False) label_key_combination.set_mnemonic_widget(entry_key_combination) label_value = Gtk.Label("Value") entry_value = Gtk.Entry() label_value.set_mnemonic_widget(entry_value) self.pressed_keys = "" def kbKeyPressed(editable, event): hardware_keycode = int(event.hardware_keycode)-8 value = "" try: value = self.key_dict[hardware_keycode] except: value = "" self.pressed_keys = self.pressed_keys + value def kbKeyReleased(editable, event): if (self.pressed_keys != ""): orderd = "" for item in ["1","2","3","4","5","6","7","8"]: if item in self.pressed_keys: orderd = orderd + item editable.set_text(orderd) self.pressed_keys = "" entry_key_combination.connect('key-press-event',kbKeyPressed ) entry_key_combination.connect('key-release-event',kbKeyReleased ) table.attach(label_key_combination,0,1,0,1) table.attach(entry_key_combination,1, 2, 0, 1) table.attach(label_value, 0,1,1,2) table.attach(entry_value, 1,2,1,2) pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: new_value = entry_key_combination.get_text() if (not object.key_combination_exist(new_value)): object.liststore.append([entry_key_combination.get_text(),entry_value.get_text()]) self.saved = False else: dialog_exist = Gtk.Dialog("Warning!",self.window,1,("Skip",Gtk.ResponseType.NO,"Replace",Gtk.ResponseType.YES)) label = Gtk.Label("Value for this Key-Combination already exists!") box = dialog_exist.get_content_area(); box.add(label) dialog_exist.show_all() response = dialog_exist.run() if response == Gtk.ResponseType.YES: self.saved = False for row in object.liststore: if row[0] == new_value: object.liststore.insert_before(row.iter,[entry_key_combination.get_text(),entry_value.get_text()]) object.liststore.remove(row.iter) break dialog_exist.destroy() dialog.destroy() def clear_all(self,widget,data=None): dialog = Gtk.Dialog("Warning!",self.window,1,("No",Gtk.ResponseType.NO,"Yes",Gtk.ResponseType.YES)) label = Gtk.Label("Clear all entries ?!") box = dialog.get_content_area(); box.add(label) dialog.show_all() response = dialog.run() if response == Gtk.ResponseType.YES: pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) object.liststore.clear() dialog.destroy() def remove(self,widget,data=None): pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) selection = object.treeview.get_selection() (model, pathlist) = selection.get_selected_rows() self.saved = False for path in pathlist: tree_iter = model.get_iter(path) value = model.get_value(tree_iter,0) model.remove(tree_iter) def import_from_file(self,filename): pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) object.import_from_file(filename) def import_(self,widget,data=None): open_file = Gtk.FileChooserDialog("Select the file to open",None,Gtk.FileChooserAction.OPEN,buttons=(Gtk.STOCK_OPEN,Gtk.ResponseType.OK)) open_file.set_current_folder("%s"%(os.environ['HOME'])) response = open_file.run() if response == Gtk.ResponseType.OK: self.import_from_file(open_file.get_filename()) open_file.destroy() def save_to_file(self,filename): pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) file = open(filename,"w") for item in object.liststore: abb,exp = item file.write("{} {}\n".format(abb,exp)) file.close() def export(self,widget,data=None): save_file = Gtk.FileChooserDialog("Export list ",None,Gtk.FileChooserAction.SAVE,buttons=(Gtk.STOCK_SAVE,Gtk.ResponseType.OK)) save_file.set_current_folder("{}".format(os.environ['HOME'])) save_file.set_do_overwrite_confirmation(True); filter = Gtk.FileFilter() filter.add_pattern("*.txt") filter.add_pattern("*.text") save_file.add_filter(filter) response = save_file.run() if response == Gtk.ResponseType.OK: self.save_to_file(save_file.get_filename()) save_file.destroy() def save(self,widget,data=None): pagenum = self.notebook.get_current_page() object = self.notebook.get_nth_page(pagenum) self.save_to_file("{}/{}/{}".format(data_dir,self.language,object.filename)) bus = IBus.Bus() bus.set_global_engine("braille"); def save_all(self,widget,data=None): for pagenum in range(0,self.notebook.get_n_pages()): object = self.notebook.get_nth_page(pagenum) file = open("{}/{}/{}".format(data_dir,self.language,object.filename),"w") for item in object.liststore: key,val = item file.write("{} {}\n".format(key,val)) file.close() bus = IBus.Bus() bus.set_global_engine("braille"); def quit(self,widget,data=None): Gtk.main_quit() ibus_sharada_braille_le() Gtk.main() ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/language-editor/ui.glade000066400000000000000000000250551276165756300266740ustar00rootroot00000000000000 False ISB-Language-Editor 600 600 True False Add Row False True True True 4 3 1 1 Remove Row False True True True 4 4 1 1 Clear All False True True True 4 5 1 1 Quit False True True True 4 6 1 1 Export False True True True 3 6 1 1 Import False True True True 2 6 1 1 Save False True True True 0 6 1 1 True True True True 10 0 1 4 5 True False 0 0 1 1 Remove selected language False True True True 2 0 2 1 Add New Language False True True True 1 0 1 1 Add Map True True True 4 1 1 1 Save-All True True True 1 6 1 1 Remove Map True True True 4 2 1 1 True False 4 0 1 1 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/m4/000077500000000000000000000000001276165756300225235ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/m4/.gitignore000066400000000000000000000000051276165756300245060ustar00rootroot00000000000000*.m4 ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/m4/Makefile.am000066400000000000000000000015301276165756300245560ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2007-2011 Peng Huang # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. EXTRA_DIST = \ as-version.m4 \ $(NULL) ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/000077500000000000000000000000001276165756300241275ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/control000066400000000000000000000010251276165756300255300ustar00rootroot00000000000000Package: ibus-braille Priority: optional Section: gnome Installed-Size: 400 Architecture: all Version: 0.3 Depends: python3-gi Provides: Nalin.x.Linux Maintainer: Nalin.x.Linux Description: ibus-sharada-braille is an ibus input engine based on six key approach of braille. we express our gratitude to Swathanthra Malayalam Computing(SMC) for mentoring this project. We consider the acceptance of this project by Swathanthra Malayalam Computing and Google as a new flowering of the effort of louies braille. ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/ibus-sharada-braille.spec000066400000000000000000000050671276165756300307660ustar00rootroot00000000000000########################################################################### # ISB - IBus-sharada-braille # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . ########################################################################### # yum install python3-devel # yum install rpm-build Name: ibus-braille Version: 0.3 Release: 0%{?dist} Epoch: 1 Summary: ibus-braille is an ibus input engine based on six key approach of braille. Group: Applications/Editors License: GPLv3+ URL: https://gitlab.com/smc/ibus-braille/zip/ibus-sharada-braille-0.3.zip Source0: https://gitlab.com/smc/ibus-braille/zip/ibus-sharada-braille-0.3.zip BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch Requires: python3-gobject Requires: python3-espeak Requires: PackageKit-gtk3-module %description ibus-braille is an ibus input engine based on six key approach of braille. we express our gratitude to Swathanthra Malayalam Computing(SMC) for mentoring this project. We consider the acceptance of this project by Swathanthra Malayalam Computing and Google as a new flowering of the effort of louies braille. %prep %setup -q set -e set -x libtoolize --automake --copy aclocal -I m4 autoheader automake --add-missing --copy autoconf export CFLAGS="-g -O0" export CXXFLAGS="$CFLAGS" %build %configure --disable-static # make -C po update-gmo make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make DESTDIR=${RPM_BUILD_ROOT} install #abbreviations.txt should be editable for user chmod -R 777 $RPM_BUILD_ROOT/%{_datadir}/ibus-braille/braille/ %files %defattr(-,root,root,-) %{_datadir}/ibus-braille/* %{_datadir}/ibus-braille-abbreviation-editor/* %{_datadir}/ibus-braille-language-editor/* %{_datadir}/ibus-braille-preferences/* %{_datadir}/ibus/component/braille.xml %{_datadir}/applications/* %{_bindir}/* ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/postinst000077500000000000000000000003631276165756300257420ustar00rootroot00000000000000#! /bin/sh sudo ldconfig sudo chmod -R 777 /usr/share/ibus-braille/braille/ if [ -x "`which update-menus 2>/dev/null`" ]; then sudo update-menus fi if [ -x "`which update-desktop-database 2>/dev/null`" ]; then sudo update-desktop-database fi ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/preinst000077500000000000000000000001311276165756300255340ustar00rootroot00000000000000#! /bin/sh if [ -d /usr/share/ibus-braille ] then sudo rm -rf /usr/share/ibus-braille fi ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/packaging/prerm000077500000000000000000000002621276165756300252020ustar00rootroot00000000000000#! /bin/sh if [ -x "`which update-menus 2>/dev/null`" ]; then sudo update-menus fi if [ -x "`which update-desktop-database 2>/dev/null`" ]; then sudo update-desktop-database fi ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences/000077500000000000000000000000001276165756300245045ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences/Makefile.am000066400000000000000000000021221276165756300265350ustar00rootroot00000000000000# vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. isb_preferences_DATA = \ main.py \ ui.glade \ $(NULL) isb_preferencesdir = $(datadir)/ibus-braille-preferences/ isb_desktop_icon_DATA = ibus-braille-preferences.desktop isb_desktop_icondir = $(datadir)/applications/ bin_SCRIPTS = ibus-braille-preferences CLEANFILES = \ *.pyc \ $(NULL) ibus-braille-preferences.desktop000066400000000000000000000003621276165756300326720ustar00rootroot00000000000000ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences[Desktop Entry] Categories=GNOME;Utility; Version=1.0 Type=Application Terminal=false Comment=Change preferences of ibus-braille Exec=ibus-braille-preferences Name=ibus-braille-preferences Icon=/usr/share/ibus-braille/icons/ibus-braille.png ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences/ibus-braille-preferences.in000066400000000000000000000015651276165756300317140ustar00rootroot00000000000000#!/bin/sh # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2012-2013 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. exec python3 @prefix@/share/ibus-braille-preferences/main.py $@ ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences/main.py000066400000000000000000000251071276165756300260070ustar00rootroot00000000000000#!/usr/bin/env python # vim:set noet ts=4: # # ibus-sharada-braille - The braille ibus engine # # Copyright (c) 2014-2015 Nalin.x.GNU # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import configparser import os from gi.repository import Gtk from gi.repository import Gdk from gi.repository import IBus home_dir = os.environ['HOME'] data_dir = "/usr/share/ibus-braille/braille" liblouis_table_dir = "/usr/share/liblouis/tables/" #Key code map #{30:"a",31:"s",32:"d",33:"f",34:"g",35:"h",36:"j",37:"k",38:"l",39:";"} class ibus_sharada_braille_preferences(): def __init__ (self,file_list=None): self.guibuilder = Gtk.Builder() self.guibuilder.add_from_file("/usr/share/ibus-braille-preferences/ui.glade") self.window = self.guibuilder.get_object("window") self.combobox_default_languge = self.guibuilder.get_object("combobox_default_languge") self.box_ibus_table = self.guibuilder.get_object("box_ibus_table") self.entry_liblouis_table_list = self.guibuilder.get_object("entry_liblouis_table_list") self.combobox_liblouis_table_list = self.guibuilder.get_object("combobox_liblouis_table_list") self.liblouis_table_liststore = Gtk.ListStore(str) for item in sorted(os.listdir(liblouis_table_dir)): if(".ctb" in item or ".utb" in item): self.liblouis_table_liststore.append([item]) self.combobox_liblouis_table_list.set_model(self.liblouis_table_liststore) self.config = configparser.ConfigParser() self.default_key_dict = { "dot-1":33,"dot-2":32,"dot-3":31,"dot-4":36,"dot-5":37,"dot-6":38, "dot-7":44,"dot-8":52,"punctuation_key":39,"capitol_switch_key":34,"letter_deletion_key":35, "switch_between_languages":119,"list_switch_key":56,"abbreviation_key":30,"one_hand_skip_key":20 } try: self.config.read("{}/isb.cfg".format(home_dir)) self.checked_languages = self.config.get('cfg',"checked_languages").split(",") self.key_dict = {} default_language = int(self.config.get('cfg',"default-language")) one_hand_conversion_delay = int(self.config.get('cfg',"one-hand-conversion-delay")) liblouis_table_list = self.config.get('cfg',"liblouis-table-list") print(liblouis_table_list) for key in self.default_key_dict.keys(): self.key_dict[key] = int(self.config.get('cfg',key)) # The following are for a try only self.config.get('cfg',"conventional-braille") self.config.get('cfg',"one-hand-mode") self.config.get('cfg',"simple-mode") self.config.get('cfg',"liblouis-mode") except: # To avoid duplication of cfg section try: self.config.remove_section('cfg') except: pass self.config.add_section('cfg') self.checked_languages = ["english-en","hindi-hi","numerical-en"] self.reset_keys_and_shorcuts(None,None) self.config.set('cfg',"simple-mode",str(0)) self.config.set('cfg',"conventional-braille",str(0)) self.config.set('cfg',"one-hand-mode",str(0)) self.config.set('cfg',"one-hand-conversion-delay",str(500)) self.config.set('cfg',"liblouis-mode",str(0)) self.config.set('cfg',"default-language",str(0)) default_language = 0; liblouis_table_list = "unicode.dis,en-us-g2.ctb"; self.config.set('cfg',"liblouis-table-list",str(liblouis_table_list)) self.key_dict = self.default_key_dict.copy() self.checked_languages_liststore = Gtk.ListStore(str) for item in self.checked_languages: self.checked_languages_liststore.append([item]); self.combobox_default_languge.set_model(self.checked_languages_liststore) renderer_text = Gtk.CellRendererText() self.combobox_default_languge.pack_start(renderer_text, True) self.combobox_default_languge.add_attribute(renderer_text, "text", 0) self.combobox_default_languge.show() self.combobox_default_languge.set_active(default_language) #Create checkbuttons for each available language self.available_languages = [] print(self.checked_languages) for item in open("{}/languages.txt".format(data_dir)): if ("\n" in item): widget = Gtk.CheckButton.new_with_label(item[:-1]) else: widget = Gtk.CheckButton.new_with_label(item) self.available_languages.append(item[:-1]) if item[:-1] in self.checked_languages: widget.set_active(True) widget.connect("clicked",self.language_toggled) self.box_ibus_table.pack_start(widget,0,0,0); widget.show() self.box_ibus_table.show() self.set_keys_and_shortcuts_to_ui(None,None) #Set Simple mode checkbox checkbutton_simple_mode = self.guibuilder.get_object("checkbutton_simple_mode") checkbutton_simple_mode.set_active(int(self.config.get('cfg',"simple-mode"))) #Set Simple conventional-braille checkbox checkbutton_conventional_braille = self.guibuilder.get_object("checkbutton_conventional_braille") checkbutton_conventional_braille.set_active(int(self.config.get('cfg',"conventional-braille"))) #Set TableType combobox combobox_table_type = self.guibuilder.get_object("combobox_table_type") self.box_ibus_table = self.guibuilder.get_object("box_ibus_table") self.box_liblouis = self.guibuilder.get_object("box_liblouis") value = int(self.config.get('cfg',"liblouis-mode")) combobox_table_type.set_active(value) self.box_liblouis.set_visible(value) self.box_ibus_table.set_visible(not value) #set liblouis_table_list entry self.entry_liblouis_table_list.set_text(liblouis_table_list) #Set one-hand-mode checkbox checkbutton_one_hand_mode = self.guibuilder.get_object("checkbutton_one_hand_mode") checkbutton_one_hand_mode.set_active(int(self.config.get('cfg',"one-hand-mode"))) #Set one-hand-mode conversion delay scale_one_hand_conversion_delay = self.guibuilder.get_object("scale_one_hand_conversion_delay") scale_one_hand_conversion_delay.set_value(int(self.config.get('cfg',"one-hand-conversion-delay"))) self.guibuilder.connect_signals(self) self.window.show() def combobox_default_languge_changed(self,widget,data=None): self.config.set('cfg',"default-language",str(int(widget.get_active()))) def simple_mode_toggled(self,widget,data=None): self.config.set('cfg',"simple-mode",str(int(widget.get_active()))) def conventional_braille_toggled(self,widget,data=None): self.config.set('cfg',"conventional-braille",str(int(widget.get_active()))) def one_hand_mode_toggled(self,widget,data=None): self.config.set('cfg',"one-hand-mode",str(int(widget.get_active()))) def one_hand_conversion_delay_changed(self,widget): self.config.set('cfg',"one-hand-conversion-delay",str(int(widget.get_value()))) def table_type_changed(self,widget,data=None): value = int(widget.get_active()) self.config.set('cfg',"liblouis-mode",str(value)) self.box_liblouis.set_visible(value) self.box_ibus_table.set_visible(not value) def liblouis_add_to_list_button_clicked(self,widget,data=None): cur_list = self.entry_liblouis_table_list.get_text() active = self.combobox_liblouis_table_list.get_active() new_item = self.liblouis_table_liststore[active][0] table_list = cur_list+","+new_item self.entry_liblouis_table_list.set_text(table_list) self.config.set('cfg',"liblouis-table-list",str(table_list)) def liblouis_clear_list_button_clicked(self,widget,data=None): self.entry_liblouis_table_list.set_text("unicode.dis") def liblouis_reset_list_button_clicked(self,widget,data=None): table_list = "unicode.dis,en-us-g2.ctb"; self.entry_liblouis_table_list.set_text(table_list) self.config.set('cfg',"liblouis-table-list",str(table_list)) def reset_keys_and_shorcuts(self,widget,data=None): self.reset_keys_and_shorcuts_config(None,None) self.set_keys_and_shortcuts_to_ui(None,None) def reset_keys_and_shorcuts_config(self,widget,data=None): for key,value in self.default_key_dict.items(): self.config.set('cfg',key,str(value)) self.key_dict = self.default_key_dict.copy() def set_keys_and_shortcuts_to_ui(self,widget,data=None): for item in self.key_dict.keys(): widget = self.guibuilder.get_object(item) hardware_keycode = int(self.config.get('cfg',item)) keymap = Gdk.Keymap.get_default() entries_for_keycode = keymap.get_entries_for_keycode(hardware_keycode+8) entries = entries_for_keycode[-1] text = Gdk.keyval_name(entries[0]) widget.set_text(text) def key_press(self,widget,event): hardware_keycode = int(event.hardware_keycode)-8 if (hardware_keycode not in [1,15,28,42,57]): widget_name = Gtk.Buildable.get_name(widget) if self.key_dict[widget_name] != hardware_keycode: if hardware_keycode in self.key_dict.values(): widget.set_text("None") self.key_dict[widget_name] = None; else: self.key_dict[widget_name] = hardware_keycode self.config.set('cfg',widget_name,str(hardware_keycode)) keymap = Gdk.Keymap.get_default() entries_for_keycode = keymap.get_entries_for_keycode(hardware_keycode+8) entries = entries_for_keycode[-1] text = Gdk.keyval_name(entries[0]) widget.set_text(text) def language_toggled(self,widget,data=None): label = widget.get_label() if (widget.get_active()): if (label not in self.checked_languages): self.checked_languages.append(label) else: if (label in self.checked_languages): if (len(self.checked_languages) > 2): self.checked_languages.remove(label) else: widget.set_active(True) print(self.checked_languages) self.checked_languages_liststore = Gtk.ListStore(str) for item in self.checked_languages: self.checked_languages_liststore.append([item]); self.combobox_default_languge.set_model(self.checked_languages_liststore) self.combobox_default_languge.set_active(0) self.combobox_default_languge.show() def close(self,widget,data=None): Gtk.main_quit() def apply(self,widget,data=None): file = open("{}/isb.cfg".format(home_dir),"w") self.config.set('cfg',"checked_languages",str(','.join(self.checked_languages))) self.config.write(file) file.close() bus = IBus.Bus() bus.set_global_engine("braille"); Gtk.main_quit() def restore(self,widget,data=None): try: os.remove("{}/isb.cfg".format(home_dir)) except: pass bus = IBus.Bus() bus.set_global_engine("braille"); Gtk.main_quit() ibus_sharada_braille_preferences() Gtk.main() ibus-braille-master-d94b7c096e184be3e76802e77562a0e5088e119d/preferences/ui.glade000066400000000000000000001454771276165756300261410ustar00rootroot00000000000000 1000 500 1 10 IBus-Braille Builtin Liblouis False IBus-Sharada-Braille Preferences True False vertical True True True False vertical True False 10 10 10 True False Table Type False True 0 True False liststore1 0 True True 1 False True 0 True False 10 vertical Simple Mode False True True False 0 True False True 0 Conventional Braille True True False 0 True False True 1 One-Hand-Mode True True False 0 True False True 2 True False True False end One Hand Conversion Delay True scale_one_hand_conversion_delay False True 0 True True adjustment_one_hand_conversion_delay 1 True True 1 False True 3 True False True False Default Language True combobox_default_languge False False 0 True False True True 1 False True 4 False True 1 True False 10 vertical True False vertical True False True False Table List False True 0 True True 5 5 False True True 1 Clear List True True True False True 2 False True 0 True False True False 5 5 liststore2 0 True True 0 Add to List True True True right False True 1 Reset to default True True True False True 2 False True 1 False True 1 False True 2 True False General False True False vertical True False 0 out True False 12 True False True False Braille-Dot-1 True dot-1 0 0 True False Braille-Dot-2 True dot-2 0 1 True False Braille-Dot-3 True dot-3 0 2 True False Braille-Dot-4 True dot-4 0 3 True False Braille-Dot-5 True dot-5 0 4 True False Braille-Dot-6 True dot-6 0 5 True False Punctuation True punctuation_key 0 8 True False Abbreviation True abbreviation_key 0 9 True False Capitol/chill True capitol_switch_key 0 10 True False Letter-Deletion True letter_deletion_key 0 11 True True False 1 0 True True False 1 1 True True False 1 2 True True False 1 3 True True False 1 4 True True False 1 5 True True False 1 8 True True False 1 9 True True False 1 10 True True False 1 11 True False Braille-Dot-7 True dot-7 0 6 True False Braille-Dot-8 True dot-8 0 7 True True False 1 6 True True False 1 7 True True False 1 12 True False One-Hand-Skip True one_hand_skip_key 0 12 True False <b>Keys</b> True True True 0 True False 0 out True False 12 True False True False Switch between beginning and middle list True list_switch_key 0 1 True True False 1 0 True True False 1 1 True False Switch Between Languages True switch_between_languages 0 0 True False <b>Shortcuts</b> True True True 1 1 True False Keys/Shortcuts 1 False False True 0 True False _Apply False True True True True True True 0 Restore True True True True True 1 _Close False True True True True True True 2 False True 4