diff --git a/Fonts/.DS_Store b/Fonts/.DS_Store new file mode 100644 index 0000000..c9f33fd Binary files /dev/null and b/Fonts/.DS_Store differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Bold.ttf new file mode 100644 index 0000000..ff8de82 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-ExtraLight.ttf new file mode 100644 index 0000000..de45a33 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Light.ttf new file mode 100644 index 0000000..0f02cc1 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Medium.ttf new file mode 100644 index 0000000..9137277 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Regular.ttf new file mode 100644 index 0000000..1dbef28 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-SemiBold.ttf new file mode 100644 index 0000000..ed8a7d0 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Text.ttf new file mode 100644 index 0000000..58b079c Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Thin.ttf new file mode 100644 index 0000000..7d38651 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/IBMPlexArabic-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Arabic/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Bold.ttf new file mode 100644 index 0000000..9f9944d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-ExtraLight.ttf new file mode 100644 index 0000000..b2bce3f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Light.ttf new file mode 100644 index 0000000..bc4af0f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Medium.ttf new file mode 100644 index 0000000..ba749ed Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Regular.ttf new file mode 100644 index 0000000..99cbf8d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-SemiBold.ttf new file mode 100644 index 0000000..523419b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Text.ttf new file mode 100644 index 0000000..af16a86 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Thin.ttf new file mode 100644 index 0000000..6b54ef2 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/IBMPlexDevanagari-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Devanagari/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Bold.ttf new file mode 100644 index 0000000..befdbdc Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf new file mode 100644 index 0000000..a70576b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf new file mode 100644 index 0000000..e14a246 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..4cc6f6f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Italic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Italic.ttf new file mode 100644 index 0000000..25cc39b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Italic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Light.ttf new file mode 100644 index 0000000..7714271 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf new file mode 100644 index 0000000..a734d6f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Medium.ttf new file mode 100644 index 0000000..cd02e15 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf new file mode 100644 index 0000000..593eb16 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Regular.ttf new file mode 100644 index 0000000..f99c8e9 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf new file mode 100644 index 0000000..e485804 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..1914629 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Text.ttf new file mode 100644 index 0000000..d0a09e8 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf new file mode 100644 index 0000000..49137fb Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Thin.ttf new file mode 100644 index 0000000..3d5cc2a Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf new file mode 100644 index 0000000..fdb3882 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Mono/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Bold.ttf new file mode 100644 index 0000000..40e023c Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-BoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-BoldItalic.ttf new file mode 100644 index 0000000..626ef46 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-BoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLight.ttf new file mode 100644 index 0000000..3627b95 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLightItalic.ttf new file mode 100644 index 0000000..456424e Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Italic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Italic.ttf new file mode 100644 index 0000000..6a3f09f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Italic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Light.ttf new file mode 100644 index 0000000..ba0a574 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-LightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-LightItalic.ttf new file mode 100644 index 0000000..a49a45c Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-LightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Medium.ttf new file mode 100644 index 0000000..6875586 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-MediumItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-MediumItalic.ttf new file mode 100644 index 0000000..9704fd9 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-MediumItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Regular.ttf new file mode 100644 index 0000000..13fe310 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBold.ttf new file mode 100644 index 0000000..801b427 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBoldItalic.ttf new file mode 100644 index 0000000..6ffdc2f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Text.ttf new file mode 100644 index 0000000..ccef06c Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-TextItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-TextItalic.ttf new file mode 100644 index 0000000..66dd884 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-TextItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Thin.ttf new file mode 100644 index 0000000..5f75cfb Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ThinItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ThinItalic.ttf new file mode 100644 index 0000000..c5f9f0b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/IBMPlexSansCondensed-ThinItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Condensed/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Bold.ttf new file mode 100644 index 0000000..65b56c2 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-ExtraLight.ttf new file mode 100644 index 0000000..febba77 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Light.ttf new file mode 100644 index 0000000..74ac97f Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Medium.ttf new file mode 100644 index 0000000..0cad011 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Regular.ttf new file mode 100644 index 0000000..c2917e9 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-SemiBold.ttf new file mode 100644 index 0000000..43da398 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Text.ttf new file mode 100644 index 0000000..2e07876 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Thin.ttf new file mode 100644 index 0000000..8b54508 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/IBMPlexSansHebrew-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans-Hebrew/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Bold.ttf new file mode 100644 index 0000000..eba206b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf new file mode 100644 index 0000000..7f69bff Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf new file mode 100644 index 0000000..187fcac Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf new file mode 100644 index 0000000..e9e6871 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Italic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Italic.ttf new file mode 100644 index 0000000..c690ee7 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Italic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Light.ttf new file mode 100644 index 0000000..b09e6a9 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf new file mode 100644 index 0000000..807554e Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Medium.ttf new file mode 100644 index 0000000..79271e6 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf new file mode 100644 index 0000000..f78e202 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Regular.ttf new file mode 100644 index 0000000..705fdf6 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf new file mode 100644 index 0000000..a01c128 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf new file mode 100644 index 0000000..d5ac121 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Text.ttf new file mode 100644 index 0000000..b39f143 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf new file mode 100644 index 0000000..fecc568 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Thin.ttf new file mode 100644 index 0000000..086f5b7 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf new file mode 100644 index 0000000..e33878b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Sans/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Bold.ttf new file mode 100644 index 0000000..6abf9f3 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-BoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-BoldItalic.ttf new file mode 100644 index 0000000..a848b0b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-BoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLight.ttf new file mode 100644 index 0000000..1f3977b Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLightItalic.ttf new file mode 100644 index 0000000..ff631d0 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Italic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Italic.ttf new file mode 100644 index 0000000..fd604c1 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Italic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Light.ttf new file mode 100644 index 0000000..cb200a2 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-LightItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-LightItalic.ttf new file mode 100644 index 0000000..8cb760d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-LightItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Medium.ttf new file mode 100644 index 0000000..d41658d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-MediumItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-MediumItalic.ttf new file mode 100644 index 0000000..17f092a Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-MediumItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Regular.ttf new file mode 100644 index 0000000..997ee25 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBold.ttf new file mode 100644 index 0000000..db36823 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBoldItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBoldItalic.ttf new file mode 100644 index 0000000..7e2a489 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Text.ttf new file mode 100644 index 0000000..95ba697 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-TextItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-TextItalic.ttf new file mode 100644 index 0000000..524acbd Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-TextItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Thin.ttf new file mode 100644 index 0000000..2ebe4d6 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ThinItalic.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ThinItalic.ttf new file mode 100644 index 0000000..be10f8d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/IBMPlexSerif-ThinItalic.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Serif/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Bold.ttf new file mode 100644 index 0000000..f74ffa7 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-ExtraLight.ttf new file mode 100644 index 0000000..1038f13 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Light.ttf new file mode 100644 index 0000000..b8dd944 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Medium.ttf new file mode 100644 index 0000000..133a424 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Regular.ttf new file mode 100644 index 0000000..c886556 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-SemiBold.ttf new file mode 100644 index 0000000..84f2c28 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Text.ttf new file mode 100644 index 0000000..746ba86 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Thin.ttf new file mode 100644 index 0000000..59a9b8d Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/IBMPlexThaiLooped-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai-Looped/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Bold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Bold.ttf new file mode 100644 index 0000000..26ea46c Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Bold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-ExtraLight.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-ExtraLight.ttf new file mode 100644 index 0000000..b7298b4 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-ExtraLight.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Light.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Light.ttf new file mode 100644 index 0000000..1a620c8 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Light.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Medium.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Medium.ttf new file mode 100644 index 0000000..2477681 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Medium.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Regular.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Regular.ttf new file mode 100644 index 0000000..d0c5121 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Regular.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-SemiBold.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-SemiBold.ttf new file mode 100644 index 0000000..ce85436 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-SemiBold.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Text.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Text.ttf new file mode 100644 index 0000000..7d950bd Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Text.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Thin.ttf b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Thin.ttf new file mode 100644 index 0000000..b0e2a62 Binary files /dev/null and b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/IBMPlexThai-Thin.ttf differ diff --git a/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/license.txt b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-PLEX-TrueType/IBM-Plex-Thai/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Bold.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Bold.ttf new file mode 100644 index 0000000..befdbdc Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Bold.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf new file mode 100644 index 0000000..a70576b Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-BoldItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf new file mode 100644 index 0000000..e14a246 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLight.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..4cc6f6f Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Italic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Italic.ttf new file mode 100644 index 0000000..25cc39b Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Italic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Light.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Light.ttf new file mode 100644 index 0000000..7714271 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Light.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf new file mode 100644 index 0000000..a734d6f Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-LightItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Medium.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Medium.ttf new file mode 100644 index 0000000..cd02e15 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Medium.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf new file mode 100644 index 0000000..593eb16 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-MediumItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Regular.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Regular.ttf new file mode 100644 index 0000000..f99c8e9 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Regular.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf new file mode 100644 index 0000000..e485804 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBold.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..1914629 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Text.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Text.ttf new file mode 100644 index 0000000..d0a09e8 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Text.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf new file mode 100644 index 0000000..49137fb Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-TextItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-Thin.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-Thin.ttf new file mode 100644 index 0000000..3d5cc2a Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-Thin.ttf differ diff --git a/Fonts/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf b/Fonts/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf new file mode 100644 index 0000000..fdb3882 Binary files /dev/null and b/Fonts/IBM-Plex-Mono/IBMPlexMono-ThinItalic.ttf differ diff --git a/Fonts/IBM-Plex-Mono/license.txt b/Fonts/IBM-Plex-Mono/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-Plex-Mono/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Bold.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Bold.ttf new file mode 100644 index 0000000..eba206b Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Bold.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf new file mode 100644 index 0000000..7f69bff Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-BoldItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf new file mode 100644 index 0000000..187fcac Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLight.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf new file mode 100644 index 0000000..e9e6871 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-ExtraLightItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Italic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Italic.ttf new file mode 100644 index 0000000..c690ee7 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Italic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Light.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Light.ttf new file mode 100644 index 0000000..b09e6a9 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Light.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf new file mode 100644 index 0000000..807554e Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-LightItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Medium.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Medium.ttf new file mode 100644 index 0000000..79271e6 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Medium.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf new file mode 100644 index 0000000..f78e202 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-MediumItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Regular.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Regular.ttf new file mode 100644 index 0000000..705fdf6 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Regular.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf new file mode 100644 index 0000000..a01c128 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBold.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf new file mode 100644 index 0000000..d5ac121 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-SemiBoldItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Text.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Text.ttf new file mode 100644 index 0000000..b39f143 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Text.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf new file mode 100644 index 0000000..fecc568 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-TextItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-Thin.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-Thin.ttf new file mode 100644 index 0000000..086f5b7 Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-Thin.ttf differ diff --git a/Fonts/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf b/Fonts/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf new file mode 100644 index 0000000..e33878b Binary files /dev/null and b/Fonts/IBM-Plex-Sans/IBMPlexSans-ThinItalic.ttf differ diff --git a/Fonts/IBM-Plex-Sans/license.txt b/Fonts/IBM-Plex-Sans/license.txt new file mode 100644 index 0000000..f72f765 --- /dev/null +++ b/Fonts/IBM-Plex-Sans/license.txt @@ -0,0 +1,92 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS-2y.ttf new file mode 100644 index 0000000..c8d2ea7 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS.ttf new file mode 100644 index 0000000..f2f0604 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_AMI_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x14.ttf new file mode 100644 index 0000000..e2a87ea Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x16.ttf new file mode 100644 index 0000000..a9c5ee3 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8-2y.ttf new file mode 100644 index 0000000..7e771cf Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8.ttf new file mode 100644 index 0000000..507a6b6 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_8x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x14.ttf new file mode 100644 index 0000000..85c22d5 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x16.ttf new file mode 100644 index 0000000..37334bf Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_9x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_SmallW_6x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_SmallW_6x8.ttf new file mode 100644 index 0000000..0368a74 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATI_SmallW_6x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300-2x.ttf new file mode 100644 index 0000000..377e36f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300.ttf new file mode 100644 index 0000000..497063b Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ATT_PC6300.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512-2y.ttf new file mode 100644 index 0000000..d582a5c Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512.ttf new file mode 100644 index 0000000..e6d0cc3 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_AmstradPC1512.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x14.ttf new file mode 100644 index 0000000..62c27da Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x16.ttf new file mode 100644 index 0000000..d5ebb68 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x8.ttf new file mode 100644 index 0000000..5a1957d Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_CompaqThin_8x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS-2y.ttf new file mode 100644 index 0000000..f99ac14 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS.ttf new file mode 100644 index 0000000..344525d Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_DTK_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_3270pc.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_3270pc.ttf new file mode 100644 index 0000000..94128ae Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_3270pc.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2x.ttf new file mode 100644 index 0000000..f200dba Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2y.ttf new file mode 100644 index 0000000..9b8921f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS.ttf new file mode 100644 index 0000000..28b8f08 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA-2y.ttf new file mode 100644 index 0000000..e4502c0 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA.ttf new file mode 100644 index 0000000..9492e9f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGA.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin-2y.ttf new file mode 100644 index 0000000..93a82ad Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin.ttf new file mode 100644 index 0000000..36a9f4c Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_CGAthin.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2x.ttf new file mode 100644 index 0000000..432c47b Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2y.ttf new file mode 100644 index 0000000..2877310 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv.ttf new file mode 100644 index 0000000..4b4452b Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_Conv.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8-2x.ttf new file mode 100644 index 0000000..c02d600 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8.ttf new file mode 100644 index 0000000..437d277 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9-2x.ttf new file mode 100644 index 0000000..a6843e5 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9.ttf new file mode 100644 index 0000000..de5bb0e Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_EGA9.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO8.ttf new file mode 100644 index 0000000..30e088f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO9.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO9.ttf new file mode 100644 index 0000000..add9023 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_ISO9.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_MDA.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_MDA.ttf new file mode 100644 index 0000000..0aae875 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_MDA.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC-2x.ttf new file mode 100644 index 0000000..1c85c24 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC.ttf new file mode 100644 index 0000000..094c774 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PGC.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin1.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin1.ttf new file mode 100644 index 0000000..8a35703 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin1.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin2.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin2.ttf new file mode 100644 index 0000000..c335fa8 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin2.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin3.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin3.ttf new file mode 100644 index 0000000..16b34e2 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin3.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin4.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin4.ttf new file mode 100644 index 0000000..729aab0 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_PS2thin4.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8-2x.ttf new file mode 100644 index 0000000..5bf2dbb Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8.ttf new file mode 100644 index 0000000..a8284f1 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9-2x.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9-2x.ttf new file mode 100644 index 0000000..030f79e Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9-2x.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9.ttf new file mode 100644 index 0000000..9d3701c Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_IBM_VGA9.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS-2y.ttf new file mode 100644 index 0000000..b1a51de Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS.ttf new file mode 100644 index 0000000..4c340d3 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ITT_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2K.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2K.ttf new file mode 100644 index 0000000..172292e Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2K.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2k-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2k-2y.ttf new file mode 100644 index 0000000..e288f17 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Kaypro2k-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x14.ttf new file mode 100644 index 0000000..fd29478 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x16.ttf new file mode 100644 index 0000000..a2bd49f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8-2y.ttf new file mode 100644 index 0000000..f3941f1 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8.ttf new file mode 100644 index 0000000..f743a7f Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_8x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_9x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_9x14.ttf new file mode 100644 index 0000000..87dab48 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_PhoenixEGA_9x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS-2y.ttf new file mode 100644 index 0000000..93eaa01 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS.ttf new file mode 100644 index 0000000..1951a28 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Phoenix_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225-2y.ttf new file mode 100644 index 0000000..aeb8de2 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225.ttf new file mode 100644 index 0000000..3e286ad Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_225.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_Mono.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_Mono.ttf new file mode 100644 index 0000000..ddeabbb Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_Mono.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV-2y.ttf new file mode 100644 index 0000000..68c0912 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV.ttf new file mode 100644 index 0000000..0849794 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyNew_TV.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225-2y.ttf new file mode 100644 index 0000000..4c89369 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225.ttf new file mode 100644 index 0000000..bddac89 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_225.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV-2y.ttf new file mode 100644 index 0000000..2878a7a Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV.ttf new file mode 100644 index 0000000..b4c11a7 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_TandyOld_TV.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x16.ttf new file mode 100644 index 0000000..c8285cb Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x8.ttf new file mode 100644 index 0000000..71fddb1 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_ToshibaLCD_8x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_VGA_SquarePx.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_VGA_SquarePx.ttf new file mode 100644 index 0000000..ece1c32 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_VGA_SquarePx.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS-2y.ttf new file mode 100644 index 0000000..697cb82 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS.ttf new file mode 100644 index 0000000..e4aefce Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_VTech_BIOS.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x14.ttf new file mode 100644 index 0000000..3de19a2 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x16.ttf new file mode 100644 index 0000000..fe580e9 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8-2y.ttf new file mode 100644 index 0000000..6b02cd8 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8.ttf new file mode 100644 index 0000000..cac4b61 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_8x8.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x14.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x14.ttf new file mode 100644 index 0000000..290874b Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x14.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x16.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x16.ttf new file mode 100644 index 0000000..99764e3 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Verite_9x16.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a-2y.ttf new file mode 100644 index 0000000..570eefb Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a.ttf new file mode 100644 index 0000000..fcd2982 Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700a.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b-2y.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b-2y.ttf new file mode 100644 index 0000000..212b7da Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b-2y.ttf differ diff --git a/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b.ttf b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b.ttf new file mode 100644 index 0000000..31a16de Binary files /dev/null and b/Fonts/Px437 (TrueType - DOS charset)/Px437_Wyse700b.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512-2y.ttf new file mode 100644 index 0000000..091001c Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512.ttf new file mode 100644 index 0000000..248a001 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_AmstradPC1512.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2x.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2x.ttf new file mode 100644 index 0000000..130bb4a Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2x.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2y.ttf new file mode 100644 index 0000000..2a1ec89 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS.ttf new file mode 100644 index 0000000..672aac7 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_BIOS.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA-2y.ttf new file mode 100644 index 0000000..f20e848 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA.ttf new file mode 100644 index 0000000..11cbae7 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGA.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin-2y.ttf new file mode 100644 index 0000000..e8aa21e Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin.ttf new file mode 100644 index 0000000..bca6a64 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_CGAthin.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8-2x.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8-2x.ttf new file mode 100644 index 0000000..5aeb931 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8-2x.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8.ttf new file mode 100644 index 0000000..22983e3 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA8.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9-2x.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9-2x.ttf new file mode 100644 index 0000000..66c93d8 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9-2x.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9.ttf new file mode 100644 index 0000000..d07ca5d Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_EGA9.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_MDA.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_MDA.ttf new file mode 100644 index 0000000..db3b7b2 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_MDA.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8-2x.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8-2x.ttf new file mode 100644 index 0000000..6963c72 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8-2x.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8.ttf new file mode 100644 index 0000000..0368d2b Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA8.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9-2x.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9-2x.ttf new file mode 100644 index 0000000..f159709 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9-2x.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9.ttf new file mode 100644 index 0000000..53c6068 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_IBM_VGA9.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225-2y.ttf new file mode 100644 index 0000000..e52ba0d Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225.ttf new file mode 100644 index 0000000..f279c67 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_225.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV-2y.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV-2y.ttf new file mode 100644 index 0000000..653a100 Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV-2y.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV.ttf new file mode 100644 index 0000000..d206e1d Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_TandyNew_TV.ttf differ diff --git a/Fonts/PxPlus (TrueType - extended charset)/PxPlus_VGA_SquarePx.ttf b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_VGA_SquarePx.ttf new file mode 100644 index 0000000..9fe3e4a Binary files /dev/null and b/Fonts/PxPlus (TrueType - extended charset)/PxPlus_VGA_SquarePx.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-Bold.ttf b/Fonts/josefin-slab/JosefinSlab-Bold.ttf new file mode 100644 index 0000000..454d4ac Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-Bold.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-BoldItalic.ttf b/Fonts/josefin-slab/JosefinSlab-BoldItalic.ttf new file mode 100644 index 0000000..73361eb Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-BoldItalic.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-Italic.ttf b/Fonts/josefin-slab/JosefinSlab-Italic.ttf new file mode 100644 index 0000000..1e6d4da Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-Italic.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-Light.ttf b/Fonts/josefin-slab/JosefinSlab-Light.ttf new file mode 100644 index 0000000..6e78b55 Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-Light.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-LightItalic.ttf b/Fonts/josefin-slab/JosefinSlab-LightItalic.ttf new file mode 100644 index 0000000..478caba Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-LightItalic.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-Regular.ttf b/Fonts/josefin-slab/JosefinSlab-Regular.ttf new file mode 100644 index 0000000..5c182ff Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-Regular.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-SemiBold.ttf b/Fonts/josefin-slab/JosefinSlab-SemiBold.ttf new file mode 100644 index 0000000..d53c163 Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-SemiBold.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-SemiBoldItalic.ttf b/Fonts/josefin-slab/JosefinSlab-SemiBoldItalic.ttf new file mode 100644 index 0000000..e6cb8f2 Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-SemiBoldItalic.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-Thin.ttf b/Fonts/josefin-slab/JosefinSlab-Thin.ttf new file mode 100644 index 0000000..55af291 Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-Thin.ttf differ diff --git a/Fonts/josefin-slab/JosefinSlab-ThinItalic.ttf b/Fonts/josefin-slab/JosefinSlab-ThinItalic.ttf new file mode 100644 index 0000000..e6615b5 Binary files /dev/null and b/Fonts/josefin-slab/JosefinSlab-ThinItalic.ttf differ diff --git a/Fonts/josefin-slab/OFL.txt b/Fonts/josefin-slab/OFL.txt new file mode 100644 index 0000000..6586a7e --- /dev/null +++ b/Fonts/josefin-slab/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010, Santiago Orozco (hi@typemade.mx) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Fonts/lato/Lato-Bla.ttf b/Fonts/lato/Lato-Bla.ttf new file mode 100644 index 0000000..6848db0 Binary files /dev/null and b/Fonts/lato/Lato-Bla.ttf differ diff --git a/Fonts/lato/Lato-BlaIta.ttf b/Fonts/lato/Lato-BlaIta.ttf new file mode 100644 index 0000000..5decf12 Binary files /dev/null and b/Fonts/lato/Lato-BlaIta.ttf differ diff --git a/Fonts/lato/Lato-Bol.ttf b/Fonts/lato/Lato-Bol.ttf new file mode 100644 index 0000000..7434369 Binary files /dev/null and b/Fonts/lato/Lato-Bol.ttf differ diff --git a/Fonts/lato/Lato-BolIta.ttf b/Fonts/lato/Lato-BolIta.ttf new file mode 100644 index 0000000..684aacf Binary files /dev/null and b/Fonts/lato/Lato-BolIta.ttf differ diff --git a/Fonts/lato/Lato-Hai.ttf b/Fonts/lato/Lato-Hai.ttf new file mode 100644 index 0000000..288be29 Binary files /dev/null and b/Fonts/lato/Lato-Hai.ttf differ diff --git a/Fonts/lato/Lato-HaiIta.ttf b/Fonts/lato/Lato-HaiIta.ttf new file mode 100644 index 0000000..c2bfd33 Binary files /dev/null and b/Fonts/lato/Lato-HaiIta.ttf differ diff --git a/Fonts/lato/Lato-Lig.ttf b/Fonts/lato/Lato-Lig.ttf new file mode 100644 index 0000000..a958067 Binary files /dev/null and b/Fonts/lato/Lato-Lig.ttf differ diff --git a/Fonts/lato/Lato-LigIta.ttf b/Fonts/lato/Lato-LigIta.ttf new file mode 100644 index 0000000..5e45ad9 Binary files /dev/null and b/Fonts/lato/Lato-LigIta.ttf differ diff --git a/Fonts/lato/Lato-Reg.ttf b/Fonts/lato/Lato-Reg.ttf new file mode 100644 index 0000000..04ea8ef Binary files /dev/null and b/Fonts/lato/Lato-Reg.ttf differ diff --git a/Fonts/lato/Lato-RegIta.ttf b/Fonts/lato/Lato-RegIta.ttf new file mode 100644 index 0000000..3d3b7a2 Binary files /dev/null and b/Fonts/lato/Lato-RegIta.ttf differ diff --git a/Fonts/open-sans/Apache License.txt b/Fonts/open-sans/Apache License.txt new file mode 100644 index 0000000..989e2c5 --- /dev/null +++ b/Fonts/open-sans/Apache License.txt @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Fonts/open-sans/OpenSans-Bold.ttf b/Fonts/open-sans/OpenSans-Bold.ttf new file mode 100644 index 0000000..fd79d43 Binary files /dev/null and b/Fonts/open-sans/OpenSans-Bold.ttf differ diff --git a/Fonts/open-sans/OpenSans-BoldItalic.ttf b/Fonts/open-sans/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000..9bc8009 Binary files /dev/null and b/Fonts/open-sans/OpenSans-BoldItalic.ttf differ diff --git a/Fonts/open-sans/OpenSans-ExtraBold.ttf b/Fonts/open-sans/OpenSans-ExtraBold.ttf new file mode 100644 index 0000000..21f6f84 Binary files /dev/null and b/Fonts/open-sans/OpenSans-ExtraBold.ttf differ diff --git a/Fonts/open-sans/OpenSans-ExtraBoldItalic.ttf b/Fonts/open-sans/OpenSans-ExtraBoldItalic.ttf new file mode 100644 index 0000000..31cb688 Binary files /dev/null and b/Fonts/open-sans/OpenSans-ExtraBoldItalic.ttf differ diff --git a/Fonts/open-sans/OpenSans-Italic.ttf b/Fonts/open-sans/OpenSans-Italic.ttf new file mode 100644 index 0000000..c90da48 Binary files /dev/null and b/Fonts/open-sans/OpenSans-Italic.ttf differ diff --git a/Fonts/open-sans/OpenSans-Light.ttf b/Fonts/open-sans/OpenSans-Light.ttf new file mode 100644 index 0000000..0d38189 Binary files /dev/null and b/Fonts/open-sans/OpenSans-Light.ttf differ diff --git a/Fonts/open-sans/OpenSans-LightItalic.ttf b/Fonts/open-sans/OpenSans-LightItalic.ttf new file mode 100644 index 0000000..68299c4 Binary files /dev/null and b/Fonts/open-sans/OpenSans-LightItalic.ttf differ diff --git a/Fonts/open-sans/OpenSans-Regular.ttf b/Fonts/open-sans/OpenSans-Regular.ttf new file mode 100644 index 0000000..db43334 Binary files /dev/null and b/Fonts/open-sans/OpenSans-Regular.ttf differ diff --git a/Fonts/open-sans/OpenSans-Semibold.ttf b/Fonts/open-sans/OpenSans-Semibold.ttf new file mode 100644 index 0000000..1a7679e Binary files /dev/null and b/Fonts/open-sans/OpenSans-Semibold.ttf differ diff --git a/Fonts/open-sans/OpenSans-SemiboldItalic.ttf b/Fonts/open-sans/OpenSans-SemiboldItalic.ttf new file mode 100644 index 0000000..59b6d16 Binary files /dev/null and b/Fonts/open-sans/OpenSans-SemiboldItalic.ttf differ diff --git a/Fonts/raleway/Raleway-Bold.otf b/Fonts/raleway/Raleway-Bold.otf new file mode 100644 index 0000000..2f840b7 Binary files /dev/null and b/Fonts/raleway/Raleway-Bold.otf differ diff --git a/Fonts/raleway/Raleway-ExtraBold.otf b/Fonts/raleway/Raleway-ExtraBold.otf new file mode 100644 index 0000000..133552c Binary files /dev/null and b/Fonts/raleway/Raleway-ExtraBold.otf differ diff --git a/Fonts/raleway/Raleway-ExtraLight.otf b/Fonts/raleway/Raleway-ExtraLight.otf new file mode 100644 index 0000000..4ab05bb Binary files /dev/null and b/Fonts/raleway/Raleway-ExtraLight.otf differ diff --git a/Fonts/raleway/Raleway-Heavy.otf b/Fonts/raleway/Raleway-Heavy.otf new file mode 100644 index 0000000..63c952a Binary files /dev/null and b/Fonts/raleway/Raleway-Heavy.otf differ diff --git a/Fonts/raleway/Raleway-Light.otf b/Fonts/raleway/Raleway-Light.otf new file mode 100644 index 0000000..cb4ff4e Binary files /dev/null and b/Fonts/raleway/Raleway-Light.otf differ diff --git a/Fonts/raleway/Raleway-Medium.otf b/Fonts/raleway/Raleway-Medium.otf new file mode 100644 index 0000000..79786fe Binary files /dev/null and b/Fonts/raleway/Raleway-Medium.otf differ diff --git a/Fonts/raleway/Raleway-Regular.otf b/Fonts/raleway/Raleway-Regular.otf new file mode 100644 index 0000000..871e0f4 Binary files /dev/null and b/Fonts/raleway/Raleway-Regular.otf differ diff --git a/Fonts/raleway/Raleway-SemiBold.otf b/Fonts/raleway/Raleway-SemiBold.otf new file mode 100644 index 0000000..33d19f6 Binary files /dev/null and b/Fonts/raleway/Raleway-SemiBold.otf differ diff --git a/Fonts/raleway/Raleway-Thin.otf b/Fonts/raleway/Raleway-Thin.otf new file mode 100644 index 0000000..13a581d Binary files /dev/null and b/Fonts/raleway/Raleway-Thin.otf differ diff --git a/Fonts/source-code/LICENSE.txt b/Fonts/source-code/LICENSE.txt new file mode 100644 index 0000000..d154618 --- /dev/null +++ b/Fonts/source-code/LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Fonts/source-code/SourceCodePro-Black.ttf b/Fonts/source-code/SourceCodePro-Black.ttf new file mode 100644 index 0000000..0bcfec6 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Black.ttf differ diff --git a/Fonts/source-code/SourceCodePro-BlackIt.ttf b/Fonts/source-code/SourceCodePro-BlackIt.ttf new file mode 100644 index 0000000..36d8bae Binary files /dev/null and b/Fonts/source-code/SourceCodePro-BlackIt.ttf differ diff --git a/Fonts/source-code/SourceCodePro-Bold.ttf b/Fonts/source-code/SourceCodePro-Bold.ttf new file mode 100644 index 0000000..5a5be2f Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Bold.ttf differ diff --git a/Fonts/source-code/SourceCodePro-BoldIt.ttf b/Fonts/source-code/SourceCodePro-BoldIt.ttf new file mode 100644 index 0000000..0b6d212 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-BoldIt.ttf differ diff --git a/Fonts/source-code/SourceCodePro-ExtraLight.ttf b/Fonts/source-code/SourceCodePro-ExtraLight.ttf new file mode 100644 index 0000000..23ff52c Binary files /dev/null and b/Fonts/source-code/SourceCodePro-ExtraLight.ttf differ diff --git a/Fonts/source-code/SourceCodePro-ExtraLightIt.ttf b/Fonts/source-code/SourceCodePro-ExtraLightIt.ttf new file mode 100644 index 0000000..f95a8c4 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-ExtraLightIt.ttf differ diff --git a/Fonts/source-code/SourceCodePro-It.ttf b/Fonts/source-code/SourceCodePro-It.ttf new file mode 100644 index 0000000..437cbe1 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-It.ttf differ diff --git a/Fonts/source-code/SourceCodePro-Light.ttf b/Fonts/source-code/SourceCodePro-Light.ttf new file mode 100644 index 0000000..8dc9fa9 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Light.ttf differ diff --git a/Fonts/source-code/SourceCodePro-LightIt.ttf b/Fonts/source-code/SourceCodePro-LightIt.ttf new file mode 100644 index 0000000..c14dcb3 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-LightIt.ttf differ diff --git a/Fonts/source-code/SourceCodePro-Medium.ttf b/Fonts/source-code/SourceCodePro-Medium.ttf new file mode 100644 index 0000000..5d1579c Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Medium.ttf differ diff --git a/Fonts/source-code/SourceCodePro-MediumIt.ttf b/Fonts/source-code/SourceCodePro-MediumIt.ttf new file mode 100644 index 0000000..bf5dae9 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-MediumIt.ttf differ diff --git a/Fonts/source-code/SourceCodePro-Regular.ttf b/Fonts/source-code/SourceCodePro-Regular.ttf new file mode 100644 index 0000000..c583003 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Regular.ttf differ diff --git a/Fonts/source-code/SourceCodePro-Semibold.ttf b/Fonts/source-code/SourceCodePro-Semibold.ttf new file mode 100644 index 0000000..f57d68c Binary files /dev/null and b/Fonts/source-code/SourceCodePro-Semibold.ttf differ diff --git a/Fonts/source-code/SourceCodePro-SemiboldIt.ttf b/Fonts/source-code/SourceCodePro-SemiboldIt.ttf new file mode 100644 index 0000000..6c7eb45 Binary files /dev/null and b/Fonts/source-code/SourceCodePro-SemiboldIt.ttf differ diff --git a/IEEEabrv.bib b/IEEEabrv.bib new file mode 100644 index 0000000..3589129 --- /dev/null +++ b/IEEEabrv.bib @@ -0,0 +1,518 @@ + +IEEEabrv.bib +V1.14 (2015/08/26) +Copyright (c) 2002-2015 by Michael Shell +See: http://www.michaelshell.org/ +for current contact information. +% Modified by Lieuwe Leene, June 2019 + +BibTeX bibliography string definitions of the ABBREVIATED titles of +IEEE journals and magazines and online publications. + +This file is designed for bibliography styles that require +abbreviated titles and is not for use in bibliographies that +require full-length titles. + +Support sites: +http://www.michaelshell.org/tex/ieeetran/ +http://www.ctan.org/pkg/ieeetran +and/or +http://www.ieee.org/ + +Special thanks to Laura Hyslop, Ken Rawson, Kevin Lisankie and +Mona Mittra of the IEEE for their help in obtaining the information needed +to compile this file. Also, Volker Kuhlmann, Moritz Borgmann, +Yannick Berker, Nicolás Barabino, Chuanren Wu and Santiago Cogollos Borras +kindly provided some corrections and additions. + + +************************************************************************* +Legal Notice: +This code is offered as-is without any warranty either expressed or +implied; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE! +User assumes all risk. +In no event shall the IEEE or any contributor to this code be liable for +any damages or losses, including, but not limited to, incidental, +consequential, or any other damages, resulting from the use or misuse +of any information contained here. + +All comments are the opinions of their respective authors and are not +necessarily endorsed by the IEEE. + +This work is distributed under the LaTeX Project Public License (LPPL) +( http://www.latex-project.org/ ) version 1.3, and may be freely used, +distributed and modified. A copy of the LPPL, version 1.3, is included +in the base LaTeX documentation of all distributions of LaTeX released +2003/12/01 or later. +Retain all contribution notices and credits. +** Modified files should be clearly indicated as such, including ** +** renaming them and changing author support contact information. ** +************************************************************************* + + +USAGE: + +\bibliographystyle{mybstfile} +\bibliography{IEEEabrv,mybibfile} + +where the IEEE titles in the .bib database entries use the strings +defined here. e.g., + + +journal = IEEE_J_AC, + + +to yield "{IEEE} Trans. Automat. Contr." + + +The IEEE uses abbreviated journal titles in their bibliographies - +this file is suitable for work that is to be submitted to the IEEE. + +For work that requires full-length titles, you should use the full +titles provided in the companion file, IEEEfull.bib. + + +** NOTES ** + +1. Journals have been grouped according to subject in order to make it +easier to locate and extract the definitions for related journals - +as most works use references that are confined to a single topic. +Magazines are listed in straight alphabetical order. + +2. String names are closely based on IEEE's own internal acronyms. + +3. Older, out-of-print IEEE titles are included (but not including titles +dating prior to the IEEE's formation from the IRE and AIEE in 1963). + +4. Abbreviations comply with the official specifications of the IEEE. + + + + + + +IEEE Journals + + +aerospace and military +@STRING{IEEE_J_ANNE = "{IEEE} Trans. Aeronaut. Navig. Electron."} +@STRING{IEEE_J_AES = "{IEEE} Trans. Aerosp. Electron. Syst."} +@STRING{IEEE_J_ANE = "{IEEE} Trans. Aerosp. Navig. Electron."} +@STRING{IEEE_J_AS = "{IEEE} Trans. Aerosp."} +@STRING{IEEE_J_AIRE = "{IEEE} Trans. Airborne Electron."} +@STRING{IEEE_J_MIL = "{IEEE} Trans. Mil. Electron."} + + + +autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Trans. Intell. Transp. Syst."} +@STRING{IEEE_J_IV = "{IEEE} Trans. Intell. Veh."} +@STRING{IEEE_J_TTE = "{IEEE} Trans. Transport. Electrific."} +@STRING{IEEE_J_VC = "{IEEE} Trans. Veh. Commun."} +@STRING{IEEE_J_VT = "{IEEE} Trans. Veh. Technol."} + + + +circuits, signals, systems, audio and controls +@STRING{IEEE_J_STSP = "{IEEE} J. Sel. Topics Signal Process."} +@STRING{IEEE_J_SPL = "{IEEE} Signal Process. Lett."} +@STRING{IEEE_J_SYST = "{IEEE} Syst. J."} +@STRING{IEEE_J_ASSP = "{IEEE} Trans. Acoust., Speech, Signal Process."} +@STRING{IEEE_J_AU = "{IEEE} Trans. Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Trans. Audio Electroacoust."} +in 2014 ASL became ASLP +@STRING{IEEE_J_ASLP = "{IEEE/ACM} Trans. Audio, Speech, Language Process."} +@STRING{IEEE_J_ASL = "{IEEE} Audio, Speech, Language Process."} +@STRING{IEEE_J_AC = "{IEEE} Trans. Autom. Control"} +@STRING{IEEE_J_CAS = "{IEEE} Trans. Circuits Syst."} +@STRING{IEEE_J_CASVT = "{IEEE} Trans. Circuits Syst. Video Technol."} +@STRING{IEEE_J_CASI = "{IEEE} Trans. Circuits Syst. {I}"} +@STRING{IEEE_J_CASII = "{IEEE} Trans. Circuits Syst. {II}"} +in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively +@STRING{IEEE_J_CASI_RP = "{IEEE} Trans. Circuits Syst. {I}"} +@STRING{IEEE_J_CASII_EB = "{IEEE} Trans. Circuits Syst. {II}"} +@STRING{IEEE_J_CT = "{IEEE} Trans. Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Trans. Control Syst. Technol."} +@STRING{IEEE_J_ETCAS = "{IEEE} Trans. Emerg. Sel. Topics Circuits Syst."} +@STRING{IEEE_J_SP = "{IEEE} Trans. Signal Process."} +@STRING{IEEE_J_SU = "{IEEE} Trans. Sonics Ultrason."} +@STRING{IEEE_J_SAP = "{IEEE} Trans. Speech Audio Process."} +@STRING{IEEE_J_UE = "{IEEE} Trans. Ultrason. Eng."} +@STRING{IEEE_J_UFFC = "{IEEE} Trans. Ultrason., Ferroelectr., Freq. Control"} + + + +communications +@STRING{IEEE_J_COML = "{IEEE} Commun. Lett."} +@STRING{IEEE_J_JSAC = "{IEEE} J. Sel. Areas Commun."} +@STRING{IEEE_J_COM = "{IEEE} Trans. Commun."} +@STRING{IEEE_J_COMT = "{IEEE} Trans. Commun. Technol."} +@STRING{IEEE_J_WCOM = "{IEEE} Trans. Wireless Commun."} +@STRING{IEEE_J_WCOML = "{IEEE} Wireless Commun. Lett."} + + + +components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Trans. Adv. Packag."} +@STRING{IEEE_J_CHMT = "{IEEE} Trans. Compon., Hybrids, Manuf. Technol."} +in 2011 CAPT became CPMT +@STRING{IEEE_J_CPMT = "{IEEE} Trans. Compon. Packag. Manuf. Technol."} +@STRING{IEEE_J_CPMTA = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {B}"} +@STRING{IEEE_J_CPMTC = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {C}"} +@STRING{IEEE_J_CAPTS = "{IEEE} Trans. Compon. Packag. Technol."} +@STRING{IEEE_J_CAPT = "{IEEE} Trans. Compon. Packag. Technol."} +@STRING{IEEE_J_CPART = "{IEEE} Trans. Compon. Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Trans. Electron. Packag. Manuf."} +@STRING{IEEE_J_MFT = "{IEEE} Trans. Manuf. Technol."} +@STRING{IEEE_J_PHP = "{IEEE} Trans. Parts, Hybrids, Packag."} +@STRING{IEEE_J_PMP = "{IEEE} Trans. Parts, Mater., Packag."} + + + +CAD +@STRING{IEEE_J_TCAD = "{IEEE} J. Technol. Comput. Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Trans. Comput.-Aided Design Integr. Circuits Syst."} + + + +coding, data, information, knowledge +@STRING{IEEE_J_BD = "{IEEE} Trans. Big Data"} +@STRING{IEEE_J_IFS = "{IEEE} Trans. Inf. Forensics Security"} +@STRING{IEEE_J_IT = "{IEEE} Trans. Inf. Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Trans. Knowl. Data Eng."} + + + +computers, computation, networking and software +@STRING{IEEE_J_CAL = "{IEEE} Comput. Archit. Lett."} +@STRING{IEEE_J_ES = "{IEEE} Embedded Syst. Lett."} +@STRING{IEEE_J_IOT = "{IEEE} Internet Things J."} +@STRING{IEEE_J_XCDC = "{IEEE} J. Explor. Solid-State Computat. Devices Circuits"} +@STRING{IEEE_J_MMCT = "{IEEE} J. Multiscale and Multiphys. Comput. Techn."} +@STRING{IEEE_J_SUSC = "{IEEE} Sustain. Comput."} +@STRING{IEEE_J_CC = "{IEEE} Trans. on Cloud Comput."} +@STRING{IEEE_J_CSS = "{IEEE} Trans. Comput. Social Syst."} +@STRING{IEEE_J_C = "{IEEE} Trans. Comput."} +@STRING{IEEE_J_CNS = "{IEEE} Trans. Control Netw. Syst."} +@STRING{IEEE_J_DSC = "{IEEE} Trans. Depend. Sec. Comput."} +@STRING{IEEE_J_ECOMP = "{IEEE} Trans. Electron. Comput."} +@STRING{IEEE_J_ETC = "{IEEE} Trans. Emerg. Topics Comput."} +@STRING{IEEE_J_EVC = "{IEEE} Trans. Evol. Comput."} +@STRING{IEEE_J_FUZZ = "{IEEE} Trans. Fuzzy Syst."} +@STRING{IEEE_J_MC = "{IEEE} Trans. Mobile Comput."} +@STRING{IEEE_J_MSCS = "{IEEE} Trans. Multi-Scale Comput. Syst."} +@STRING{IEEE_J_NET = "{IEEE/ACM} Trans. Netw."} +@STRING{IEEE_J_NSE = "{IEEE} Trans. Netw. Sci. Eng."} +@STRING{IEEE_J_NSM = "{IEEE} Trans. Netw. Service Manag."} +@STRING{IEEE_J_NN = "{IEEE} Trans. Neural Netw."} +in 2012 NN became NNLS +@STRING{IEEE_J_NNLS = "{IEEE} Trans. Neural Netw. Learn. Syst."} +@STRING{IEEE_J_PDS = "{IEEE} Trans. Parallel Distrib. Syst."} +@STRING{IEEE_J_SC = "{IEEE} Trans. Serv. Comput."} +@STRING{IEEE_J_SIPN = "{IEEE} Trans. Signal Inf. Process. Netw."} +@STRING{IEEE_J_SE = "{IEEE} Trans. Softw. Eng."} + + + +computer graphics, imaging, and multimedia +@STRING{IEEE_J_JDT = "{IEEE/OSA} J. Display Technol."} +@STRING{IEEE_J_IP = "{IEEE} Trans. Image Process."} +@STRING{IEEE_J_MM = "{IEEE} Trans. Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Trans. Vis. Comput. Graphics"} + + + +cybernetics, ergonomics, robots, man-machine, artificial intelligence and automation +@STRING{IEEE_J_JAS = "{IEEE/CAA} J. Autom. Sinica"} +@STRING{IEEE_J_JRA = "{IEEE} J. Robot. Autom."} +@STRING{IEEE_J_AFFC = "{IEEE} Trans. Affect. Comput."} +@STRING{IEEE_J_ASE = "{IEEE} Trans. Autom. Sci. Eng."} +@STRING{IEEE_J_AMD = "{IEEE} Trans. Auton. Mental Develop."} +@STRING{IEEE_J_CCN = "{IEEE} Trans. on Cogn. Commun. Netw."} +in 2015 AMD became CDS +@STRING{IEEE_J_CDS = "{IEEE} Trans. Cogn. Develop. Syst."} +@STRING{IEEE_J_CIAIG = "{IEEE} Trans. Comput. Intell. {AI} in Games"} +in 2013 SMCB became CYB +@STRING{IEEE_J_CYB = "{IEEE} Trans. Cybern."} +@STRING{IEEE_J_H = "{IEEE} Trans. Haptics"} +@STRING{IEEE_J_HFE = "{IEEE} Trans. Hum. Factors Electron."} +in 2013 SMCC became HMS +@STRING{IEEE_J_HMS = "{IEEE} Trans. Human-Mach. Syst."} +@STRING{IEEE_J_MMS = "{IEEE} Trans. Man-Mach. Syst."} +@STRING{IEEE_J_PAMI = "{IEEE} Trans. Pattern Anal. Mach. Intell."} +in 1989 JRA became RA +in August 2004, RA split into ASE and RO +@STRING{IEEE_J_RA = "{IEEE} Trans. Robot. Autom."} +@STRING{IEEE_J_RAL = "{IEEE} Robot. Autom. Lett."} +@STRING{IEEE_J_RO = "{IEEE} Trans. Robot."} +@STRING{IEEE_J_SMC = "{IEEE} Trans. Syst., Man, Cybern."} +@STRING{IEEE_J_SMCA = "{IEEE} Trans. Syst., Man, Cybern. {A}"} +@STRING{IEEE_J_SMCB = "{IEEE} Trans. Syst., Man, Cybern. {B}"} +@STRING{IEEE_J_SMCC = "{IEEE} Trans. Syst., Man, Cybern. {C}"} +in 2012 SMCA became SMCS +@STRING{IEEE_J_SMCS = "{IEEE} Trans. Syst., Man, Cybern., Syst."} +@STRING{IEEE_J_SSC = "{IEEE} Trans. Syst. Sci. Cybern."} + + + +earth, wind, fire and water +@STRING{IEEE_J_GRSL = "{IEEE} Geosci. Remote Sens. Lett."} +@STRING{IEEE_J_GE = "{IEEE} Trans. Geosci. Electron."} +@STRING{IEEE_J_GRS = "{IEEE} Trans. Geosci. Remote Sens."} +@STRING{IEEE_J_OE = "{IEEE} J. Ocean. Eng."} +@STRING{IEEE_J_STARS = "{IEEE} J. Sel. Topics Appl. Earth Observ. Remote Sens."} + + + +education, engineering, history, IEEE, professional +@STRING{IEEE_J_CJECE = "Canadian J. Elect. Comput. Eng."} +@STRING{IEEE_J_PROC = "Proc. {IEEE}"} +@STRING{IEEE_J_RITA = "{IEEE} Revista Iberoamericana de Technolog{\'{i}}as del Aprendizaje"} +@STRING{IEEE_J_EDU = "{IEEE} Trans. Educ."} +@STRING{IEEE_J_EM = "{IEEE} Trans. Eng. Manag."} +@STRING{IEEE_J_EWS = "{IEEE} Trans. Eng. Writing Speech"} +@STRING{IEEE_J_LT = "{IEEE} Trans. Learn. Technol."} +@STRING{IEEE_J_PC = "{IEEE} Trans. Prof. Commun."} + + + +electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas Wireless Propag. Lett."} +@STRING{IEEE_J_MAGL = "{IEEE} Magn. Lett."} +@STRING{IEEE_J_MGWL = "{IEEE} Microw. Guided Wave Lett."} +@STRING{IEEE_J_MWCL = "{IEEE} Microw. Wireless Compon. Lett."} +@STRING{IEEE_J_RFIC = "{IEEE} {RFIC} J."} +@STRING{IEEE_J_RFID = "{IEEE} {RFID} J."} +@STRING{IEEE_J_AP = "{IEEE} Trans. Antennas Propag."} +@STRING{IEEE_J_EMC = "{IEEE} Trans. Electromagn. Compat."} +@STRING{IEEE_J_MAG = "{IEEE} Trans. Magn."} +@STRING{IEEE_J_MTT = "{IEEE} Trans. Microw. Theory Techn."} +@STRING{IEEE_J_RFI = "{IEEE} Trans. Radio Freq. Interference"} +@STRING{IEEE_J_TTHZ = "{IEEE} Trans. {THz} Sci. Technol."} +@STRING{IEEE_J_TJMJ = "{IEEE} Transl. J. Magn. Jpn."} + + + +energy, power and conversion +@STRING{IEEE_J_PHOT = "{IEEE} J. Photovolt."} +@STRING{IEEE_J_PEL = "{IEEE} Power Electron. Lett."} +@STRING{IEEE_J_PETS = "{IEEE} Power Energy Technol. Syst. J."} +@STRING{IEEE_J_ESTPE = "{IEEE} Trans. Emerg. Sel. Topics Power Electron."} +@STRING{IEEE_J_EC = "{IEEE} Trans. Energy Convers."} +@STRING{IEEE_J_PWRAS = "{IEEE} Trans. Power App. Syst."} +@STRING{IEEE_J_PWRD = "{IEEE} Trans. Power Del."} +@STRING{IEEE_J_PWRE = "{IEEE} Trans. Power Electron."} +@STRING{IEEE_J_PWRS = "{IEEE} Trans. Power Syst."} +@STRING{IEEE_J_SG = "{IEEE} Trans. Smart Grid"} +@STRING{IEEE_J_STE = "{IEEE} Trans. Sustain. Energy"} + + + +industrial, commercial and consumer +@STRING{IEEE_J_PSE = "{IEEE} J. Product Safety Eng."} +@STRING{IEEE_J_APPIND = "{IEEE} Trans. Appl. Ind."} +@STRING{IEEE_J_BC = "{IEEE} Trans. Broadcast."} +@STRING{IEEE_J_BCTV = "{IEEE} Trans. Broadcast Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Trans. Consum. Electron."} +@STRING{IEEE_J_IE = "{IEEE} Trans. Ind. Electron."} +@STRING{IEEE_J_IECI = "{IEEE} Trans. Ind. Electron. Contr. Instrum."} +@STRING{IEEE_J_IA = "{IEEE} Trans. Ind. Appl."} +@STRING{IEEE_J_IGA = "{IEEE} Trans. Ind. Gen. Appl."} +@STRING{IEEE_J_IINF = "{IEEE} Trans. Ind. Informat."} + + + +instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Trans. Instrum. Meas."} + + + +insulation and materials +@STRING{IEEE_J_JEM = "{IEEE/TMS} J. Electron. Mater."} +@STRING{IEEE_J_DEI = "{IEEE} Trans. Dielectr. Electr. Insul."} +@STRING{IEEE_J_EI = "{IEEE} Trans. Electr. Insul."} + + + +mechanical +@STRING{IEEE_J_MEMS = "J. Microelectromech. Syst."} +in 2014 MEMS became MEMSI +@STRING{IEEE_J_MEMSI = "J. Microelectromech. Syst."} +@STRING{IEEE_J_MECH = "{IEEE/ASME} Trans. Mechatronics"} + + + +medical and biological +@STRING{IEEE_J_BHI = "{IEEE} J. Biomed. Health Inform."} +@STRING{IEEE_J_TEHM = "{IEEE} J. Transl. Eng. Health Med."} +@STRING{IEEE_J_LS = "{IEEE} Life Sci. Lett."} +@STRING{IEEE_J_RBME = "{IEEE} Rev. Biomed. Eng."} +@STRING{IEEE_J_BCAS = "{IEEE} Trans. Biomed. Circuits Syst."} +@STRING{IEEE_J_BMELC = "{IEEE} Trans. Bio-Med. Electron."} +B-ME later dropped the hyphen and became the BME +@STRING{IEEE_J_BME = "{IEEE} Trans. Biomed. Eng."} +@STRING{IEEE_J_B-ME = "{IEEE} Trans. Bio-Med. Eng."} +@STRING{IEEE_J_CBB = "{IEEE/ACM} Trans. Comput. Biol. Bioinformatics"} +@STRING{IEEE_J_ITBM = "{IEEE} Trans. Inf. Technol. Biomed."} +@STRING{IEEE_J_ME = "{IEEE} Trans. Med. Electron."} +@STRING{IEEE_J_MI = "{IEEE} Trans. Med. Imag."} +@STRING{IEEE_J_MBSC = "{IEEE} Trans. Mol. Biol. Multi-Scale Commun."} +@STRING{IEEE_J_NB = "{IEEE} Trans. Nanobiosci."} +@STRING{IEEE_J_NSRE = "{IEEE} Trans. Neural Syst. Rehabil. Eng."} +@STRING{IEEE_J_RE = "{IEEE} Trans. Rehabil. Eng."} + + + +optics, lightwave and photonics +@STRING{IEEE_J_JLT = "J. Lightw. Technol."} +@STRING{IEEE_J_OCN = "{IEEE} J. Opt. Commun. Netw."} +@STRING{IEEE_J_PJ = "{IEEE} Photon. J."} +@STRING{IEEE_J_PTL = "{IEEE} Photon. Technol. Lett."} + + + +physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Lett."} +@STRING{IEEE_J_EDS = "{IEEE} J. Electron Devices Soc."} +@STRING{IEEE_J_JQE = "{IEEE} J. Quantum Electron."} +@STRING{IEEE_J_JSTQE = "{IEEE} J. Sel. Topics Quantum Electron."} +@STRING{IEEE_J_ENANO = "{IEEE} Nanotechnol. Express"} +@STRING{IEEE_J_ED = "{IEEE} Trans. Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Trans. Nanotechnol."} +@STRING{IEEE_J_NS = "{IEEE} Trans. Nucl. Sci."} +@STRING{IEEE_J_PS = "{IEEE} Trans. Plasma Sci."} + + + +reliability +@STRING{IEEE_J_DMR = "{IEEE} Trans. Device Mater. Rel."} +@STRING{IEEE_J_R = "{IEEE} Trans. Rel."} + + + +semiconductors, superconductors, electrochemical and solid state +@STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochem. Solid-State Lett."} +@STRING{IEEE_J_JSSC = "{IEEE} J. Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Trans. Appl. Supercond."} +@STRING{IEEE_J_SM = "{IEEE} Trans. Semicond. Manuf."} + + + +sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors J."} + + + +VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Trans. {VLSI} Syst."} + + + + + + +IEEE Magazines and Online Publications + + +@STRING{IEEE_O_ACC = "{IEEE} Access"} +@STRING{IEEE_M_AES = "{IEEE} Aerosp. Electron. Syst. Mag."} +@STRING{IEEE_M_HIST = "{IEEE} Ann. Hist. Comput."} +@STRING{IEEE_M_AP = "{IEEE} Antennas Propag. Mag."} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Mag."} +@STRING{IEEE_M_CHINAC = "China Commun."} +@STRING{IEEE_M_CD = "{IEEE} Circuits Devices Mag."} +@STRING{IEEE_M_CAS = "{IEEE} Circuits Syst. Mag."} +@STRING{IEEE_M_COM = "{IEEE} Commun. Mag."} +@STRING{IEEE_M_COMSOC = "{IEEE} Commun. Soc. Mag."} +@STRING{IEEE_O_CSTO = "{IEEE} Commun. Surveys Tuts."} +@STRING{IEEE_M_CIM = "{IEEE} Comput. Intell. Mag."} +CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Comput. Sci. Eng."} +@STRING{IEEE_M_CSEM = "{IEEE} Comput. Sci. Eng. Mag."} +@STRING{IEEE_M_C = "Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Comput. Appl. Power"} +@STRING{IEEE_M_CGA = "{IEEE} Comput. Graph. Appl."} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Syst. Mag."} +in 2012 DTC became DT +@STRING{IEEE_M_DT = "{IEEE} Des. Test"} +@STRING{IEEE_M_DTC = "{IEEE} Des. Test. Comput."} +@STRING{IEEE_O_DSO = "{IEEE} Distrib. Syst. Online"} +@STRING{IEEE_M_EI = "{IEEE} Electr. Insul. Mag."} +@STRING{IEEE_M_ETF = "{IEEE} Electrific. Mag."} +@STRING{IEEE_M_EMC = "{IEEE} Electromagn. Compat."} +@STRING{IEEE_M_ETR = "{IEEE} ElectroTechnol. Rev."} +@STRING{IEEE_M_EMR = "{IEEE} Eng. Manag. Rev."} +@STRING{IEEE_M_EMB = "{IEEE} Eng. Med. Biol. Mag."} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_GRS = "{IEEE} Geosci. Remote Sens. Mag."} +@STRING{IEEE_M_IA = "{IEEE} Ind. Appl. Mag."} +@STRING{IEEE_M_IE = "{IEEE} Ind. Electron. Mag."} +@STRING{IEEE_M_IM = "{IEEE} Instrum. Meas. Mag."} +@STRING{IEEE_M_IS = "{IEEE} Intell. Syst."} +@STRING{IEEE_M_ITS = "{IEEE} Intell. Transp. Syst. Mag."} +@STRING{IEEE_M_IC = "{IEEE} Internet Comput."} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Prof."} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microw. Mag."} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NANO = "{IEEE} Nanotechnol. Mag."} +@STRING{IEEE_M_NET = "{IEEE} Netw."} +IEEE's editorial manual lists "Pers. Commun.", +but "Personal Commun. Mag." seems to be what is used in the journals +@STRING{IEEE_M_PCOM = "{IEEE} Personal Commun. Mag."} +@STRING{IEEE_M_PVC = "{IEEE} Pervasive Comput."} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +@STRING{IEEE_M_PEL = "{IEEE} Power Electron. Mag."} +CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power Energy Mag."} +@STRING{IEEE_M_PER = "{IEEE} Power Eng. Rev."} +@STRING{IEEE_M_PULSE = "{IEEE} Pulse"} +@STRING{IEEE_M_RA = "{IEEE} Robot. Autom. Mag."} +@STRING{IEEE_M_SAP = "{IEEE} Security Privacy"} +@STRING{IEEE_M_SP = "{IEEE} Signal Process. Mag."} +@STRING{IEEE_M_S = "{IEEE} Softw."} +@STRING{IEEE_M_SSC = "{IEEE} Solid-State Circuits Mag."} +@STRING{IEEE_M_SPECT = "{IEEE} Spectr."} +@STRING{IEEE_M_SMC = "{IEEE} Syst., Man, Cybern. Mag."} +@STRING{IEEE_M_TS = "{IEEE} Technol. Soc. Mag."} +@STRING{IEEE_M_VT = "{IEEE} Veh. Technol. Mag."} +@STRING{IEEE_M_WC = "{IEEE} Wireless Commun."} +@STRING{IEEE_M_TODAY = "Today's Engineer"} + + + +Extended Details + +IEEE Conference Publications + +@STRING{IEEE_C_ICECS = "{IEEE} Proc. ICECS"} +@STRING{IEEE_C_BIOCAS = "{IEEE} Proc. BIOCAS"} +@STRING{IEEE_C_ISCAS = "{IEEE} Proc. ISCAS"} +@STRING{IEEE_C_ISSCC = "{IEEE} Proc. ISSCC"} +@STRING{IEEE_C_ASYNC = "{IEEE} Proc. ASYNC"} +@STRING{IEEE_C_NANOARCH = "{IEEE} Proc. NANOARCH"} +@STRING{IEEE_C_CICC = "{IEEE} Proc. CICC"} +@STRING{IEEE_C_BSN = "{IEEE} Proc. BSN "} +@STRING{IEEE_C_ICCD = "{IEEE} Proc. ICCD"} +@STRING{IEEE_C_CNE = "{IEEE} Proc. NER"} +@STRING{IEEE_C_IEMBS = "{IEEE} Proc. EMBS"} +@STRING{IEEE_C_IEDM = "{IEEE} Proc. IEDM"} +@STRING{IEEE_C_VLSI = "{IEEE} Proc. VLSI"} +@STRING{IEEE_C_ESSCIRC = "{IEEE} Proc. ESSCIRC"} +@STRING{IEEE_C_ICCAD = "{IEEE} Proc. ICCAD"} +@STRING{IEEE_C_ISOCC = "{IEEE} Proc. ISOCC"} + +IEEE Workshop Publications + +@STRING{IEEE_W_PHYCMP = "{IEEE} Proc. PHYCMP"} + +Other Conference Publications + +@STRING{IET_C_CDS = "{IET} Proc. CDS"} +@STRING{IET_J_LTTR = "{IET} Elec. Letters"} + +-- +EOF diff --git a/IEEEbst.bib b/IEEEbst.bib new file mode 100644 index 0000000..dbc2982 --- /dev/null +++ b/IEEEbst.bib @@ -0,0 +1,16 @@ +% Default BST CTL configuration + +@IEEEtranBSTCTL{IEEEexample:BSTcontrol, +CTLuse_article_number = "yes", +CTLuse_paper = "yes", +CTLuse_forced_etal = "yes", +CTLuse_url = "yes", +CTLmax_names_forced_etal = "4", +CTLnames_show_etal = "1", +CTLuse_alt_spacing = "yes", +CTLalt_stretch_factor = "4", +CTLdash_repeated_names = "no", +CTLname_format_string = "{f.~}{vv~}{ll}{, jj}", +CTLname_latex_cmd = "", +CTLname_url_prefix = "[Online]:" +} diff --git a/IEEEfull.bib b/IEEEfull.bib new file mode 100755 index 0000000..c5fbebe --- /dev/null +++ b/IEEEfull.bib @@ -0,0 +1,514 @@ + +IEEEfull.bib +V1.14 (2015/08/28) +Copyright (c) 2002-2015 by Michael Shell +See: http://www.michaelshell.org/ +for current contact information. +% Modified by Lieuwe Leene, June 2019 + +BibTeX bibliography string definitions of the FULL titles of +IEEE journals and magazines and online publications. + +This file is designed for bibliography styles that require +full-length titles and is not for use in bibliographies that +abbreviate titles. + +Support sites: +http://www.michaelshell.org/tex/ieeetran/ +http://www.ctan.org/pkg/ieeetran +and/or +http://www.ieee.org/ + +Special thanks to Laura Hyslop, Ken Rawson, Kevin Lisankie and +Mona Mittra of the IEEE for their help in obtaining the information needed +to compile this file. Also, Volker Kuhlmann, Moritz Borgmann, +Yannick Berker, Nicolás Barabino, Chuanren Wu and Santiago Cogollos Borras +kindly provided some corrections and additions. + + +************************************************************************* +Legal Notice: +This code is offered as-is without any warranty either expressed or +implied; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE! +User assumes all risk. +In no event shall the IEEE or any contributor to this code be liable for +any damages or losses, including, but not limited to, incidental, +consequential, or any other damages, resulting from the use or misuse +of any information contained here. + +All comments are the opinions of their respective authors and are not +necessarily endorsed by the IEEE. + +This work is distributed under the LaTeX Project Public License (LPPL) +( http://www.latex-project.org/ ) version 1.3, and may be freely used, +distributed and modified. A copy of the LPPL, version 1.3, is included +in the base LaTeX documentation of all distributions of LaTeX released +2003/12/01 or later. +Retain all contribution notices and credits. +** Modified files should be clearly indicated as such, including ** +** renaming them and changing author support contact information. ** +************************************************************************* + + +USAGE: + +\bibliographystyle{mybstfile} +\bibliography{IEEEfull,mybibfile} + +where the IEEE titles in the .bib database entries use the strings +defined here. e.g., + + +journal = IEEE_J_AC, + + +to yield "{IEEE} Transactions on Automatic Control" + + +WARNING: The IEEE uses abbreviated journal titles in their bibliographies! +Because this file provides the full titles, you should NOT use this file +for work that is to be submitted to the IEEE. + +For IEEE work, you should use the abbreviated titles provided in the +companion file, IEEEabrv.bib. + + +** NOTES ** + +1. Journals have been grouped according to subject in order to make it +easier to locate and extract the definitions for related journals - +as most works use references that are confined to a single topic. +Magazines are listed in straight alphabetical order. + +2. String names are closely based on IEEE's own internal acronyms. + +3. Older, out-of-print IEEE titles are included (but not including titles +dating prior to the IEEE's formation from the IRE and AIEE in 1963). + + + + + + +IEEE Journals + + +aerospace and military +@STRING{IEEE_J_ANNE = "{IEEE} Transactions on Aeronautical and Navigational Electronics"} +@STRING{IEEE_J_AES = "{IEEE} Transactions on Aerospace and Electronic Systems"} +@STRING{IEEE_J_ANE = "{IEEE} Transactions on Aerospace and Navigational Electronics"} +@STRING{IEEE_J_AS = "{IEEE} Transactions on Aerospace"} +@STRING{IEEE_J_AIRE = "{IEEE} Transactions on Airborne Electronics"} +@STRING{IEEE_J_MIL = "{IEEE} Transactions on Military Electronics"} + + + +autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Transactions on Intelligent Transportation Systems"} +@STRING{IEEE_J_IV = "{IEEE} Transactions on Intelligent Vehicles"} +@STRING{IEEE_J_TTE = "{IEEE} Transactions on Transportation Electrification"} +@STRING{IEEE_J_VC = "{IEEE} Transactions on Vehicular Communications"} +@STRING{IEEE_J_VT = "{IEEE} Transactions on Vehicular Technology"} + + + +circuits, signals, systems, audio and controls +@STRING{IEEE_J_STSP = "{IEEE} Journal of Selected Topics in Signal Processing"} +@STRING{IEEE_J_SPL = "{IEEE} Signal Processing Letters"} +@STRING{IEEE_J_SYST = "{IEEE} Systems Journal"} +@STRING{IEEE_J_ASSP = "{IEEE} Transactions on Acoustics, Speech, and Signal Processing"} +@STRING{IEEE_J_AU = "{IEEE} Transactions on Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Transactions on Audio and Electroacoustics"} +in 2014 ASL became ASLP +@STRING{IEEE_J_ASLP = "{IEEE/ACM} Transactions on Audio, Speech, and Language Processing"} +@STRING{IEEE_J_ASL = "{IEEE} Transactions on Audio, Speech, and Language Processing"} +@STRING{IEEE_J_AC = "{IEEE} Transactions on Automatic Control"} +@STRING{IEEE_J_CAS = "{IEEE} Transactions on Circuits and Systems"} +@STRING{IEEE_J_CASVT = "{IEEE} Transactions on Circuits and Systems for Video Technology"} +@STRING{IEEE_J_CASI = "{IEEE} Transactions on Circuits and Systems---Part {I}: Fundamental Theory and Applications"} +@STRING{IEEE_J_CASII = "{IEEE} Transactions on Circuits and Systems---Part {II}: Analog and Digital Signal Processing"} +in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively +@STRING{IEEE_J_CASI_RP = "{IEEE} Transactions on Circuits and Systems---Part {I}: Regular Papers"} +@STRING{IEEE_J_CASII_EB = "{IEEE} Transactions on Circuits and Systems---Part {II}: Express Briefs"} +@STRING{IEEE_J_CT = "{IEEE} Transactions on Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Transactions on Control Systems Technology"} +@STRING{IEEE_J_ETCAS = "{IEEE} Transactions on Emerging and Selected Topics in Circuits and Systems"} +@STRING{IEEE_J_SP = "{IEEE} Transactions on Signal Processing"} +@STRING{IEEE_J_SU = "{IEEE} Transactions on Sonics and Ultrasonics"} +@STRING{IEEE_J_SAP = "{IEEE} Transactions on Speech and Audio Processing"} +@STRING{IEEE_J_UE = "{IEEE} Transactions on Ultrasonics Engineering"} +@STRING{IEEE_J_UFFC = "{IEEE} Transactions on Ultrasonics, Ferroelectrics, and Frequency Control"} + + + +communications +@STRING{IEEE_J_COML = "{IEEE} Communications Letters"} +@STRING{IEEE_J_JSAC = "{IEEE} Journal on Selected Areas in Communications"} +@STRING{IEEE_J_COM = "{IEEE} Transactions on Communications"} +@STRING{IEEE_J_COMT = "{IEEE} Transactions on Communication Technology"} +@STRING{IEEE_J_WCOM = "{IEEE} Transactions on Wireless Communications"} +@STRING{IEEE_J_WCOML = "{IEEE} Wireless Communications Letters"} + + + +components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Transactions on Advanced Packaging"} +@STRING{IEEE_J_CHMT = "{IEEE} Transactions on Components, Hybrids and Manufacturing Technology"} +in 2011 CAPT became CPMT +@STRING{IEEE_J_CPMT = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology"} +@STRING{IEEE_J_CPMTA = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {B}: Advanced Packaging"} +@STRING{IEEE_J_CPMTC = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {C}: Manufacturing"} +@STRING{IEEE_J_CAPTS = "{IEEE} Transactions on Components and Packaging Technologies"} +@STRING{IEEE_J_CAPT = "{IEEE} Transactions on Components and Packaging Technology"} +@STRING{IEEE_J_CPART = "{IEEE} Transactions on Component Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Transactions on Electronics Packaging Manufacturing"} +@STRING{IEEE_J_MFT = "{IEEE} Transactions on Manufacturing Technology"} +@STRING{IEEE_J_PHP = "{IEEE} Transactions on Parts, Hybrids and Packaging"} +@STRING{IEEE_J_PMP = "{IEEE} Transactions on Parts, Materials and Packaging"} + + + +CAD +@STRING{IEEE_J_TCAD = "{IEEE} Journal on Technology in Computer Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Transactions on Computer-Aided Design of Integrated Circuits and Systems"} + + + +coding, data, information, knowledge +@STRING{IEEE_J_BD = "{IEEE} Transactions on Big Data"} +@STRING{IEEE_J_IFS = "{IEEE} Transactions on Information Forensics and Security"} +@STRING{IEEE_J_IT = "{IEEE} Transactions on Information Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Transactions on Knowledge and Data Engineering"} + + + +computers, computation, networking and software +@STRING{IEEE_J_CAL = "{IEEE} Computer Architecture Letters"} +@STRING{IEEE_J_ES = "{IEEE} Embedded Systems Letters"} +@STRING{IEEE_J_IOT = "{IEEE} Internet of Things Journal"} +@STRING{IEEE_J_XCDC = "{IEEE} Journal on Exploratory Solid-State Computational Devices and Circuits"} +@STRING{IEEE_J_MMCT = "{IEEE} Journal on Multiscale and Multiphysics Computational Techniques"} +@STRING{IEEE_J_SUSC = "{IEEE} Sustainable Computing"} +@STRING{IEEE_J_CC = "{IEEE} Transactions on Cloud Computing"} +@STRING{IEEE_J_CSS = "{IEEE} Transactions on Computational Social Systems"} +@STRING{IEEE_J_C = "{IEEE} Transactions on Computers"} +@STRING{IEEE_J_CNS = "{IEEE} Transactions on Control of Network Systems"} +@STRING{IEEE_J_DSC = "{IEEE} Transactions on Dependable and Secure Computing"} +@STRING{IEEE_J_ECOMP = "{IEEE} Transactions on Electronic Computers"} +@STRING{IEEE_J_ETC = "{IEEE} Transactions on Emerging Topics in Computing"} +@STRING{IEEE_J_EVC = "{IEEE} Transactions on Evolutionary Computation"} +@STRING{IEEE_J_FUZZ = "{IEEE} Transactions on Fuzzy Systems"} +@STRING{IEEE_J_MC = "{IEEE} Transactions on Mobile Computing"} +@STRING{IEEE_J_MSCS = "{IEEE} Transactions on Multi-Scale Computing Systems"} +@STRING{IEEE_J_NET = "{IEEE/ACM} Transactions on Networking"} +@STRING{IEEE_J_NSE = "{IEEE} Transactions on Network Science and Engineering"} +@STRING{IEEE_J_NSM = "{IEEE} Transactions on Network and Service Management"} +@STRING{IEEE_J_NN = "{IEEE} Transactions on Neural Networks"} +in 2012 NN became NNLS +@STRING{IEEE_J_NNLS = "{IEEE} Transactions on Neural Networks and Learning Systems"} +@STRING{IEEE_J_PDS = "{IEEE} Transactions on Parallel and Distributed Systems"} +@STRING{IEEE_J_SC = "{IEEE} Transactions on Services Computing"} +@STRING{IEEE_J_SIPN = "{IEEE} Transactions on Signal and Information Processing over Networks"} +@STRING{IEEE_J_SE = "{IEEE} Transactions on Software Engineering"} + + + +computer graphics, imaging, and multimedia +@STRING{IEEE_J_JDT = "{IEEE/OSA} Journal of Display Technology"} +@STRING{IEEE_J_IP = "{IEEE} Transactions on Image Processing"} +@STRING{IEEE_J_MM = "{IEEE} Transactions on Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Transactions on Visualization and Computer Graphics"} + + + +cybernetics, ergonomics, robots, man-machine, artificial intelligence and automation +@STRING{IEEE_J_JAS = "{IEEE/CAA} Journal of Automatica Sinica"} +@STRING{IEEE_J_JRA = "{IEEE} Journal of Robotics and Automation"} +@STRING{IEEE_J_AFFC = "{IEEE} Transactions on Affective Computing"} +@STRING{IEEE_J_ASE = "{IEEE} Transactions on Automation Science and Engineering"} +@STRING{IEEE_J_AMD = "{IEEE} Transactions on Autonomous Mental Development"} +@STRING{IEEE_J_CCN = "{IEEE} Transactions on Cognitive Communications and Networking"} +in 2015 AMD became CDS +@STRING{IEEE_J_CDS = "{IEEE} Transactions on Cognitive and Developmental Systems"} +@STRING{IEEE_J_CIAIG = "{IEEE} Transactions on Computational Intelligence and {AI} in Games"} +in 2013 SMCB became CYB +@STRING{IEEE_J_CYB = "{IEEE} Transactions on Cybernetics"} +@STRING{IEEE_J_H = "{IEEE} Transactions on Haptics"} +@STRING{IEEE_J_HFE = "{IEEE} Transactions on Human Factors in Electronics"} +in 2013 SMCC became HMS +@STRING{IEEE_J_HMS = "{IEEE} Transactions on Human-Machine Systems"} +@STRING{IEEE_J_MMS = "{IEEE} Transactions on Man-Machine Systems"} +@STRING{IEEE_J_PAMI = "{IEEE} Transactions on Pattern Analysis and Machine Intelligence"} +in 1989 JRA became RA +in August 2004, RA split into ASE and RO +@STRING{IEEE_J_RA = "{IEEE} Transactions on Robotics and Automation"} +@STRING{IEEE_J_RAL = "{IEEE} Robotics and Automation Letters"} +@STRING{IEEE_J_RO = "{IEEE} Transactions on Robotics"} +@STRING{IEEE_J_SMC = "{IEEE} Transactions on Systems, Man, and Cybernetics"} +@STRING{IEEE_J_SMCA = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {A}: Systems and Humans"} +@STRING{IEEE_J_SMCB = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {B}: Cybernetics"} +@STRING{IEEE_J_SMCC = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {C}: Applications and Reviews"} +in 2012 SMCA became SMCS +@STRING{IEEE_J_SMCS = "{IEEE} Transactions on Systems, Man, and Cybernetics: Systems"} +@STRING{IEEE_J_SSC = "{IEEE} Transactions on Systems Science and Cybernetics"} + + + +earth, wind, fire and water +@STRING{IEEE_J_GRSL = "{IEEE} Geoscience and Remote Sensing Letters"} +@STRING{IEEE_J_GE = "{IEEE} Transactions on Geoscience Electronics"} +@STRING{IEEE_J_GRS = "{IEEE} Transactions on Geoscience and Remote Sensing"} +@STRING{IEEE_J_OE = "{IEEE} Journal of Oceanic Engineering"} +@STRING{IEEE_J_STARS = "{IEEE} Journal of Selected Topics in Applied Earth Observations and Remote Sensing"} + + + +education, engineering, history, IEEE, professional +@STRING{IEEE_J_CJECE = "Canadian Journal of Electrical and Computer Engineering"} +@STRING{IEEE_J_PROC = "Proceedings of the {IEEE}"} +@STRING{IEEE_J_RITA = "{IEEE} Revista Iberoamericana de Technolog{\'{i}}as del Aprendizaje"} +@STRING{IEEE_J_EDU = "{IEEE} Transactions on Education"} +@STRING{IEEE_J_EM = "{IEEE} Transactions on Engineering Management"} +@STRING{IEEE_J_EWS = "{IEEE} Transactions on Engineering Writing and Speech"} +@STRING{IEEE_J_LT = "{IEEE} Transactions on Learning Technologies"} +@STRING{IEEE_J_PC = "{IEEE} Transactions on Professional Communication"} + + + +electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas and Wireless Propagation Letters"} +@STRING{IEEE_J_MAGL = "{IEEE} Magnetics Letters"} +@STRING{IEEE_J_MGWL = "{IEEE} Microwave and Guided Wave Letters"} +@STRING{IEEE_J_MWCL = "{IEEE} Microwave and Wireless Components Letters"} +@STRING{IEEE_J_RFIC = "{IEEE} {RFIC} Journal"} +@STRING{IEEE_J_RFID = "{IEEE} {RFID} Journal"} +@STRING{IEEE_J_AP = "{IEEE} Transactions on Antennas and Propagation"} +@STRING{IEEE_J_EMC = "{IEEE} Transactions on Electromagnetic Compatibility"} +@STRING{IEEE_J_MAG = "{IEEE} Transactions on Magnetics"} +@STRING{IEEE_J_MTT = "{IEEE} Transactions on Microwave Theory and Techniques"} +@STRING{IEEE_J_RFI = "{IEEE} Transactions on Radio Frequency Interference"} +@STRING{IEEE_J_TTHZ = "{IEEE} Transactions on Terahertz Science and Technology"} +@STRING{IEEE_J_TJMJ = "{IEEE} Translation Journal on Magnetics in Japan"} + + + +energy, power and conversion +@STRING{IEEE_J_PHOT = "{IEEE} Journal of Photovoltaics"} +@STRING{IEEE_J_PEL = "{IEEE} Power Electronics Letters"} +@STRING{IEEE_J_PETS = "{IEEE} Power and Energy Technology Systems Journal"} +@STRING{IEEE_J_ESTPE = "{IEEE} Transactions on Emerging and Selected Topics in Power Electronics"} +@STRING{IEEE_J_EC = "{IEEE} Transactions on Energy Conversion"} +@STRING{IEEE_J_PWRAS = "{IEEE} Transactions on Power Apparatus and Systems"} +@STRING{IEEE_J_PWRD = "{IEEE} Transactions on Power Delivery"} +@STRING{IEEE_J_PWRE = "{IEEE} Transactions on Power Electronics"} +@STRING{IEEE_J_PWRS = "{IEEE} Transactions on Power Systems"} +@STRING{IEEE_J_SG = "{IEEE} Transactions on Smart Grid"} +@STRING{IEEE_J_STE = "{IEEE} Transactions on Sustainable Energy"} + + + +industrial, commercial and consumer +@STRING{IEEE_J_PSE = "{IEEE} Journal of Product Safety Engineering"} +@STRING{IEEE_J_APPIND = "{IEEE} Transactions on Applications and Industry"} +@STRING{IEEE_J_BC = "{IEEE} Transactions on Broadcasting"} +@STRING{IEEE_J_BCTV = "{IEEE} Transactions on Broadcast and Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Transactions on Consumer Electronics"} +@STRING{IEEE_J_IE = "{IEEE} Transactions on Industrial Electronics"} +@STRING{IEEE_J_IECI = "{IEEE} Transactions on Industrial Electronics and Control Instrumentation"} +@STRING{IEEE_J_IA = "{IEEE} Transactions on Industry Applications"} +@STRING{IEEE_J_IGA = "{IEEE} Transactions on Industry and General Applications"} +@STRING{IEEE_J_IINF = "{IEEE} Transactions on Industrial Informatics"} + + + +instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Transactions on Instrumentation and Measurement"} + + + +insulation and materials +@STRING{IEEE_J_JEM = "{IEEE/TMS} Journal of Electronic Materials"} +@STRING{IEEE_J_DEI = "{IEEE} Transactions on Dielectrics and Electrical Insulation"} +@STRING{IEEE_J_EI = "{IEEE} Transactions on Electrical Insulation"} + + + +mechanical +@STRING{IEEE_J_MEMS = "{IEEE/ASME} Journal of Microelectromechanical Systems"} +in 2014 MEMS became MEMSI +@STRING{IEEE_J_MEMSI = "{IEEE} Journal of Microelectromechanical Systems"} +@STRING{IEEE_J_MECH = "{IEEE/ASME} Transactions on Mechatronics"} + + + +medical and biological +@STRING{IEEE_J_BHI = "{IEEE} Journal of Biomedical and Health Informatics"} +@STRING{IEEE_J_TEHM = "{IEEE} Journal of Translational Engineering in Health and Medicine"} +@STRING{IEEE_J_LS = "{IEEE} Life Sciences Letters"} +@STRING{IEEE_J_RBME = "{IEEE} Reviews in Biomedical Engineering"} +@STRING{IEEE_J_BCAS = "{IEEE} Transactions on Biomedical Circuits and Systems"} +@STRING{IEEE_J_BMELC = "{IEEE} Transactions on Bio-Medical Electronics"} +B-ME later dropped the hyphen and became the BME +@STRING{IEEE_J_BME = "{IEEE} Transactions on Biomedical Engineering"} +@STRING{IEEE_J_B-ME = "{IEEE} Transactions on Bio-Medical Engineering"} +@STRING{IEEE_J_CBB = "{IEEE/ACM} Transactions on Computational Biology and Bioinformatics"} +@STRING{IEEE_J_ITBM = "{IEEE} Transactions on Information Technology in Biomedicine"} +@STRING{IEEE_J_ME = "{IEEE} Transactions on Medical Electronics"} +@STRING{IEEE_J_MI = "{IEEE} Transactions on Medical Imaging"} +@STRING{IEEE_J_MBSC = "{IEEE} Transactions on Molecular, Biological and Multi-Scale Communications"} +@STRING{IEEE_J_NB = "{IEEE} Transactions on NanoBioscience"} +@STRING{IEEE_J_NSRE = "{IEEE} Transactions on Neural Systems and Rehabilitation Engineering"} +@STRING{IEEE_J_RE = "{IEEE} Transactions on Rehabilitation Engineering"} + + + +optics, lightwave and photonics +@STRING{IEEE_J_JLT = "{IEEE/OSA} Journal of Lightwave Technology"} +@STRING{IEEE_J_OCN = "{IEEE} Journal of Optical Communications and Networking"} +@STRING{IEEE_J_PJ = "{IEEE} Photonics Journal"} +@STRING{IEEE_J_PTL = "{IEEE} Photonics Technology Letters"} + + + +physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Letters"} +@STRING{IEEE_J_EDS = "{IEEE} Journal of Electron Devices Society"} +@STRING{IEEE_J_JQE = "{IEEE} Journal of Quantum Electronics"} +@STRING{IEEE_J_JSTQE = "{IEEE} Journal of Selected Topics in Quantum Electronics"} +@STRING{IEEE_J_ENANO = "{IEEE} Nanotechnology Express"} +@STRING{IEEE_J_ED = "{IEEE} Transactions on Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Transactions on Nanotechnology"} +@STRING{IEEE_J_NS = "{IEEE} Transactions on Nuclear Science"} +@STRING{IEEE_J_PS = "{IEEE} Transactions on Plasma Science"} + + + +reliability +@STRING{IEEE_J_DMR = "{IEEE} Transactions on Device and Materials Reliability"} +@STRING{IEEE_J_R = "{IEEE} Transactions on Reliability"} + + + +semiconductors, superconductors, electrochemical and solid state +@STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochemical and Solid-State Letters"} +@STRING{IEEE_J_JSSC = "{IEEE} Journal of Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Transactions on Applied Superconductivity"} +@STRING{IEEE_J_SM = "{IEEE} Transactions on Semiconductor Manufacturing"} + + + +sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors Journal"} + + + +VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Transactions on Very Large Scale Integration ({VLSI}) Systems"} + + + + + + +IEEE Magazines and Online Publications + + +@STRING{IEEE_O_ACC = "{IEEE} Access"} +@STRING{IEEE_M_AES = "{IEEE} Aerospace and Electronics Systems Magazine"} +@STRING{IEEE_M_HIST = "{IEEE} Annals of the History of Computing"} +@STRING{IEEE_M_AP = "{IEEE} Antennas and Propagation Magazine"} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Magazine"} +@STRING{IEEE_M_CHINAC = "China Communications Magazine"} +@STRING{IEEE_M_CD = "{IEEE} Circuits and Devices Magazine"} +@STRING{IEEE_M_CAS = "{IEEE} Circuits and Systems Magazine"} +@STRING{IEEE_M_COM = "{IEEE} Communications Magazine"} +@STRING{IEEE_M_COMSOC = "{IEEE} Communications Society Magazine"} +@STRING{IEEE_O_CSTO = "{IEEE} Communications Surveys and Tutorials"} +@STRING{IEEE_M_CIM = "{IEEE} Computational Intelligence Magazine"} +CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Computing in Science and Engineering"} +@STRING{IEEE_M_CSEM = "{IEEE} Computational Science and Engineering Magazine"} +@STRING{IEEE_M_C = "Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Computer Applications in Power"} +@STRING{IEEE_M_CGA = "{IEEE} Computer Graphics and Applications"} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Systems Magazine"} +in 2012 DTC became DT +@STRING{IEEE_M_DT = "{IEEE} Design \&\ Test"} +@STRING{IEEE_M_DTC = "{IEEE} Design and Test of Computers"} +@STRING{IEEE_O_DSO = "{IEEE} Distributed Systems Online"} +@STRING{IEEE_M_EI = "{IEEE} Electrical Insulation Magazine"} +@STRING{IEEE_M_ETF = "{IEEE} Electrification Magazine"} +@STRING{IEEE_M_EMC = "{IEEE} Electromagnetic Compatibility Magazine"} +@STRING{IEEE_M_ETR = "{IEEE} ElectroTechnology Review"} +@STRING{IEEE_M_EMR = "{IEEE} Engineering Management Review"} +@STRING{IEEE_M_EMB = "{IEEE} Engineering in Medicine and Biology Magazine"} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_GRS = "{IEEE} Geoscience and Remote Sensing Magazine"} +@STRING{IEEE_M_IA = "{IEEE} Industry Applications Magazine"} +@STRING{IEEE_M_IE = "{IEEE} Industrial Electronics Magazine"} +@STRING{IEEE_M_IM = "{IEEE} Instrumentation and Measurement Magazine"} +@STRING{IEEE_M_IS = "{IEEE} Intelligent Systems"} +@STRING{IEEE_M_ITS = "{IEEE} Intelligent Transportation Systems Magazine"} +@STRING{IEEE_M_IC = "{IEEE} Internet Computing"} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Professional"} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microwave Magazine"} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NANO = "{IEEE} Nanotechnology Magazine"} +@STRING{IEEE_M_NET = "{IEEE} Network"} +@STRING{IEEE_M_PCOM = "{IEEE} Personal Communications Magazine"} +@STRING{IEEE_M_PVC = "{IEEE} Pervasive Computing"} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +@STRING{IEEE_M_PEL = "{IEEE} Power Electronics Magazine"} +CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power and Energy Magazine"} +@STRING{IEEE_M_PER = "{IEEE} Power Engineering Review"} +@STRING{IEEE_M_PULSE = "{IEEE} Pulse"} +@STRING{IEEE_M_RA = "{IEEE} Robotics and Automation Magazine"} +@STRING{IEEE_M_SAP = "{IEEE} Security and Privacy"} +@STRING{IEEE_M_SP = "{IEEE} Signal Processing Magazine"} +@STRING{IEEE_M_S = "{IEEE} Software"} +@STRING{IEEE_M_SSC = "{IEEE} Solid-State Circuits Magazine"} +@STRING{IEEE_M_SPECT = "{IEEE} Spectrum"} +@STRING{IEEE_M_SMC = "{IEEE} Systems, Man, and Cybernetics Magazine"} +@STRING{IEEE_M_TS = "{IEEE} Technology and Society Magazine"} +@STRING{IEEE_M_VT = "{IEEE} Vehicular Technology Magazine"} +@STRING{IEEE_M_WC = "{IEEE} Wireless Communications"} +@STRING{IEEE_M_TODAY = "Today's Engineer"} + + + +Extended Details + +IEEE Conference Publications + +@STRING{IEEE_C_ICECS = "{IEEE} Proceedings of the International Conference on Electronics, Circuits and Systems"} +@STRING{IEEE_C_BIOCAS = "{IEEE} Proceedings of the Biomedical Circuits and Systems Conference"} +@STRING{IEEE_C_ISCAS = "{IEEE} Proceedings of the International Symposium on Circuits and Systems"} +@STRING{IEEE_C_ISSCC = "{IEEE} Proceedings of the International Solid-State Circuits Conference"} +@STRING{IEEE_C_ASYNC = "{IEEE} Proceedings of the International Symposium on Advanced Research in Asynchronous Circuits and Systems"} +@STRING{IEEE_C_NANOARCH = "{IEEE} Proceedings of the International Symposium on Nanoscale Architectures"} +@STRING{IEEE_C_CICC = "{IEEE} Proceedings of the Custom Integrated Circuits Conference"} +@STRING{IEEE_C_BSN = "{IEEE} Proceedings of the International Conference on Wearable and Implantable Body Sensor Networks"} +@STRING{IEEE_C_ICCD = "{IEEE} Proceedings of the International Conference on Computer Design"} +@STRING{IEEE_C_CNE = "{IEEE} Proceedings of the International Conference on Neural Engineering"} +@STRING{IEEE_C_IEMBS = "{IEEE} Proceedings of the International Conference on Engineering in Medicine and Biology Society"} +@STRING{IEEE_C_IEDM = "{IEEE} Proceedings of the International Electron Devices Meeting"} +@STRING{IEEE_C_VLSI = "{IEEE} Proceedings of the Symposium on VLSI Circuits"} +@STRING{IEEE_C_ESSCIRC = "{IEEE} Proceedings of the European Solid-State Circuits Conference"} +@STRING{IEEE_C_ICCAD = "{IEEE} Proceedings of the International Conference on Computer-Aided Design"} +@STRING{IEEE_C_ISOCC = "{IEEE} Proceedings of the International SoC Design Conference"} + + +@STRING{IEEE_W_PHYCMP = "{IEEE} Proceedings of the Workshop on Physics and Computation "} + +Other Conference Publications + +@STRING{IET_C_CDS = "{IET} Proceedings of the International Conference on Circuits, Devices and Systems"} +@STRING{IET_J_LTTR = "{IET} Electronic Letters"} + +-- +EOF diff --git a/IEEEtran.bst b/IEEEtran.bst new file mode 100644 index 0000000..f9c03d7 --- /dev/null +++ b/IEEEtran.bst @@ -0,0 +1,2409 @@ +%% +%% IEEEtran.bst +%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted) +%% Version 1.14 (2015/08/26) +%% +%% Copyright (c) 2003-2015 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/pkg/ieeetran +%% and/or +%% http://www.ieee.org/ +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall the IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%%************************************************************************* + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +%\def\@bstctlcite[#1]#2{\@bsphack +% \@for\@citeb:=#2\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the display of urls +% #1 enables +FUNCTION {default.is.use.url} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. The IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% The default URL prefix. +FUNCTION {default.name.url.prefix}{ "[Online]. Available:" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.14" } +FUNCTION{bst.file.date} { "2015/08/26" } +FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtran.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, the IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_url + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + CTLname_url_prefix + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.use.url + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd + name.url.prefix} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.use.url 'is.use.url := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := + default.name.url.prefix 'name.url.prefix := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% the IEEE's rather unusual bibliography style. For example, the IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +FUNCTION {bibinfo.check} +{ swap$ duplicate$ missing$ + { pop$ pop$ "" } + { duplicate$ empty$ + { swap$ pop$ } + { swap$ pop$ } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ duplicate$ missing$ + { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } + { duplicate$ empty$ + { swap$ "empty " swap$ * " in " * cite$ * warning$ } + { swap$ pop$ } + if$ + } + if$ +} + + +% The IEEE separates large numbers with more than 4 digits into groups of +% three. The IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% two least significant digits determine the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ "% Generated by IEEEtran.bst, version: " bst.file.version * " (" * bst.file.date * ")" * + write$ newline$ + preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@samestyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand{\BIBforeignlanguage}[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ + "\providecommand{\BIBdecl}{\relax}" + write$ newline$ + "\BIBdecl" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + { is.use.url + { url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$ } + { skip$ } + if$ + } + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + { is.use.url + { url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$ } + { skip$ } + if$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + { skip$ } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " " * bbl.etal emphasize * } + { numnames #2 > + { "," * } + { skip$ } + if$ + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: The IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% The IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + this.to.prev.status + this.status.std + cap.status.std + type duplicate$ empty$ + { pop$ + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ is.use.url + { url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + name.url.prefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ + } + { "" } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, the IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_url + empty$ + { skip$ } + { CTLuse_url + yes.no.to.int + 'is.use.url := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + CTLname_url_prefix + missing$ + { skip$ } + { CTLname_url_prefix + 'name.url.prefix := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {www}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/IEEEtran.cls b/IEEEtran.cls new file mode 100644 index 0000000..8d2b1c6 --- /dev/null +++ b/IEEEtran.cls @@ -0,0 +1,6347 @@ +%% +%% IEEEtran.cls 2015/08/26 version V1.8b +%% +%% This is the IEEEtran LaTeX class for authors of the Institute of +%% Electrical and Electronics Engineers (IEEE) Transactions journals and +%% conferences. +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/pkg/ieeetran +%% and +%% http://www.ieee.org/ +%% +%% Based on the original 1993 IEEEtran.cls, but with many bug fixes +%% and enhancements (from both JVH and MDS) over the 1996/7 version. +%% +%% +%% Contributors: +%% Gerry Murray (1993), Silvano Balemi (1993), +%% Jon Dixon (1996), Peter N"uchter (1996), +%% Juergen von Hagen (2000), and Michael Shell (2001-2014) +%% +%% +%% Copyright (c) 1993-2000 by Gerry Murray, Silvano Balemi, +%% Jon Dixon, Peter N"uchter, +%% Juergen von Hagen +%% and +%% Copyright (c) 2001-2015 by Michael Shell +%% +%% Current maintainer (V1.3 to V1.8b): Michael Shell +%% See: +%% http://www.michaelshell.org/ +%% for current contact information. +%% +%% Special thanks to Peter Wilson (CUA) and Donald Arseneau +%% for allowing the inclusion of the \@ifmtarg command +%% from their ifmtarg LaTeX package. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall the IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%% +%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex, +%% bare_conf.tex, bare_jrnl.tex, bare_conf_compsoc.tex, +%% bare_jrnl_compsoc.tex +%% +%% Major changes to the user interface should be indicated by an +%% increase in the version numbers. If a version is a beta, it will +%% be indicated with a BETA suffix, i.e., 1.4 BETA. +%% Small changes can be indicated by appending letters to the version +%% such as "IEEEtran_v14a.cls". +%% In all cases, \Providesclass, any \typeout messages to the user, +%% \IEEEtransversionmajor and \IEEEtransversionminor must reflect the +%% correct version information. +%% The changes should also be documented via source comments. +%%************************************************************************* +%% +% +% Available class options +% e.g., \documentclass[10pt,conference]{IEEEtran} +% +% *** choose only one from each category *** +% +% 9pt, 10pt, 11pt, 12pt +% Sets normal font size. The default is 10pt. +% +% conference, journal, technote, peerreview, peerreviewca +% determines format mode - conference papers, journal papers, +% correspondence papers (technotes), or peer review papers. The user +% should also select 9pt when using technote. peerreview is like +% journal mode, but provides for a single-column "cover" title page for +% anonymous peer review. The paper title (without the author names) is +% repeated at the top of the page after the cover page. For peer review +% papers, the \IEEEpeerreviewmaketitle command must be executed (will +% automatically be ignored for non-peerreview modes) at the place the +% cover page is to end, usually just after the abstract (keywords are +% not normally used with peer review papers). peerreviewca is like +% peerreview, but allows the author names to be entered and formatted +% as with conference mode so that author affiliation and contact +% information can be easily seen on the cover page. +% The default is journal. +% +% draft, draftcls, draftclsnofoot, final +% determines if paper is formatted as a widely spaced draft (for +% handwritten editor comments) or as a properly typeset final version. +% draftcls restricts draft mode to the class file while all other LaTeX +% packages (i.e., \usepackage{graphicx}) will behave as final - allows +% for a draft paper with visible figures, etc. draftclsnofoot is like +% draftcls, but does not display the date and the word "DRAFT" at the foot +% of the pages. If using one of the draft modes, the user will probably +% also want to select onecolumn. +% The default is final. +% +% letterpaper, a4paper, cspaper +% determines paper size: 8.5in X 11in, 210mm X 297mm or 7.875in X 10.75in. +% Changing the paper size in the standard journal and conference modes +% will not alter the typesetting of the document - only the margins will +% be affected. In particular, documents using the a4paper option will +% have reduced side margins (A4 is narrower than US letter) and a longer +% bottom margin (A4 is longer than US letter). For both cases, the top +% margins will be the same and the text will be horizontally centered. +% For the compsoc conference and draft modes, it is the margins that will +% remain constant, and thus the text area size will vary, with changes in +% the paper size. +% The cspaper option is the special ``trim'' paper size (7.875in x 10.75in) +% used in the actual publication of Computer Society journals. Under +% compsoc journal mode, this option does not alter the typesetting of the +% document. Authors should invoke the cspaper option only if requested to +% do so by the editors of the specific journal they are submitting to. +% For final submission to the IEEE, authors should generally use US letter +% (8.5 X 11in) paper unless otherwise instructed. Note that authors should +% ensure that all post-processing (ps, pdf, etc.) uses the same paper +% specificiation as the .tex document. Problems here are by far the number +% one reason for incorrect margins. IEEEtran will automatically set the +% default paper size under pdflatex (without requiring any change to +% pdftex.cfg), so this issue is more important to dvips users. Fix +% config.ps, config.pdf, or ~/.dvipsrc for dvips, or use the +% dvips -t papersize option instead as needed. For the cspaper option, +% the corresponding dvips paper name is "ieeecs". +% See the testflow documentation +% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/testflow +% for more details on dvips paper size configuration. +% The default is letterpaper. +% +% oneside, twoside +% determines if layout follows single sided or two sided (duplex) +% printing. The only notable change is with the headings at the top of +% the pages. +% The default is oneside. +% +% onecolumn, twocolumn +% determines if text is organized into one or two columns per page. One +% column mode is usually used only with draft papers. +% The default is twocolumn. +% +% comsoc, compsoc, transmag +% Use the format of the IEEE Communications Society, IEEE Computer Society +% or IEEE Transactions on Magnetics, respectively. +% +% romanappendices +% Use the "Appendix I" convention when numbering appendices. IEEEtran.cls +% now defaults to Alpha "Appendix A" convention - the opposite of what +% v1.6b and earlier did. +% +% captionsoff +% disables the display of the figure/table captions. Some IEEE journals +% request that captions be removed and figures/tables be put on pages +% of their own at the end of an initial paper submission. The endfloat +% package can be used with this class option to achieve this format. +% +% nofonttune +% turns off tuning of the font interword spacing. Maybe useful to those +% not using the standard Times fonts or for those who have already "tuned" +% their fonts. +% The default is to enable IEEEtran to tune font parameters. +% +% +%---------- +% Available CLASSINPUTs provided (all are macros unless otherwise noted): +% \CLASSINPUTbaselinestretch +% \CLASSINPUTinnersidemargin +% \CLASSINPUToutersidemargin +% \CLASSINPUTtoptextmargin +% \CLASSINPUTbottomtextmargin +% +% Available CLASSINFOs provided: +% \ifCLASSINFOpdf (TeX if conditional) +% \CLASSINFOpaperwidth (macro) +% \CLASSINFOpaperheight (macro) +% \CLASSINFOnormalsizebaselineskip (length) +% \CLASSINFOnormalsizeunitybaselineskip (length) +% +% Available CLASSOPTIONs provided: +% all class option flags (TeX if conditionals) unless otherwise noted, +% e.g., \ifCLASSOPTIONcaptionsoff +% point size options provided as a single macro: +% \CLASSOPTIONpt +% which will be defined as 9, 10, 11, or 12 depending on the document's +% normalsize point size. +% also, class option peerreviewca implies the use of class option peerreview +% and classoption draft implies the use of class option draftcls + + + + + +\ProvidesClass{IEEEtran}[2015/08/26 V1.8b by Michael Shell] +\typeout{-- See the "IEEEtran_HOWTO" manual for usage information.} +\typeout{-- http://www.michaelshell.org/tex/ieeetran/} +\NeedsTeXFormat{LaTeX2e} + +% IEEEtran.cls version numbers, provided as of V1.3 +% These values serve as a way a .tex file can +% determine if the new features are provided. +% The version number of this IEEEtrans.cls can be obtained from +% these values. i.e., V1.4 +% KEEP THESE AS INTEGERS! i.e., NO {4a} or anything like that- +% (no need to enumerate "a" minor changes here) +\def\IEEEtransversionmajor{1} +\def\IEEEtransversionminor{8} + + +% hook to allow easy changeover to IEEEtran.cls/tools.sty error reporting +\def\@IEEEclspkgerror{\ClassError{IEEEtran}} + + +% These do nothing, but provide them like in article.cls +\newif\if@restonecol +\newif\if@titlepage + + +% class option conditionals +\newif\ifCLASSOPTIONonecolumn \CLASSOPTIONonecolumnfalse +\newif\ifCLASSOPTIONtwocolumn \CLASSOPTIONtwocolumntrue + +\newif\ifCLASSOPTIONoneside \CLASSOPTIONonesidetrue +\newif\ifCLASSOPTIONtwoside \CLASSOPTIONtwosidefalse + +\newif\ifCLASSOPTIONfinal \CLASSOPTIONfinaltrue +\newif\ifCLASSOPTIONdraft \CLASSOPTIONdraftfalse +\newif\ifCLASSOPTIONdraftcls \CLASSOPTIONdraftclsfalse +\newif\ifCLASSOPTIONdraftclsnofoot \CLASSOPTIONdraftclsnofootfalse + +\newif\ifCLASSOPTIONpeerreview \CLASSOPTIONpeerreviewfalse +\newif\ifCLASSOPTIONpeerreviewca \CLASSOPTIONpeerreviewcafalse + +\newif\ifCLASSOPTIONjournal \CLASSOPTIONjournaltrue +\newif\ifCLASSOPTIONconference \CLASSOPTIONconferencefalse +\newif\ifCLASSOPTIONtechnote \CLASSOPTIONtechnotefalse + +\newif\ifCLASSOPTIONnofonttune \CLASSOPTIONnofonttunefalse + +\newif\ifCLASSOPTIONcaptionsoff \CLASSOPTIONcaptionsofffalse + +\newif\ifCLASSOPTIONcomsoc \CLASSOPTIONcomsocfalse +\newif\ifCLASSOPTIONcompsoc \CLASSOPTIONcompsocfalse +\newif\ifCLASSOPTIONtransmag \CLASSOPTIONtransmagfalse + +\newif\ifCLASSOPTIONromanappendices \CLASSOPTIONromanappendicesfalse + + +% class info conditionals + +% indicates if pdf (via pdflatex) output +\newif\ifCLASSINFOpdf \CLASSINFOpdffalse + + +% V1.6b internal flag to show if using a4paper +\newif\if@IEEEusingAfourpaper \@IEEEusingAfourpaperfalse +% V1.6b internal flag to show if using cspaper +\newif\if@IEEEusingcspaper \@IEEEusingcspaperfalse + + +% IEEEtran class scratch pad registers +% dimen +\newdimen\@IEEEtrantmpdimenA +\newdimen\@IEEEtrantmpdimenB +\newdimen\@IEEEtrantmpdimenC +% count +\newcount\@IEEEtrantmpcountA +\newcount\@IEEEtrantmpcountB +\newcount\@IEEEtrantmpcountC +% token list +\newtoks\@IEEEtrantmptoksA + +% we use \CLASSOPTIONpt so that we can ID the point size (even for 9pt docs) +% as well as LaTeX's \@ptsize to retain some compatability with some +% external packages +\def\@ptsize{0} +% LaTeX does not support 9pt, so we set \@ptsize to 0 - same as that of 10pt +\DeclareOption{9pt}{\def\CLASSOPTIONpt{9}\def\@ptsize{0}} +\DeclareOption{10pt}{\def\CLASSOPTIONpt{10}\def\@ptsize{0}} +\DeclareOption{11pt}{\def\CLASSOPTIONpt{11}\def\@ptsize{1}} +\DeclareOption{12pt}{\def\CLASSOPTIONpt{12}\def\@ptsize{2}} + + + +\DeclareOption{letterpaper}{\setlength{\paperwidth}{8.5in}% + \setlength{\paperheight}{11in}% + \@IEEEusingAfourpaperfalse + \@IEEEusingcspaperfalse + \def\CLASSOPTIONpaper{letter}% + \def\CLASSINFOpaperwidth{8.5in}% + \def\CLASSINFOpaperheight{11in}} + + +\DeclareOption{a4paper}{\setlength{\paperwidth}{210mm}% + \setlength{\paperheight}{297mm}% + \@IEEEusingAfourpapertrue + \@IEEEusingcspaperfalse + \def\CLASSOPTIONpaper{a4}% + \def\CLASSINFOpaperwidth{210mm}% + \def\CLASSINFOpaperheight{297mm}} + +% special paper option for compsoc journals +\DeclareOption{cspaper}{\setlength{\paperwidth}{7.875in}% + \setlength{\paperheight}{10.75in}% + \@IEEEusingcspapertrue + \@IEEEusingAfourpaperfalse + \def\CLASSOPTIONpaper{ieeecs}% + \def\CLASSINFOpaperwidth{7.875in}% + \def\CLASSINFOpaperheight{10.75in}} + +\DeclareOption{oneside}{\@twosidefalse\@mparswitchfalse + \CLASSOPTIONonesidetrue\CLASSOPTIONtwosidefalse} +\DeclareOption{twoside}{\@twosidetrue\@mparswitchtrue + \CLASSOPTIONtwosidetrue\CLASSOPTIONonesidefalse} + +\DeclareOption{onecolumn}{\CLASSOPTIONonecolumntrue\CLASSOPTIONtwocolumnfalse} +\DeclareOption{twocolumn}{\CLASSOPTIONtwocolumntrue\CLASSOPTIONonecolumnfalse} + +% If the user selects draft, then this class AND any packages +% will go into draft mode. +\DeclareOption{draft}{\CLASSOPTIONdrafttrue\CLASSOPTIONdraftclstrue + \CLASSOPTIONdraftclsnofootfalse} +% draftcls is for a draft mode which will not affect any packages +% used by the document. +\DeclareOption{draftcls}{\CLASSOPTIONdraftfalse\CLASSOPTIONdraftclstrue + \CLASSOPTIONdraftclsnofootfalse} +% draftclsnofoot is like draftcls, but without the footer. +\DeclareOption{draftclsnofoot}{\CLASSOPTIONdraftfalse\CLASSOPTIONdraftclstrue + \CLASSOPTIONdraftclsnofoottrue} +\DeclareOption{final}{\CLASSOPTIONdraftfalse\CLASSOPTIONdraftclsfalse + \CLASSOPTIONdraftclsnofootfalse} + +\DeclareOption{journal}{\CLASSOPTIONpeerreviewfalse\CLASSOPTIONpeerreviewcafalse + \CLASSOPTIONjournaltrue\CLASSOPTIONconferencefalse\CLASSOPTIONtechnotefalse} + +\DeclareOption{conference}{\CLASSOPTIONpeerreviewfalse\CLASSOPTIONpeerreviewcafalse + \CLASSOPTIONjournalfalse\CLASSOPTIONconferencetrue\CLASSOPTIONtechnotefalse} + +\DeclareOption{technote}{\CLASSOPTIONpeerreviewfalse\CLASSOPTIONpeerreviewcafalse + \CLASSOPTIONjournalfalse\CLASSOPTIONconferencefalse\CLASSOPTIONtechnotetrue} + +\DeclareOption{peerreview}{\CLASSOPTIONpeerreviewtrue\CLASSOPTIONpeerreviewcafalse + \CLASSOPTIONjournalfalse\CLASSOPTIONconferencefalse\CLASSOPTIONtechnotefalse} + +\DeclareOption{peerreviewca}{\CLASSOPTIONpeerreviewtrue\CLASSOPTIONpeerreviewcatrue + \CLASSOPTIONjournalfalse\CLASSOPTIONconferencefalse\CLASSOPTIONtechnotefalse} + +\DeclareOption{nofonttune}{\CLASSOPTIONnofonttunetrue} + +\DeclareOption{captionsoff}{\CLASSOPTIONcaptionsofftrue} + +\DeclareOption{comsoc}{\CLASSOPTIONcomsoctrue\CLASSOPTIONcompsocfalse\CLASSOPTIONtransmagfalse} + +\DeclareOption{compsoc}{\CLASSOPTIONcomsocfalse\CLASSOPTIONcompsoctrue\CLASSOPTIONtransmagfalse} + +\DeclareOption{transmag}{\CLASSOPTIONtransmagtrue\CLASSOPTIONcomsocfalse\CLASSOPTIONcompsocfalse} + +\DeclareOption{romanappendices}{\CLASSOPTIONromanappendicestrue} + + +% default to US letter paper, 10pt, twocolumn, one sided, final, journal +\ExecuteOptions{letterpaper,10pt,twocolumn,oneside,final,journal} +% overrride these defaults per user requests +\ProcessOptions + + + +%% -- Command Argument Scanning Support Functions -- + +% Sets the category codes for punctuation to their normal values. +% For local use with argument scanning. +\def\IEEEnormalcatcodespunct{\catcode`\!=12 \catcode`\,=12 \catcode`\:=12 +\catcode`\;=12 \catcode`\`=12 \catcode`\'=12 \catcode`\"=12 \catcode`\.=12 +\catcode`\/=12 \catcode`\?=12 \catcode`\*=12 \catcode`\+=12 \catcode`\-=12 +\catcode`\<=12 \catcode`\>=12 \catcode`\(=12 \catcode`\)=12 \catcode`\[=12 +\catcode`\]=12 \catcode`\==12 \catcode`\|=12} +% Sets the category codes for numbers to their normal values. +% For local use with argument scanning. +\def\IEEEnormalcatcodesnum{\catcode`\0=12 \catcode`\1=12 \catcode`\2=12 +\catcode`\3=12 \catcode`\4=12 \catcode`\5=12 \catcode`\6=12 \catcode`\7=12 +\catcode`\8=12 \catcode`\9=12} +% combined action of \IEEEnormalcatcodespunct and \IEEEnormalcatcodesnum +\def\IEEEnormalcatcodes{\IEEEnormalcatcodespunct\IEEEnormalcatcodesnum} + + +% usage: \@IEEEextracttoken*{} +% \@IEEEextracttoken fully expands its argument (which it then stores in +% \@IEEEextracttokenarg) via \edef and then the meaning of the first +% nonbrace (but including the empty group) token found is assigned via \let +% to \@IEEEextractedtoken as well as stored in the macro +% \@IEEEextractedtokenmacro. Tokens that would otherwise be discarded during +% the acquisition of the first are stored in \@IEEEextractedtokensdiscarded, +% however their original relative brace nesting depths are not guaranteed to +% be preserved. +% If the argument is empty, or if a first nonbrace token does not exist (or +% is an empty group), \@IEEEextractedtoken will be \relax and +% \@IEEEextractedtokenmacro and \@IEEEextractedtokensdiscarded will be empty. +% +% For example: +% \@IEEEextracttoken{{{ab}{cd}}{{ef}g}} +% results in: +% +% \@IEEEextracttokenarg ==> a macro containing {{ab}{cd}}{{ef}g} +% \@IEEEextractedtoken ==> the letter a +% \@IEEEextractedtokenmacro ==> a macro containing a +% \@IEEEextractedtokensdiscarded ==> a macro containing bcd{ef}g +% +% the *-star form, \@IEEEextracttoken*, does not expand its argument +% contents during processing. +\def\@IEEEextracttoken{\@ifstar{\let\@IEEEextracttokendef=\def\@@IEEEextracttoken}{\let\@IEEEextracttokendef=\edef\@@IEEEextracttoken}} + +\def\@@IEEEextracttoken#1{\@IEEEextracttokendef\@IEEEextracttokenarg{#1}\relax +\def\@IEEEextractedtokensdiscarded{}\relax % initialize to empty +% if the macro is unchanged after being acquired as a single undelimited argument +% with anything after it being stripped off as a delimited argument +% we know we have one token without any enclosing braces. loop until this is true. +\let\@IEEEextracttokencurgroup\@IEEEextracttokenarg +\loop + % trap case of an empty argument as this would cause a problem with + % \@@@IEEEextracttoken's first (nondelimited) argument acquisition + \ifx\@IEEEextracttokencurgroup\@empty + \def\@IEEEextractedtokenmacro{}\relax + \else + \expandafter\@@@IEEEextracttoken\@IEEEextracttokencurgroup\@IEEEgeneralsequenceDELIMITER\relax + \fi + \ifx\@IEEEextractedtokenmacro\@IEEEextracttokencurgroup + \else + \let\@IEEEextracttokencurgroup=\@IEEEextractedtokenmacro +\repeat +% we can safely do a \let= here because there should be at most one token +% the relax is needed to handle the case of no token found +\expandafter\let\expandafter\@IEEEextractedtoken\@IEEEextractedtokenmacro\relax} + +\def\@@@IEEEextracttoken#1#2\@IEEEgeneralsequenceDELIMITER{\def\@IEEEextractedtokenmacro{#1}\relax +\def\@@IEEEextractedtokensdiscarded{#2}\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter +\@IEEEextractedtokensdiscarded\expandafter\expandafter\expandafter +{\expandafter\@@IEEEextractedtokensdiscarded\@IEEEextractedtokensdiscarded}} +%% +%% -- End of Command Argument Scanning Support Functions -- + + + +% Computer Society conditional execution command +\long\def\@IEEEcompsoconly#1{\relax\ifCLASSOPTIONcompsoc\relax#1\relax\fi\relax} +% inverse +\long\def\@IEEEnotcompsoconly#1{\relax\ifCLASSOPTIONcompsoc\else\relax#1\relax\fi\relax} +% compsoc conference +\long\def\@IEEEcompsocconfonly#1{\relax\ifCLASSOPTIONcompsoc\ifCLASSOPTIONconference\relax#1\relax\fi\fi\relax} +% compsoc not conference +\long\def\@IEEEcompsocnotconfonly#1{\relax\ifCLASSOPTIONcompsoc\ifCLASSOPTIONconference\else\relax#1\relax\fi\fi\relax} + + +% comsoc verify that newtxmath, mtpro2, mt11p or mathtime has been loaded +\def\@IEEEcomsocverifymathfont{\typeout{-- Verifying Times compatible math font.}\relax + \@ifpackageloaded{newtxmath}{\typeout{-- newtxmath loaded, OK.}}{\@@IEEEcomsocverifymathfont}} +\def\@@IEEEcomsocverifymathfont{\@ifpackageloaded{mtpro2}{\typeout{-- mtpro2 loaded, OK.}}{\@@@IEEEcomsocverifymathfont}} +\def\@@@IEEEcomsocverifymathfont{\@ifpackageloaded{mt11p}{\typeout{-- mt11p2 loaded, OK.}}{\@@@@IEEEcomsocverifymathfont}} +\def\@@@@IEEEcomsocverifymathfont{\@ifpackageloaded{mathtime}{\typeout{-- mathtime loaded, OK.}}{\@IEEEcomsocenforcemathfont}} + +% comsoc, if a Times math font was not loaded by user, enforce it +\def\@IEEEcomsocenforcemathfont{\typeout{** Times compatible math font not found, forcing.}\relax +\IfFileExists{newtxmath.sty}{\typeout{-- Found newtxmath, loading.}\RequirePackage{newtxmath}}{\@@IEEEcomsocenforcemathfont}} +\def\@@IEEEcomsocenforcemathfont{\IfFileExists{mtpro2.sty}{\typeout{-- Found mtpro2, loading.}\RequirePackage{mtpro2}}{\@@@IEEEcomsocenforcemathfont}} +\def\@@@IEEEcomsocenforcemathfont{\IfFileExists{mt11p.sty}{\typeout{-- Found mt11p, loading.}\RequirePackage{mt11p}}{\@@@@IEEEcomsocenforcemathfont}} +\def\@@@@IEEEcomsocenforcemathfont{\IfFileExists{mathtime.sty}{\typeout{-- Found mathtime, loading.}\RequirePackage{mathtime}}{\@@@@@IEEEcomsocenforcemathfont}} +% if no acceptable Times math font package found, error with newtxmath requirement +\def\@@@@@IEEEcomsocenforcemathfont{\typeout{** No Times compatible math font package found. newtxmath is required.}\RequirePackage{newtxmath}} + + +\ifCLASSOPTIONcomsoc + % ensure that if newtxmath is used, the cmintegrals option is also invoked + \PassOptionsToPackage{cmintegrals}{newtxmath} + % comsoc requires a Times like math font + % ensure this requirement is satisfied at document start + \AtBeginDocument{\@IEEEcomsocverifymathfont} +\fi + + + +% The IEEE uses Times Roman font, so we'll default to Times. +% These three commands make up the entire times.sty package. +\renewcommand{\sfdefault}{phv} +\renewcommand{\rmdefault}{ptm} +\renewcommand{\ttdefault}{pcr} + +% V1.7 compsoc nonconference papers, use Palatino/Palladio as the main text font, +% not Times Roman. +\@IEEEcompsocnotconfonly{\renewcommand{\rmdefault}{ppl}} + +% enable the selected main text font +\normalfont\selectfont + + +\ifCLASSOPTIONcomsoc + \typeout{-- Using IEEE Communications Society mode.} +\fi + +\ifCLASSOPTIONcompsoc + \typeout{-- Using IEEE Computer Society mode.} +\fi + + +% V1.7 conference notice message hook +\def\@IEEEconsolenoticeconference{\typeout{}% +\typeout{** Conference Paper **}% +\typeout{Before submitting the final camera ready copy, remember to:}% +\typeout{}% +\typeout{ 1. Manually equalize the lengths of two columns on the last page}% +\typeout{ of your paper;}% +\typeout{}% +\typeout{ 2. Ensure that any PostScript and/or PDF output post-processing}% +\typeout{ uses only Type 1 fonts and that every step in the generation}% +\typeout{ process uses the appropriate paper size.}% +\typeout{}} + + +% we can send console reminder messages to the user here +\AtEndDocument{\ifCLASSOPTIONconference\@IEEEconsolenoticeconference\fi} + + +% warn about the use of single column other than for draft mode +\ifCLASSOPTIONtwocolumn\else% + \ifCLASSOPTIONdraftcls\else% + \typeout{** ATTENTION: Single column mode is not typically used with IEEE publications.}% + \fi% +\fi + + +% V1.7 improved paper size setting code. +% Set pdfpage and dvips paper sizes. Conditional tests are similar to that +% of ifpdf.sty. Retain within {} to ensure tested macros are never altered, +% even if only effect is to set them to \relax. +% if \pdfoutput is undefined or equal to relax, output a dvips special +{\@ifundefined{pdfoutput}{\AtBeginDvi{\special{papersize=\CLASSINFOpaperwidth,\CLASSINFOpaperheight}}}{% +% pdfoutput is defined and not equal to \relax +% check for pdfpageheight existence just in case someone sets pdfoutput +% under non-pdflatex. If exists, set them regardless of value of \pdfoutput. +\@ifundefined{pdfpageheight}{\relax}{\global\pdfpagewidth\paperwidth +\global\pdfpageheight\paperheight}% +% if using \pdfoutput=0 under pdflatex, send dvips papersize special +\ifcase\pdfoutput +\AtBeginDvi{\special{papersize=\CLASSINFOpaperwidth,\CLASSINFOpaperheight}}% +\else +% we are using pdf output, set CLASSINFOpdf flag +\global\CLASSINFOpdftrue +\fi}} + +% let the user know the selected papersize +\typeout{-- Using \CLASSINFOpaperwidth\space x \CLASSINFOpaperheight\space +(\CLASSOPTIONpaper)\space paper.} + +\ifCLASSINFOpdf +\typeout{-- Using PDF output.} +\else +\typeout{-- Using DVI output.} +\fi + + +% The idea hinted here is for LaTeX to generate markleft{} and markright{} +% automatically for you after you enter \author{}, \journal{}, +% \journaldate{}, journalvol{}, \journalnum{}, etc. +% However, there may be some backward compatibility issues here as +% well as some special applications for IEEEtran.cls and special issues +% that may require the flexible \markleft{}, \markright{} and/or \markboth{}. +% We'll leave this as an open future suggestion. +%\newcommand{\journal}[1]{\def\@journal{#1}} +%\def\@journal{} + + + +% pointsize values +% used with ifx to determine the document's normal size +\def\@IEEEptsizenine{9} +\def\@IEEEptsizeten{10} +\def\@IEEEptsizeeleven{11} +\def\@IEEEptsizetwelve{12} + + + +% FONT DEFINITIONS (No sizexx.clo file needed) +% V1.6 revised font sizes, displayskip values and +% revised normalsize baselineskip to reduce underfull vbox problems +% on the 58pc = 696pt = 9.5in text height we want +% normalsize #lines/column baselineskip (aka leading) +% 9pt 63 11.0476pt (truncated down) +% 10pt 58 12pt (exact) +% 11pt 52 13.3846pt (truncated down) +% 12pt 50 13.92pt (exact) +% + +% we need to store the nominal baselineskip for the given font size +% in case baselinestretch ever changes. +% this is a dimen, so it will not hold stretch or shrink +\newdimen\@IEEEnormalsizeunitybaselineskip +\@IEEEnormalsizeunitybaselineskip\baselineskip + + + +%% ******* WARNING! ******* +%% +%% Authors should not alter font sizes, baselineskip ("leading"), +%% margins or other spacing values in an attempt to squeeze more +%% material on each page. +%% +%% The IEEE's own typesetting software will restore the correct +%% values when re-typesetting/proofing the submitted document, +%% possibly resulting in unexpected article over length charges. +%% +%% ******* WARNING! ******* + + +% 9pt option defaults +\ifx\CLASSOPTIONpt\@IEEEptsizenine +\typeout{-- This is a 9 point document.} +\def\normalsize{\@setfontsize{\normalsize}{9}{11.0476pt}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{11.0476pt} +\normalsize +\abovedisplayskip 1.5ex plus 3pt minus 1pt +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 3pt +\belowdisplayshortskip 1.5ex plus 3pt minus 1pt +\def\small{\@setfontsize{\small}{8.5}{10pt}} +\def\footnotesize{\@setfontsize{\footnotesize}{8}{9pt}} +\def\scriptsize{\@setfontsize{\scriptsize}{7}{8pt}} +\def\tiny{\@setfontsize{\tiny}{5}{6pt}} +% sublargesize is the same as large - 10pt +\def\sublargesize{\@setfontsize{\sublargesize}{10}{12pt}} +\def\large{\@setfontsize{\large}{10}{12pt}} +\def\Large{\@setfontsize{\Large}{12}{14pt}} +\def\LARGE{\@setfontsize{\LARGE}{14}{17pt}} +\def\huge{\@setfontsize{\huge}{17}{20pt}} +\def\Huge{\@setfontsize{\Huge}{20}{24pt}} +\fi +% +% 10pt option defaults +\ifx\CLASSOPTIONpt\@IEEEptsizeten +\typeout{-- This is a 10 point document.} +\def\normalsize{\@setfontsize{\normalsize}{10}{12.00pt}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{12pt} +\normalsize +\abovedisplayskip 1.5ex plus 4pt minus 2pt +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 4pt +\belowdisplayshortskip 1.5ex plus 4pt minus 2pt +\def\small{\@setfontsize{\small}{9}{10pt}} +\def\footnotesize{\@setfontsize{\footnotesize}{8}{9pt}} +\def\scriptsize{\@setfontsize{\scriptsize}{7}{8pt}} +\def\tiny{\@setfontsize{\tiny}{5}{6pt}} +% sublargesize is a tad smaller than large - 11pt +\def\sublargesize{\@setfontsize{\sublargesize}{11}{13.4pt}} +\def\large{\@setfontsize{\large}{12}{14pt}} +\def\Large{\@setfontsize{\Large}{14}{17pt}} +\def\LARGE{\@setfontsize{\LARGE}{17}{20pt}} +\def\huge{\@setfontsize{\huge}{20}{24pt}} +\def\Huge{\@setfontsize{\Huge}{24}{28pt}} +\fi +% +% 11pt option defaults +\ifx\CLASSOPTIONpt\@IEEEptsizeeleven +\typeout{-- This is an 11 point document.} +\def\normalsize{\@setfontsize{\normalsize}{11}{13.3846pt}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{13.3846pt} +\normalsize +\abovedisplayskip 1.5ex plus 5pt minus 3pt +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 5pt +\belowdisplayshortskip 1.5ex plus 5pt minus 3pt +\def\small{\@setfontsize{\small}{10}{12pt}} +\def\footnotesize{\@setfontsize{\footnotesize}{9}{10.5pt}} +\def\scriptsize{\@setfontsize{\scriptsize}{8}{9pt}} +\def\tiny{\@setfontsize{\tiny}{6}{7pt}} +% sublargesize is the same as large - 12pt +\def\sublargesize{\@setfontsize{\sublargesize}{12}{14pt}} +\def\large{\@setfontsize{\large}{12}{14pt}} +\def\Large{\@setfontsize{\Large}{14}{17pt}} +\def\LARGE{\@setfontsize{\LARGE}{17}{20pt}} +\def\huge{\@setfontsize{\huge}{20}{24pt}} +\def\Huge{\@setfontsize{\Huge}{24}{28pt}} +\fi +% +% 12pt option defaults +\ifx\CLASSOPTIONpt\@IEEEptsizetwelve +\typeout{-- This is a 12 point document.} +\def\normalsize{\@setfontsize{\normalsize}{12}{13.92pt}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{13.92pt} +\normalsize +\abovedisplayskip 1.5ex plus 6pt minus 4pt +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 6pt +\belowdisplayshortskip 1.5ex plus 6pt minus 4pt +\def\small{\@setfontsize{\small}{10}{12pt}} +\def\footnotesize{\@setfontsize{\footnotesize}{9}{10.5pt}} +\def\scriptsize{\@setfontsize{\scriptsize}{8}{9pt}} +\def\tiny{\@setfontsize{\tiny}{6}{7pt}} +% sublargesize is the same as large - 14pt +\def\sublargesize{\@setfontsize{\sublargesize}{14}{17pt}} +\def\large{\@setfontsize{\large}{14}{17pt}} +\def\Large{\@setfontsize{\Large}{17}{20pt}} +\def\LARGE{\@setfontsize{\LARGE}{20}{24pt}} +\def\huge{\@setfontsize{\huge}{22}{26pt}} +\def\Huge{\@setfontsize{\Huge}{24}{28pt}} +\fi + + + +% V1.8a compsoc font sizes +% compsoc font sizes use bp "Postscript" point units (1/72in) +% rather than the traditional pt (1/72.27) +\ifCLASSOPTIONcompsoc +% -- compsoc defaults -- +% ** will override some of these values later ** +% 9pt +\ifx\CLASSOPTIONpt\@IEEEptsizenine +\def\normalsize{\@setfontsize{\normalsize}{9bp}{11bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{11bp} +\normalsize +\abovedisplayskip 1.5ex plus 3bp minus 1bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0bp plus 3bp +\belowdisplayshortskip 1.5ex plus 3bp minus 1bp +\def\small{\@setfontsize{\small}{8.5bp}{10bp}} +\def\footnotesize{\@setfontsize{\footnotesize}{8bp}{9bp}} +\def\scriptsize{\@setfontsize{\scriptsize}{7bp}{8bp}} +\def\tiny{\@setfontsize{\tiny}{5bp}{6bp}} +% sublargesize is the same as large - 10bp +\def\sublargesize{\@setfontsize{\sublargesize}{10bp}{12bp}} +\def\large{\@setfontsize{\large}{10bp}{12bp}} +\def\Large{\@setfontsize{\Large}{12bp}{14bp}} +\def\LARGE{\@setfontsize{\LARGE}{14bp}{17bp}} +\def\huge{\@setfontsize{\huge}{17bp}{20bp}} +\def\Huge{\@setfontsize{\Huge}{20bp}{24bp}} +\fi +% +% 10pt +\ifx\CLASSOPTIONpt\@IEEEptsizeten +\def\normalsize{\@setfontsize{\normalsize}{10bp}{12bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{12bp} +\normalsize +\abovedisplayskip 1.5ex plus 4bp minus 2bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 4bp +\belowdisplayshortskip 1.5ex plus 4bp minus 2bp +\def\small{\@setfontsize{\small}{9bp}{10bp}} +\def\footnotesize{\@setfontsize{\footnotesize}{8bp}{9bp}} +\def\scriptsize{\@setfontsize{\scriptsize}{7bp}{8bp}} +\def\tiny{\@setfontsize{\tiny}{5bp}{6bp}} +% sublargesize is a tad smaller than large - 11bp +\def\sublargesize{\@setfontsize{\sublargesize}{11bp}{13.5bp}} +\def\large{\@setfontsize{\large}{12bp}{14bp}} +\def\Large{\@setfontsize{\Large}{14bp}{17bp}} +\def\LARGE{\@setfontsize{\LARGE}{17bp}{20bp}} +\def\huge{\@setfontsize{\huge}{20bp}{24bp}} +\def\Huge{\@setfontsize{\Huge}{24bp}{28bp}} +\fi +% +% 11pt +\ifx\CLASSOPTIONpt\@IEEEptsizeeleven +\def\normalsize{\@setfontsize{\normalsize}{11bp}{13.5bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{13.5bp} +\normalsize +\abovedisplayskip 1.5ex plus 5bp minus 3bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 5bp +\belowdisplayshortskip 1.5ex plus 5bp minus 3bp +\def\small{\@setfontsize{\small}{10bp}{12bp}} +\def\footnotesize{\@setfontsize{\footnotesize}{9bp}{10.5bp}} +\def\scriptsize{\@setfontsize{\scriptsize}{8bp}{9bp}} +\def\tiny{\@setfontsize{\tiny}{6bp}{7bp}} +% sublargesize is the same as large - 12bp +\def\sublargesize{\@setfontsize{\sublargesize}{12bp}{14bp}} +\def\large{\@setfontsize{\large}{12bp}{14bp}} +\def\Large{\@setfontsize{\Large}{14bp}{17bp}} +\def\LARGE{\@setfontsize{\LARGE}{17bp}{20bp}} +\def\huge{\@setfontsize{\huge}{20bp}{24bp}} +\def\Huge{\@setfontsize{\Huge}{24bp}{28bp}} +\fi +% +% 12pt +\ifx\CLASSOPTIONpt\@IEEEptsizetwelve +\def\normalsize{\@setfontsize{\normalsize}{12bp}{14bp}}% +\setlength{\@IEEEnormalsizeunitybaselineskip}{14bp}% +\normalsize +\abovedisplayskip 1.5ex plus 6bp minus 4bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 6bp +\belowdisplayshortskip 1.5ex plus 6bp minus 4bp +\def\small{\@setfontsize{\small}{10bp}{12bp}} +\def\footnotesize{\@setfontsize{\footnotesize}{9bp}{10.5bp}} +\def\scriptsize{\@setfontsize{\scriptsize}{8bp}{9bp}} +\def\tiny{\@setfontsize{\tiny}{6bp}{7bp}} +% sublargesize is the same as large - 14bp +\def\sublargesize{\@setfontsize{\sublargesize}{14bp}{17bp}} +\def\large{\@setfontsize{\large}{14bp}{17bp}} +\def\Large{\@setfontsize{\Large}{17bp}{20bp}} +\def\LARGE{\@setfontsize{\LARGE}{20bp}{24bp}} +\def\huge{\@setfontsize{\huge}{22bp}{26bp}} +\def\Huge{\@setfontsize{\Huge}{24bp}{28bp}} +\fi +% +% -- override defaults: compsoc journals use special normalsizes -- +\ifCLASSOPTIONconference +% +% compsoc conferences +% 9pt +\ifx\CLASSOPTIONpt\@IEEEptsizenine +\def\normalsize{\@setfontsize{\normalsize}{9bp}{10.8bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{10.8bp} +\normalsize +\abovedisplayskip 1.5ex plus 3bp minus 1bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0bp plus 3bp +\belowdisplayshortskip 1.5ex plus 3bp minus 1bp +\fi +% 10pt +\ifx\CLASSOPTIONpt\@IEEEptsizeten +\def\normalsize{\@setfontsize{\normalsize}{10bp}{11.2bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{11.2bp} +\normalsize +\abovedisplayskip 1.5ex plus 4bp minus 2bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 4bp +\belowdisplayshortskip 1.5ex plus 4bp minus 2bp +\fi +% 11pt +\ifx\CLASSOPTIONpt\@IEEEptsizeeleven +\def\normalsize{\@setfontsize{\normalsize}{11bp}{13.2bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{13.2bp} +\normalsize +\abovedisplayskip 1.5ex plus 5bp minus 3bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 5bp +\belowdisplayshortskip 1.5ex plus 5bp minus 3bp +\fi +% 12pt +\ifx\CLASSOPTIONpt\@IEEEptsizetwelve +\def\normalsize{\@setfontsize{\normalsize}{12bp}{14.4bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{14.4bp} +\normalsize +\abovedisplayskip 1.5ex plus 6bp minus 4bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 6bp +\belowdisplayshortskip 1.5ex plus 6bp minus 4bp +\fi +% +% compsoc nonconferences +\else +% 9pt +\ifx\CLASSOPTIONpt\@IEEEptsizenine +\def\normalsize{\@setfontsize{\normalsize}{9bp}{10.8bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{10.8bp} +\normalsize +\abovedisplayskip 1.5ex plus 3bp minus 1bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0bp plus 3bp +\belowdisplayshortskip 1.5ex plus 3bp minus 1bp +\fi +% 10pt +\ifx\CLASSOPTIONpt\@IEEEptsizeten +% the official spec is 9.5bp with 11.4bp leading for 10pt, +% but measurements of proofs suggest upto 11.723bp leading +% here we'll use 11.54bp which gives 61 lines per column +% with the standard compsoc margins +\def\normalsize{\@setfontsize{\normalsize}{9.5bp}{11.54bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{11.54bp} +\normalsize +\abovedisplayskip 1.5ex plus 4bp minus 2bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 4bp +\belowdisplayshortskip 1.5ex plus 4bp minus 2bp +\fi +% 11pt +\ifx\CLASSOPTIONpt\@IEEEptsizeeleven +\def\normalsize{\@setfontsize{\normalsize}{11bp}{13.2bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{13.2bp} +\normalsize +\abovedisplayskip 1.5ex plus 5bp minus 3bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 5bp +\belowdisplayshortskip 1.5ex plus 5bp minus 3bp +\fi +% 12pt +\ifx\CLASSOPTIONpt\@IEEEptsizetwelve +\def\normalsize{\@setfontsize{\normalsize}{12bp}{14.4bp}} +\setlength{\@IEEEnormalsizeunitybaselineskip}{14.4bp} +\normalsize +\abovedisplayskip 1.5ex plus 6bp minus 4bp +\belowdisplayskip \abovedisplayskip +\abovedisplayshortskip 0pt plus 6bp +\belowdisplayshortskip 1.5ex plus 6bp minus 4bp +\fi +\fi\fi + + + + +% V1.6 The Computer Modern Fonts will issue a substitution warning for +% 24pt titles (24.88pt is used instead, but the default and correct +% Times font will scale exactly as needed) increase the substitution +% tolerance to turn off this warning. +% +% V1.8a, the compsoc bp font sizes can also cause bogus font substitution +% warnings with footnote or scriptsize math and the $\bullet$ itemized +% list of \IEEEcompsocitemizethanks. So, increase this to 1.5pt or more. +\def\fontsubfuzz{1.7bp} + + +% warn the user in case they forget to use the 9pt option with +% technote +\ifCLASSOPTIONtechnote% + \ifx\CLASSOPTIONpt\@IEEEptsizenine\else% + \typeout{** ATTENTION: Technotes are normally 9pt documents.}% + \fi% +\fi + + +% V1.7 +% Improved \textunderscore to provide a much better fake _ when used with +% OT1 encoding. Under OT1, detect use of pcr or cmtt \ttfamily and use +% available true _ glyph for those two typewriter fonts. +\def\@IEEEstringptm{ptm} % Times Roman family +\def\@IEEEstringppl{ppl} % Palatino Roman family +\def\@IEEEstringphv{phv} % Helvetica Sans Serif family +\def\@IEEEstringpcr{pcr} % Courier typewriter family +\def\@IEEEstringcmtt{cmtt} % Computer Modern typewriter family +\DeclareTextCommandDefault{\textunderscore}{\leavevmode +\ifx\f@family\@IEEEstringpcr\string_\else +\ifx\f@family\@IEEEstringcmtt\string_\else +\ifx\f@family\@IEEEstringptm\kern 0em\vbox{\hrule\@width 0.5em\@height 0.5pt\kern -0.3ex}\else +\ifx\f@family\@IEEEstringppl\kern 0em\vbox{\hrule\@width 0.5em\@height 0.5pt\kern -0.3ex}\else +\ifx\f@family\@IEEEstringphv\kern -0.03em\vbox{\hrule\@width 0.62em\@height 0.52pt\kern -0.33ex}\kern -0.03em\else +\kern 0.09em\vbox{\hrule\@width 0.6em\@height 0.44pt\kern -0.63pt\kern -0.42ex}\kern 0.09em\fi\fi\fi\fi\fi\relax} + + + + +% set the default \baselinestretch +\def\baselinestretch{1} +\ifCLASSOPTIONdraftcls + \def\baselinestretch{1.5}% default baselinestretch for draft modes +\fi + + +% process CLASSINPUT baselinestretch +\ifx\CLASSINPUTbaselinestretch\@IEEEundefined +\else + \edef\baselinestretch{\CLASSINPUTbaselinestretch} % user CLASSINPUT override + \typeout{** ATTENTION: Overriding \string\baselinestretch\space to + \baselinestretch\space via \string\CLASSINPUT.} +\fi + +\small\normalsize % make \baselinestretch take affect + + + + +% store the normalsize baselineskip +\newdimen\CLASSINFOnormalsizebaselineskip +\CLASSINFOnormalsizebaselineskip=\baselineskip\relax +% and the normalsize unity (baselinestretch=1) baselineskip +% we could save a register by giving the user access to +% \@IEEEnormalsizeunitybaselineskip. However, let's protect +% its read only internal status +\newdimen\CLASSINFOnormalsizeunitybaselineskip +\CLASSINFOnormalsizeunitybaselineskip=\@IEEEnormalsizeunitybaselineskip\relax +% store the nominal value of jot +\newdimen\IEEEnormaljot +\IEEEnormaljot=0.25\baselineskip\relax + +% set \jot +\jot=\IEEEnormaljot\relax + + + + +% V1.6, we are now going to fine tune the interword spacing +% The default interword glue for Times under TeX appears to use a +% nominal interword spacing of 25% (relative to the font size, i.e., 1em) +% a maximum of 40% and a minimum of 19%. +% For example, 10pt text uses an interword glue of: +% +% 2.5pt plus 1.49998pt minus 0.59998pt +% +% However, the IEEE allows for a more generous range which reduces the need +% for hyphenation, especially for two column text. Furthermore, the IEEE +% tends to use a little bit more nominal space between the words. +% The IEEE's interword spacing percentages appear to be: +% 35% nominal +% 23% minimum +% 50% maximum +% (They may even be using a tad more for the largest fonts such as 24pt.) +% +% for bold text, the IEEE increases the spacing a little more: +% 37.5% nominal +% 23% minimum +% 55% maximum + +% here are the interword spacing ratios we'll use +% for medium (normal weight) +\def\@IEEEinterspaceratioM{0.35} +\def\@IEEEinterspaceMINratioM{0.23} +\def\@IEEEinterspaceMAXratioM{0.50} + +% for bold +\def\@IEEEinterspaceratioB{0.375} +\def\@IEEEinterspaceMINratioB{0.23} +\def\@IEEEinterspaceMAXratioB{0.55} + + +% compsoc nonconference papers use Palatino, +% tweak settings to better match the proofs +\ifCLASSOPTIONcompsoc +\ifCLASSOPTIONconference\else +% for medium (normal weight) +\def\@IEEEinterspaceratioM{0.28} +\def\@IEEEinterspaceMINratioM{0.21} +\def\@IEEEinterspaceMAXratioM{0.47} +% for bold +\def\@IEEEinterspaceratioB{0.305} +\def\@IEEEinterspaceMINratioB{0.21} +\def\@IEEEinterspaceMAXratioB{0.52} +\fi\fi + + +% command to revise the interword spacing for the current font under TeX: +% \fontdimen2 = nominal interword space +% \fontdimen3 = interword stretch +% \fontdimen4 = interword shrink +% since all changes to the \fontdimen are global, we can enclose these commands +% in braces to confine any font attribute or length changes +\def\@@@IEEEsetfontdimens#1#2#3{{% +\setlength{\@IEEEtrantmpdimenB}{\f@size pt}% grab the font size in pt, could use 1em instead. +\setlength{\@IEEEtrantmpdimenA}{#1\@IEEEtrantmpdimenB}% +\fontdimen2\font=\@IEEEtrantmpdimenA\relax +\addtolength{\@IEEEtrantmpdimenA}{-#2\@IEEEtrantmpdimenB}% +\fontdimen3\font=-\@IEEEtrantmpdimenA\relax +\setlength{\@IEEEtrantmpdimenA}{#1\@IEEEtrantmpdimenB}% +\addtolength{\@IEEEtrantmpdimenA}{-#3\@IEEEtrantmpdimenB}% +\fontdimen4\font=\@IEEEtrantmpdimenA\relax}} + +% revise the interword spacing for each font weight +\def\@@IEEEsetfontdimens{{% +\mdseries +\@@@IEEEsetfontdimens{\@IEEEinterspaceratioM}{\@IEEEinterspaceMAXratioM}{\@IEEEinterspaceMINratioM}% +\bfseries +\@@@IEEEsetfontdimens{\@IEEEinterspaceratioB}{\@IEEEinterspaceMAXratioB}{\@IEEEinterspaceMINratioB}% +}} + +% revise the interword spacing for each font shape +% \slshape is not often used for IEEE work and is not altered here. The \scshape caps are +% already a tad too large in the free LaTeX fonts (as compared to what the IEEE uses) so we +% won't alter these either. +\def\@IEEEsetfontdimens{{% +\normalfont +\@@IEEEsetfontdimens +\normalfont\itshape +\@@IEEEsetfontdimens +}} + +% command to revise the interword spacing for each font size (and shape +% and weight). Only the \rmfamily is done here as \ttfamily uses a +% fixed spacing and \sffamily is not used as the main text of IEEE papers. +\def\@IEEEtunefonts{{\selectfont\rmfamily +\tiny\@IEEEsetfontdimens +\scriptsize\@IEEEsetfontdimens +\footnotesize\@IEEEsetfontdimens +\small\@IEEEsetfontdimens +\normalsize\@IEEEsetfontdimens +\sublargesize\@IEEEsetfontdimens +\large\@IEEEsetfontdimens +\LARGE\@IEEEsetfontdimens +\huge\@IEEEsetfontdimens +\Huge\@IEEEsetfontdimens}} + +% if the nofonttune class option is not given, revise the interword spacing +% now - in case IEEEtran makes any default length measurements, and make +% sure all the default fonts are loaded +\ifCLASSOPTIONnofonttune\else +\@IEEEtunefonts +\fi + +% and again at the start of the document in case the user loaded different fonts +\AtBeginDocument{\ifCLASSOPTIONnofonttune\else\@IEEEtunefonts\fi} + + + + + +% -- V1.8a page setup commands -- + +% The default sample text for calculating margins +% Note that IEEE publications use \scriptsize for headers and footers. +\def\IEEEdefaultsampletext{\normalfont\normalsize gT} +\def\IEEEdefaultheadersampletext{\normalfont\scriptsize T}% IEEE headers default to uppercase +\def\IEEEdefaultfootersampletext{\normalfont\scriptsize gT} + + + +% usage: \IEEEsettextwidth{inner margin}{outer margin} +% Sets \textwidth to allow the specified inner and outer margins +% for the current \paperwidth. +\def\IEEEsettextwidth#1#2{\@IEEEtrantmpdimenA\paperwidth +\@IEEEtrantmpdimenB#1\relax +\advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpdimenB +\@IEEEtrantmpdimenB#2\relax +\advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpdimenB +\textwidth\@IEEEtrantmpdimenA} + + + +% usage: \IEEEsetsidemargin{mode: i, o, c, a}{margin/offset} +% Sets \oddsidemargin and \evensidemargin to yield the specified margin +% of the given mode. +% The available modes are: +% i = inner margin +% o = outer margin +% c = centered, with the given offset +% a = adjust the margins using the given offset +% For the offsets, positive values increase the inner margin. +% \textwidth should be set properly for the given margins before calling this +% function. +\def\IEEEsetsidemargin#1#2{\@IEEEtrantmpdimenA #2\relax +\@IEEEextracttoken{#1}\relax +% check for mode errors +\ifx\@IEEEextractedtokenmacro\@empty + \@IEEEclspkgerror{Empty mode type in \string\IEEEsetsidemargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `i'}{Valid modes for \string\IEEEsetsidemargin\space are: i, o, c and a.}\relax + \let\@IEEEextractedtoken=i\relax + \def\@IEEEextractedtokenmacro{i}\relax +\else + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: \string\IEEEsetsidemargin\space mode specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi +\fi +% handle each mode +\if\@IEEEextractedtoken a\relax + \advance\oddsidemargin by \@IEEEtrantmpdimenA\relax +\else +\if\@IEEEextractedtoken c\relax + \oddsidemargin\paperwidth + \advance\oddsidemargin by -\textwidth + \divide\oddsidemargin by 2\relax + \advance\oddsidemargin by -1in\relax + \advance\oddsidemargin by \@IEEEtrantmpdimenA\relax +\else +\if\@IEEEextractedtoken o\relax + \oddsidemargin\paperwidth + \advance\oddsidemargin by -\textwidth + \advance\oddsidemargin by -\@IEEEtrantmpdimenA + \advance\oddsidemargin by -1in\relax +\else + \if\@IEEEextractedtoken i\relax + \else + \@IEEEclspkgerror{Unknown mode type `\@IEEEextractedtokenmacro' in \string\IEEEsetsidemargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `i'}% + {Valid modes for \string\IEEEsetsidemargin\space are: i, o, c and a.}% + \fi + \oddsidemargin\@IEEEtrantmpdimenA + \advance\oddsidemargin by -1in\relax +\fi\fi\fi +% odd and even side margins both mean "inner" for single sided pages +\evensidemargin\oddsidemargin +% but are mirrors of each other when twosided is in effect +\if@twoside + \evensidemargin\paperwidth + \advance\evensidemargin by -\textwidth + \advance\evensidemargin by -\oddsidemargin + % have to compensate for both the builtin 1in LaTex offset + % and the fact we already subtracted this offset from \oddsidemargin + \advance\evensidemargin -2in\relax +\fi} + + + +% usage: \IEEEsettextheight[sample text]{top text margin}{bottom text margin} +% Sets \textheight based on the specified top margin and bottom margin. +% Takes into consideration \paperheight, \topskip, and (by default) the +% the actual height and depth of the \IEEEdefaultsampletext text. +\def\IEEEsettextheight{\@ifnextchar [{\@IEEEsettextheight}{\@IEEEsettextheight[\IEEEdefaultsampletext]}} +\def\@IEEEsettextheight[#1]#2#3{\textheight\paperheight\relax + \@IEEEtrantmpdimenA #2\relax + \advance \textheight by -\@IEEEtrantmpdimenA% subtract top margin + \@IEEEtrantmpdimenA #3\relax + \advance \textheight by -\@IEEEtrantmpdimenA% subtract bottom margin + \advance \textheight by \topskip% add \topskip + % subtract off everything above the top, and below the bottom, baselines + \settoheight{\@IEEEtrantmpdimenA}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance \textheight by -\@IEEEtrantmpdimenA + \settodepth{\@IEEEtrantmpdimenA}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance \textheight by -\@IEEEtrantmpdimenA} + + + +\newdimen\IEEEquantizedlength +\IEEEquantizedlength 0sp\relax +\newdimen\IEEEquantizedlengthdiff +\IEEEquantizedlengthdiff 0sp\relax +\def\IEEEquantizedlengthint{0} + +% usage: \IEEEquantizelength{mode: d, c, i}{base unit}{length} +% Sets the length \IEEEquantizedlength to be an integer multiple of the given +% (nonzero) base unit such that \IEEEquantizedlength approximates the given +% length. +% \IEEEquantizedlengthdiff is a length equal to the difference between the +% \IEEEquantizedlength and the given length. +% \IEEEquantizedlengthint is a macro containing the integer number of base units +% in \IEEEquantizedlength. +% i.e., \IEEEquantizedlength = \IEEEquantizedlengthint * base unit +% The mode determines how \IEEEquantizedlength is quantized: +% d = always decrease (always round down \IEEEquantizeint) +% c = use the closest match +% i = always increase (always round up \IEEEquantizeint) +% In anycase, if the given length is already quantized, +% \IEEEquantizedlengthdiff will be set to zero. +\def\IEEEquantizelength#1#2#3{\begingroup +% work in isolation so as not to externally disturb the \@IEEEtrantmp +% variables +% load the argument values indirectly via \IEEEquantizedlengthdiff +% in case the user refers to our \@IEEEtrantmpdimenX, \IEEEquantizedlength, +% etc. in the arguments. we also will work with these as counters, +% i.e., in sp units +% A has the base unit +\IEEEquantizedlengthdiff #2\relax\relax\relax\relax +\@IEEEtrantmpcountA\IEEEquantizedlengthdiff +% B has the input length +\IEEEquantizedlengthdiff #3\relax\relax\relax\relax +\@IEEEtrantmpcountB\IEEEquantizedlengthdiff +\@IEEEtrantmpdimenA\the\@IEEEtrantmpcountA sp\relax +\@IEEEtrantmpdimenB\the\@IEEEtrantmpcountB sp\relax +% \@IEEEtrantmpcountC will have the quantized int +% \IEEEquantizedlength will have the quantized length +% \@IEEEtrantmpdimenC will have the quantized diff +% initialize them to zero as this is what will be +% exported if an error occurs +\@IEEEtrantmpcountC 0\relax +\IEEEquantizedlength 0sp\relax +\@IEEEtrantmpdimenC 0sp\relax +% extract mode +\@IEEEextracttoken{#1}\relax +% check for mode errors +\ifx\@IEEEextractedtokenmacro\@empty + \@IEEEclspkgerror{Empty mode type in \string\IEEEquantizelength\space (line \the\inputlineno).\MessageBreak + Defaulting to `d'}{Valid modes for \string\IEEEquantizelength\space are: d, c and i.}\relax + \let\@IEEEextractedtoken=d\relax + \def\@IEEEextractedtokenmacro{d}\relax +\else + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: \string\IEEEquantizelength\space mode specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi +\fi +% check for base unit is zero error +\ifnum\@IEEEtrantmpcountA=0\relax +\@IEEEclspkgerror{Base unit is zero in \string\IEEEquantizelength\space (line \the\inputlineno).\MessageBreak + \string\IEEEquantizedlength\space and \string\IEEEquantizedlengthdiff\space are set to zero}{Division by zero is not allowed.}\relax +\else% base unit is nonzero + % \@IEEEtrantmpcountC carries the number of integer units + % in the quantized length (integer length \ base) + \@IEEEtrantmpcountC\@IEEEtrantmpcountB\relax + \divide\@IEEEtrantmpcountC by \@IEEEtrantmpcountA\relax + % \IEEEquantizedlength has the (rounded down) quantized length + % = base * int + \IEEEquantizedlength\@IEEEtrantmpdimenA\relax + \multiply\IEEEquantizedlength by \@IEEEtrantmpcountC\relax + % \@IEEEtrantmpdimenC has the difference + % = quantized length - length + \@IEEEtrantmpdimenC\IEEEquantizedlength\relax + \advance\@IEEEtrantmpdimenC by -\@IEEEtrantmpdimenB\relax + % trap special case of length being already quantized + % to avoid a roundup under i option + \ifdim\@IEEEtrantmpdimenC=0sp\relax + \else % length not is already quantized + % set dimenA to carry the upper quantized (absolute value) difference: + % quantizedlength + base - length + \advance\@IEEEtrantmpdimenA by \IEEEquantizedlength\relax + \advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpdimenB\relax + % set dimenB to carry the lower quantized (absolute value) difference: + % length - quantizedlength + \advance\@IEEEtrantmpdimenB by -\IEEEquantizedlength\relax + % handle each mode + \if\@IEEEextractedtoken c\relax + % compare upper and lower amounts, select upper if lower > upper + \ifdim\@IEEEtrantmpdimenB>\@IEEEtrantmpdimenA\relax + % use upper + \advance\IEEEquantizedlength by \the\@IEEEtrantmpcountA sp\relax + \advance\@IEEEtrantmpcountC by 1\relax + \@IEEEtrantmpdimenC\@IEEEtrantmpdimenA + \else% <=. uselower + % no need to do anything for lower, use output values already setup + \fi + \else% not mode c + \if\@IEEEextractedtoken i\relax + % always round up under i mode + \advance\IEEEquantizedlength by \the\@IEEEtrantmpcountA sp\relax + \advance\@IEEEtrantmpcountC by 1\relax + \@IEEEtrantmpdimenC\@IEEEtrantmpdimenA + \else + \if\@IEEEextractedtoken d\relax + \else + \@IEEEclspkgerror{Unknown mode type `\@IEEEextractedtokenmacro' in \string\IEEEquantizelength\space (line \the\inputlineno).\MessageBreak + Defaulting to `d'}% + {Valid modes for \string\IEEEquantizelength\space are: d, c, and i.}\relax + \fi % if d + % no need to do anything for d, use output values already setup + \fi\fi % if i, c + \fi % if length is already quantized +\fi% if base unit is zero +% globally assign the results to macros we use here to escape the enclosing +% group without needing to call \global on any of the \@IEEEtrantmp variables. +% \@IEEEtrantmpcountC has the quantized int +% \IEEEquantizedlength has the quantized length +% \@IEEEtrantmpdimenC has the quantized diff +\xdef\@IEEEquantizedlengthintmacro{\the\@IEEEtrantmpcountC}\relax +\@IEEEtrantmpcountC\IEEEquantizedlength\relax +\xdef\@IEEEquantizedlengthmacro{\the\@IEEEtrantmpcountC}\relax +\@IEEEtrantmpcountC\@IEEEtrantmpdimenC\relax +\xdef\@IEEEquantizedlengthdiffmacro{\the\@IEEEtrantmpcountC}\relax +\endgroup +% locally assign the outputs here from the macros +\expandafter\IEEEquantizedlength\@IEEEquantizedlengthmacro sp\relax +\expandafter\IEEEquantizedlengthdiff\@IEEEquantizedlengthdiffmacro sp\relax +\edef\IEEEquantizedlengthint{\@IEEEquantizedlengthintmacro}\relax} + + + +\newdimen\IEEEquantizedtextheightdiff +\IEEEquantizedtextheightdiff 0sp\relax + +% usage: \IEEEquantizetextheight[base unit]{mode: d, c, i} +% Sets \textheight to be an integer multiple of the current \baselineskip +% (or the optionally specified base unit) plus the first (\topskip) line. +% \IEEEquantizedtextheightdiff is a length equal to the difference between +% the new quantized and original \textheight. +% \IEEEquantizedtextheightlpc is a macro containing the integer number of +% lines per column under the quantized \textheight. i.e., +% \textheight = \IEEEquantizedtextheightlpc * \baselineskip + \topskip +% The mode determines how \textheight is quantized: +% d = always decrease (always round down the number of lines per column) +% c = use the closest match +% i = always increase (always round up the number of lines per column) +% In anycase, if \textheight is already quantized, it will remain unchanged, +% and \IEEEquantizedtextheightdiff will be set to zero. +% Depends on: \IEEEquantizelength +\def\IEEEquantizetextheight{\@ifnextchar [{\@IEEEquantizetextheight}{\@IEEEquantizetextheight[\baselineskip]}} +\def\@IEEEquantizetextheight[#1]#2{\begingroup +% use our \IEEEquantizedtextheightdiff as a scratch pad +% we need to subtract off \topskip before quantization +\IEEEquantizedtextheightdiff\textheight +\advance\IEEEquantizedtextheightdiff by -\topskip\relax +\IEEEquantizelength{#2}{#1}{\IEEEquantizedtextheightdiff} +% add back \topskip line +\advance\IEEEquantizedlength by \topskip +\@IEEEtrantmpcountC\IEEEquantizedlengthint\relax +\advance\@IEEEtrantmpcountC by 1\relax +% globally assign the results to macros we use here to escape the enclosing +% group without needing to call \global on any of the \@IEEEtrantmp variables. +\xdef\@IEEEquantizedtextheightlpcmacro{\the\@IEEEtrantmpcountC}\relax +\@IEEEtrantmpcountC\IEEEquantizedlength\relax +\xdef\@IEEEquantizedtextheightmacro{\the\@IEEEtrantmpcountC}\relax +\@IEEEtrantmpcountC\IEEEquantizedlengthdiff\relax +\xdef\@IEEEquantizedtextheightdiffmacro{\the\@IEEEtrantmpcountC}\relax +\endgroup +% locally assign the outputs here from the macros +\textheight\@IEEEquantizedtextheightmacro sp\relax +\IEEEquantizedtextheightdiff\@IEEEquantizedtextheightdiffmacro sp\relax +\edef\IEEEquantizedtextheightlpc{\@IEEEquantizedtextheightlpcmacro}} + + + +% usage: \IEEEsettopmargin[sample text]{mode: t, b, c, a, q}{margin/offset} +% Sets \topmargin based on the specified vertical margin. +% Takes into consideration the base 1in offset, \headheight, \headsep, +% \topskip, and (by default) the the actual height (or, for the bottom, depth) +% of the \IEEEdefaultsampletext text. +% The available modes are: +% t = top margin +% b = bottom margin +% c = vertically centered, with the given offset +% a = adjust the vertical margins using the given offset +% q = adjust the margins using \IEEEquantizedtextheightdiff and the given offset +% For the offsets, positive values increase the top margin. +% \headheight, \headsep, \topskip and \textheight should be set properly for the +% given margins before calling this function. +\def\IEEEsettopmargin{\@ifnextchar [{\@IEEEsettopmargin}{\@IEEEsettopmargin[\IEEEdefaultsampletext]}} +\def\@IEEEsettopmargin[#1]#2#3{\@IEEEtrantmpdimenA #3\relax +\@IEEEextracttoken{#2}\relax +% check for mode errors +\ifx\@IEEEextractedtokenmacro\@empty + \@IEEEclspkgerror{Empty mode type in \string\IEEEsettopmargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}{Valid modes for \string\IEEEsettopmargin\space are: t, b, c, a and q.}\relax + \let\@IEEEextractedtoken=t\relax + \def\@IEEEextractedtokenmacro{t}\relax +\else + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: \string\IEEEsettopmargin\space mode specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi +\fi +% handle each mode +\if\@IEEEextractedtoken a\relax + \advance\topmargin by \@IEEEtrantmpdimenA\relax +\else +\if\@IEEEextractedtoken q\relax + % we need to adjust by half the \IEEEquantizedtextheightdiff value + \@IEEEtrantmpdimenB\IEEEquantizedtextheightdiff\relax + \divide\@IEEEtrantmpdimenB by 2\relax + % a positive \IEEEquantizedtextheightdiff means we need to reduce \topmargin + % because \textheight has been lenghtened + \advance\topmargin by -\@IEEEtrantmpdimenB\relax + \advance\topmargin by \@IEEEtrantmpdimenA\relax +\else +\if\@IEEEextractedtoken c\relax + \topmargin\paperheight + \advance\topmargin by -\textheight + % \textheight includes \topskip, but we should not count topskip whitespace here, backout + \advance \topmargin by \topskip + \settoheight{\@IEEEtrantmpdimenB}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\topmargin by -\@IEEEtrantmpdimenB\relax + \settodepth{\@IEEEtrantmpdimenB}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\topmargin by -\@IEEEtrantmpdimenB\relax + \divide\topmargin by 2\relax + \advance\topmargin by \@IEEEtrantmpdimenA\relax +\else +\if\@IEEEextractedtoken b\relax + \topmargin\paperheight + \advance\topmargin by -\textheight + % \textheight includes \topskip, but we should not count topskip whitespace here, backout + \advance \topmargin by \topskip + \settodepth{\@IEEEtrantmpdimenB}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\topmargin by -\@IEEEtrantmpdimenB\relax + \advance\topmargin by -\@IEEEtrantmpdimenA\relax +\else + \if\@IEEEextractedtoken t\relax + \else + \@IEEEclspkgerror{Unknown mode type `\@IEEEextractedtokenmacro' in \string\IEEEsettopmargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}% + {Valid modes for \string\IEEEsettopmargin\space are: t, b, c, a and q.}\relax + \fi + \topmargin\@IEEEtrantmpdimenA\relax + \settoheight{\@IEEEtrantmpdimenB}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\topmargin by \@IEEEtrantmpdimenB\relax +\fi\fi % if t, b, c +% convert desired top margin into actual \topmargin +% this is not done for the q or a modes because they are only adjustments +\advance \topmargin by -\topskip +\advance \topmargin by -1in +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep +\fi\fi % if q, a +} + + + +% usage: \IEEEsetheadermargin[header sample][text sample]{mode: t, b, c, a}{margin/offset} +% Differentially adjusts \topmargin and \headsep (such that their sum is unchanged) +% based on the specified header margin. +% Takes into consideration the base 1in offset, \headheight, \topskip, and (by default) +% the actual height (or depth) of the \IEEEdefaultheadersampletext and +% \IEEEdefaultsampletext text. +% The available modes are: +% t = top margin (top of the header text to the top of the page) +% b = bottom margin (bottom of the header text to the top of the main text) +% c = vertically centered between the main text and the top of the page, +% with the given offset +% a = adjust the vertical position using the given offset +% For the offsets, positive values move the header downward. +% \headheight, \headsep, \topskip and \topmargin should be set properly before +% calling this function. +\def\IEEEsetheadermargin{\@ifnextchar [{\@IEEEsetheadermargin}{\@IEEEsetheadermargin[\IEEEdefaultheadersampletext]}} +\def\@IEEEsetheadermargin[#1]{\@ifnextchar [{\@@IEEEsetheadermargin[#1]}{\@@IEEEsetheadermargin[#1][\IEEEdefaultsampletext]}} +\def\@@IEEEsetheadermargin[#1][#2]#3#4{\@IEEEtrantmpdimenA #4\relax +\@IEEEextracttoken{#3}\relax +% check for mode errors +\ifx\@IEEEextractedtokenmacro\@empty + \@IEEEclspkgerror{Empty mode type in \string\IEEEsetheadermargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}{Valid modes for \string\IEEEsetheadermargin\space are: t, b, c, and a.}\relax + \let\@IEEEextractedtoken=t\relax + \def\@IEEEextractedtokenmacro{t}\relax +\else + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: \string\IEEEsetheadermargin\space mode specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi +\fi +% handle each mode +\if\@IEEEextractedtoken a\relax + % No need to do anything here and can pass through the adjustment + % value as is. The end adjustment of \topmargin and \headsep will + % do all that is needed +\else +\if\@IEEEextractedtoken c\relax + % get the bottom margin + \@IEEEtrantmpdimenB\headsep\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + \advance\@IEEEtrantmpdimenB by \topskip + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #2\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual header bottom margin + % subtract from it the top header margin + \advance\@IEEEtrantmpdimenB -1in\relax % take into consideration the system 1in offset of the top margin + \advance\@IEEEtrantmpdimenB by -\topmargin + \advance\@IEEEtrantmpdimenB by -\headheight + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by \@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the difference between the bottom and top margins + % we need to adjust by half this amount to center the header + \divide\@IEEEtrantmpdimenB by 2\relax + % and add to offset + \advance\@IEEEtrantmpdimenA by \@IEEEtrantmpdimenB +\else +\if\@IEEEextractedtoken b\relax + \@IEEEtrantmpdimenB\headsep\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + \advance\@IEEEtrantmpdimenB by \topskip + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #2\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual header bottom margin + % get the difference between the actual and the desired + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenA + \@IEEEtrantmpdimenA\@IEEEtrantmpdimenB +\else + \if\@IEEEextractedtoken t\relax + \else + \@IEEEclspkgerror{Unknown mode type `\@IEEEextractedtokenmacro' in \string\IEEEsetheadermargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}% + {Valid modes for \string\IEEEsetheadermargin\space are: t, b, c and a.}\relax + \fi + \@IEEEtrantmpdimenB 1in\relax % take into consideration the system 1in offset of the top margin + \advance\@IEEEtrantmpdimenB by \topmargin + \advance\@IEEEtrantmpdimenB by \headheight + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual header top margin + % get the difference between the desired and the actual + \advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpdimenB +\fi\fi % if t, b, c +\fi % if a +% advance \topmargin by the needed amount and reduce \headsep by the same +% so as not to disturb the location of the main text +\advance\topmargin by \@IEEEtrantmpdimenA\relax +\advance\headsep by -\@IEEEtrantmpdimenA\relax +} + + + +% usage: \IEEEsetfootermargin[footer sample][text sample]{mode: t, b, c, a}{margin/offset} +% Adjusts \footskip based on the specified footer margin. +% Takes into consideration the base 1in offset, \paperheight, \headheight, +% \headsep, \textheight and (by default) the actual height (or depth) of the +% \IEEEdefaultfootersampletext and \IEEEdefaultsampletext text. +% The available modes are: +% t = top margin (top of the footer text to the bottom of the main text) +% b = bottom margin (bottom of the footer text to the bottom of page) +% c = vertically centered between the main text and the bottom of the page, +% with the given offset +% a = adjust the vertical position using the given offset +% For the offsets, positive values move the footer downward. +% \headheight, \headsep, \topskip, \topmargin, and \textheight should be set +% properly before calling this function. +\def\IEEEsetfootermargin{\@ifnextchar [{\@IEEEsetfootermargin}{\@IEEEsetfootermargin[\IEEEdefaultfootersampletext]}} +\def\@IEEEsetfootermargin[#1]{\@ifnextchar [{\@@IEEEsetfootermargin[#1]}{\@@IEEEsetfootermargin[#1][\IEEEdefaultsampletext]}} +\def\@@IEEEsetfootermargin[#1][#2]#3#4{\@IEEEtrantmpdimenA #4\relax +\@IEEEextracttoken{#3}\relax +% check for mode errors +\ifx\@IEEEextractedtokenmacro\@empty + \@IEEEclspkgerror{Empty mode type in \string\IEEEsetfootermargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}{Valid modes for \string\IEEEsetfootermargin\space are: t, b, c, and a.}\relax + \let\@IEEEextractedtoken=t\relax + \def\@IEEEextractedtokenmacro{t}\relax +\else + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: \string\IEEEsetfootermargin\space mode specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi +\fi +% handle each mode +\if\@IEEEextractedtoken a\relax + % No need to do anything here and can pass through the adjustment + % value as is. The end adjustment of \footskip will do all that + % is needed +\else +\if\@IEEEextractedtoken c\relax + % calculate the bottom margin + \@IEEEtrantmpdimenB 1in\relax % system 1in offset + \advance\@IEEEtrantmpdimenB\topmargin\relax + \advance\@IEEEtrantmpdimenB\headheight\relax + \advance\@IEEEtrantmpdimenB\headsep\relax + \advance\@IEEEtrantmpdimenB\textheight\relax + \advance\@IEEEtrantmpdimenB\footskip\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenC by \@IEEEtrantmpdimenB + \@IEEEtrantmpdimenB\paperheight + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual footer bottom margin + % now subtract off the footer top margin + \advance\@IEEEtrantmpdimenB -\footskip\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #2\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by \@IEEEtrantmpdimenC + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by \@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the difference between the bottom + % and top footer margins + % our adjustment must be half this value to center the footer + \divide\@IEEEtrantmpdimenB by 2\relax + % add to the offset + \advance\@IEEEtrantmpdimenA by \@IEEEtrantmpdimenB +\else +\if\@IEEEextractedtoken b\relax + % calculate the bottom margin + \@IEEEtrantmpdimenB 1in\relax % system 1in offset + \advance\@IEEEtrantmpdimenB\topmargin\relax + \advance\@IEEEtrantmpdimenB\headheight\relax + \advance\@IEEEtrantmpdimenB\headsep\relax + \advance\@IEEEtrantmpdimenB\textheight\relax + \advance\@IEEEtrantmpdimenB\footskip\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenC by \@IEEEtrantmpdimenB + \@IEEEtrantmpdimenB\paperheight + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual footer bottom margin + % get the difference between the actual and the desired + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenA + \@IEEEtrantmpdimenA\@IEEEtrantmpdimenB +\else + \if\@IEEEextractedtoken t\relax + \else + \@IEEEclspkgerror{Unknown mode type `\@IEEEextractedtokenmacro' in \string\IEEEsetfootermargin\space (line \the\inputlineno).\MessageBreak + Defaulting to `t'}% + {Valid modes for \string\IEEEsetfootermargin\space are: t, b, c and a.}\relax + \fi + \@IEEEtrantmpdimenB\footskip\relax + \settodepth{\@IEEEtrantmpdimenC}{\begingroup #2\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + \settoheight{\@IEEEtrantmpdimenC}{\begingroup #1\relax\relax\relax\endgroup}\relax + \advance\@IEEEtrantmpdimenB by -\@IEEEtrantmpdimenC + % at this point \@IEEEtrantmpdimenB has the actual footer top margin + % get the difference between the desired and the actual + \advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpdimenB +\fi\fi % if t, b, c +\fi % if a +% advance \footskip by the needed amount +\advance\footskip by \@IEEEtrantmpdimenA\relax +} + +% -- End V1.8a page setup commands -- + + + + + +% V1.6 +% LaTeX is a little to quick to use hyphenations +% So, we increase the penalty for their use and raise +% the badness level that triggers an underfull hbox +% warning. The author may still have to tweak things, +% but the appearance will be much better "right out +% of the box" than that under V1.5 and prior. +% TeX default is 50 +\hyphenpenalty=750 +\ifCLASSOPTIONcompsoc +\hyphenpenalty 500 +\fi +% If we didn't adjust the interword spacing, 2200 might be better. +% The TeX default is 1000 +\hbadness=1350 +% The IEEE does not use extra spacing after punctuation +\frenchspacing + +% V1.7 increase this a tad to discourage equation breaks +\binoppenalty=1000 % default 700 +\relpenalty=800 % default 500 + +% v1.8a increase these to discourage widows and orphans +\clubpenalty=1000 % default 150 +\widowpenalty=1000 % default 150 +\displaywidowpenalty=1000 % default 50 + + +% margin note stuff +\marginparsep 10pt +\marginparwidth 20pt +\marginparpush 25pt + + +% if things get too close, go ahead and let them touch +\lineskip 0pt +\normallineskip 0pt +\lineskiplimit 0pt +\normallineskiplimit 0pt + +% The distance from the lower edge of the text body to the +% footline +\footskip 0.4in + +% normally zero, should be relative to font height. +% put in a little rubber to help stop some bad breaks (underfull vboxes) +\parskip 0ex plus 0.2ex minus 0.1ex + +\parindent 1.0em +\ifCLASSOPTIONcompsoc + \parindent 1.5em +\fi + +\headheight 12pt +\headsep 18pt +% use the normal font baselineskip +% so that \topskip is unaffected by changes in \baselinestretch +\topskip=\@IEEEnormalsizeunitybaselineskip + + +% V1.8 \maxdepth defaults to 4pt, but should be font size dependent +\maxdepth=0.5\@IEEEnormalsizeunitybaselineskip +\textheight 58pc % 9.63in, 696pt + +% set the default top margin to 58pt +% which results in a \topmargin of -49.59pt for 10pt documents +\IEEEsettopmargin{t}{58pt} +% tweak textheight to a perfect integer number of lines/column. +% standard is: 9pt/63 lpc; 10pt/58 lpc; 11pt/52 lpc; 12pt/50 lpc +\IEEEquantizetextheight{c} +% tweak top margin so that the error is shared equally at the top and bottom +\IEEEsettopmargin{q}{0sp} + + +\columnsep 1pc +\textwidth 43pc % 2 x 21pc + 1pc = 43pc + +% set the default side margins to center the text +\IEEEsetsidemargin{c}{0pt} + + +% adjust margins for default conference mode +\ifCLASSOPTIONconference + \textheight 9.25in % The standard for conferences (668.4975pt) + \IEEEsettopmargin{t}{0.75in} + % tweak textheight to a perfect integer number of lines/page. + % standard is: 9pt/61 lpc; 10pt/56 lpc; 11pt/50 lpc; 12pt/48 lpc + \IEEEquantizetextheight{c} + % tweak top margin so that the error is shared equally at the top and bottom + \IEEEsettopmargin{q}{0sp} +\fi + + +% compsoc text sizes, margins and spacings +\ifCLASSOPTIONcompsoc + \columnsep 12bp + % CS specs for \textwdith are 6.875in + % \textwidth 6.875in + % however, measurements from proofs show they are using 3.5in columns + \textwidth 7in + \advance\textwidth by \columnsep + % set the side margins to center the text + \IEEEsetsidemargin{c}{0pt} + % top/bottom margins to center + % could just set \textheight to 9.75in for all the different paper sizes + % and then quantize, but we'll do it the long way here to allow for easy + % future per-paper size adjustments + \IEEEsettextheight{0.625in}{0.625in}% 11in - 2 * 0.625in = 9.75in is the standard text height for compsoc journals + \IEEEsettopmargin{t}{0.625in} + \if@IEEEusingcspaper + \IEEEsettextheight{0.5in}{0.5in}% 10.75in - 2 * 0.5in = 9.75in + \IEEEsettopmargin{t}{0.5in} + \fi + \if@IEEEusingAfourpaper + \IEEEsettextheight{24.675mm}{24.675mm}% 297mm - 2 * 24.675mm = 247.650mm (9.75in) + \IEEEsettopmargin{t}{24.675mm} + \fi + % tweak textheight to a perfect integer number of lines/page. + % standard is: 9pt/65 lpc; 10pt/61 lpc; 11pt/53 lpc; 12pt/49 lpc + \IEEEquantizetextheight{c} + % tweak top margin so that the error is shared equally at the top and bottom + \IEEEsettopmargin{q}{0sp} + +% compsoc conference + \ifCLASSOPTIONconference + % compsoc conference use a larger value for columnsep + \columnsep 0.25in + \IEEEsettextwidth{0.75in}{0.75in} + % set the side margins to center the text (0.75in for letterpaper) + \IEEEsetsidemargin{c}{0pt} + % compsoc conferences want 1in top and bottom margin + \IEEEsettextheight{1in}{1in} + \IEEEsettopmargin{t}{1in} + % tweak textheight to a perfect integer number of lines/page. + % standard is: 9pt/58 lpc; 10pt/53 lpc; 11pt/48 lpc; 12pt/46 lpc + \IEEEquantizetextheight{c} + % tweak top margin so that the error is shared equally at the top and bottom + \IEEEsettopmargin{q}{0sp} + \fi +\fi + + + +% draft mode settings override that of all other modes +% provides a nice 1in margin all around the paper and extra +% space between the lines for editor's comments +\ifCLASSOPTIONdraftcls + % we want 1in side margins regardless of paper type + \IEEEsettextwidth{1in}{1in} + \IEEEsetsidemargin{c}{0pt} + % want 1in top and bottom margins + \IEEEsettextheight{1in}{1in} + \IEEEsettopmargin{t}{1in} + % digitize textheight to be an integer number of lines. + % this may cause the top and bottom margins to be off a tad + \IEEEquantizetextheight{c} + % tweak top margin so that the error is shared equally at the top and bottom + \IEEEsettopmargin{q}{0sp} +\fi + + + +% process CLASSINPUT inner/outer margin +% if inner margin defined, but outer margin not, set outer to inner. +\ifx\CLASSINPUTinnersidemargin\@IEEEundefined +\else + \ifx\CLASSINPUToutersidemargin\@IEEEundefined + \edef\CLASSINPUToutersidemargin{\CLASSINPUTinnersidemargin} + \fi +\fi + +\ifx\CLASSINPUToutersidemargin\@IEEEundefined +\else + % if outer margin defined, but inner margin not, set inner to outer. + \ifx\CLASSINPUTinnersidemargin\@IEEEundefined + \edef\CLASSINPUTinnersidemargin{\CLASSINPUToutersidemargin} + \fi + \IEEEsettextwidth{\CLASSINPUTinnersidemargin}{\CLASSINPUToutersidemargin} + \IEEEsetsidemargin{i}{\CLASSINPUTinnersidemargin} + \typeout{** ATTENTION: Overriding inner side margin to \CLASSINPUTinnersidemargin\space and + outer side margin to \CLASSINPUToutersidemargin\space via \string\CLASSINPUT.} +\fi + + + +% process CLASSINPUT top/bottom text margin +% if toptext margin defined, but bottomtext margin not, set bottomtext to toptext margin +\ifx\CLASSINPUTtoptextmargin\@IEEEundefined +\else + \ifx\CLASSINPUTbottomtextmargin\@IEEEundefined + \edef\CLASSINPUTbottomtextmargin{\CLASSINPUTtoptextmargin} + \fi +\fi + +\ifx\CLASSINPUTbottomtextmargin\@IEEEundefined +\else + % if bottomtext margin defined, but toptext margin not, set toptext to bottomtext margin + \ifx\CLASSINPUTtoptextmargin\@IEEEundefined + \edef\CLASSINPUTtoptextmargin{\CLASSINPUTbottomtextmargin} + \fi + \IEEEsettextheight{\CLASSINPUTtoptextmargin}{\CLASSINPUTbottomtextmargin} + \IEEEsettopmargin{t}{\CLASSINPUTtoptextmargin} + \typeout{** ATTENTION: Overriding top text margin to \CLASSINPUTtoptextmargin\space and + bottom text margin to \CLASSINPUTbottomtextmargin\space via \string\CLASSINPUT.} +\fi + + + +% default to center header and footer text in the margins +\IEEEsetheadermargin{c}{0pt} +\IEEEsetfootermargin{c}{0pt} + +% adjust header and footer positions for compsoc journals +\ifCLASSOPTIONcompsoc + \ifCLASSOPTIONjournal + \IEEEsetheadermargin{b}{\@IEEEnormalsizeunitybaselineskip} + \IEEEsetfootermargin{t}{\@IEEEnormalsizeunitybaselineskip} + \fi +\fi + + +% V1.8a display lines per column info message on user's console +\def\IEEEdisplayinfolinespercolumn{\@IEEEtrantmpdimenA=\textheight +% topskip represents only one line even if > baselineskip +\advance\@IEEEtrantmpdimenA by -1\topskip +\@IEEEtrantmpcountA=\@IEEEtrantmpdimenA +\@IEEEtrantmpcountB=\@IEEEtrantmpdimenA +\divide\@IEEEtrantmpcountB by \baselineskip +% need to add one line to include topskip (first) line +\advance\@IEEEtrantmpcountB by 1 +% save lines per column value as text +\edef\@IEEEnumlinespercolumninfotxt{\the\@IEEEtrantmpcountB} +% backout topskip advance to allow direct \@IEEEtrantmpcountA comparison +\advance\@IEEEtrantmpcountB by -1 +% restore value as text height (without topskip) rather than just as number of lines +\multiply\@IEEEtrantmpcountB by \baselineskip +% is the column height an integer number of lines per column? +\ifnum\@IEEEtrantmpcountA=\@IEEEtrantmpcountB +\edef\@IEEEnumlinespercolumnexactinfotxt{exact} +\else +\@IEEEtrantmpdimenA\@IEEEtrantmpcountA sp\relax +\advance\@IEEEtrantmpdimenA by -\@IEEEtrantmpcountB sp\relax +\edef\@IEEEnumlinespercolumnexactinfotxt{approximate, difference = \the\@IEEEtrantmpdimenA} +\fi +\typeout{-- Lines per column: \@IEEEnumlinespercolumninfotxt\space (\@IEEEnumlinespercolumnexactinfotxt).}} +% delay execution till start of document to allow for user changes +\AtBeginDocument{\IEEEdisplayinfolinespercolumn} + + + +% LIST SPACING CONTROLS + +% Controls the amount of EXTRA spacing +% above and below \trivlist +% Both \list and IED lists override this. +% However, \trivlist will use this as will most +% things built from \trivlist like the \center +% environment. +\topsep 0.5\baselineskip + +% Controls the additional spacing around lists preceded +% or followed by blank lines. the IEEE does not increase +% spacing before or after paragraphs so it is set to zero. +% \z@ is the same as zero, but faster. +\partopsep \z@ + +% Controls the spacing between paragraphs in lists. +% The IEEE does not increase spacing before or after paragraphs +% so this is also zero. +% With IEEEtran.cls, global changes to +% this value DO affect lists (but not IED lists). +\parsep \z@ + +% Controls the extra spacing between list items. +% The IEEE does not put extra spacing between items. +% With IEEEtran.cls, global changes to this value DO affect +% lists (but not IED lists). +\itemsep \z@ + +% \itemindent is the amount to indent the FIRST line of a list +% item. It is auto set to zero within the \list environment. To alter +% it, you have to do so when you call the \list. +% However, the IEEE uses this for the theorem environment +% There is an alternative value for this near \leftmargini below +\itemindent -1em + +% \leftmargin, the spacing from the left margin of the main text to +% the left of the main body of a list item is set by \list. +% Hence this statement does nothing for lists. +% But, quote and verse do use it for indention. +\leftmargin 2em + +% we retain this stuff from the older IEEEtran.cls so that \list +% will work the same way as before. However, itemize, enumerate and +% description (IED) could care less about what these are as they +% all are overridden. +\leftmargini 2em +%\itemindent 2em % Alternative values: sometimes used. +%\leftmargini 0em +\leftmarginii 1em +\leftmarginiii 1.5em +\leftmarginiv 1.5em +\leftmarginv 1.0em +\leftmarginvi 1.0em +\labelsep 0.5em +\labelwidth \z@ + + +% The old IEEEtran.cls behavior of \list is retained. +% However, the new V1.3 IED list environments override all the +% @list stuff (\@listX is called within \list for the +% appropriate level just before the user's list_decl is called). +% \topsep is now 2pt as the IEEE puts a little extra space around +% lists - used by those non-IED macros that depend on \list. +% Note that \parsep and \itemsep are not redefined as in +% the sizexx.clo \@listX (which article.cls uses) so global changes +% of these values DO affect \list +% +\def\@listi{\leftmargin\leftmargini \topsep 2pt plus 1pt minus 1pt} +\let\@listI\@listi +\def\@listii{\leftmargin\leftmarginii\labelwidth\leftmarginii% + \advance\labelwidth-\labelsep \topsep 2pt} +\def\@listiii{\leftmargin\leftmarginiii\labelwidth\leftmarginiii% + \advance\labelwidth-\labelsep \topsep 2pt} +\def\@listiv{\leftmargin\leftmarginiv\labelwidth\leftmarginiv% + \advance\labelwidth-\labelsep \topsep 2pt} +\def\@listv{\leftmargin\leftmarginv\labelwidth\leftmarginv% + \advance\labelwidth-\labelsep \topsep 2pt} +\def\@listvi{\leftmargin\leftmarginvi\labelwidth\leftmarginvi% + \advance\labelwidth-\labelsep \topsep 2pt} + + +% The IEEE uses 5) not 5. +\def\labelenumi{\theenumi)} \def\theenumi{\arabic{enumi}} + +% The IEEE uses a) not (a) +\def\labelenumii{\theenumii)} \def\theenumii{\alph{enumii}} + +% The IEEE uses iii) not iii. +\def\labelenumiii{\theenumiii)} \def\theenumiii{\roman{enumiii}} + +% The IEEE uses A) not A. +\def\labelenumiv{\theenumiv)} \def\theenumiv{\Alph{enumiv}} + +% exactly the same as in article.cls +\def\p@enumii{\theenumi} +\def\p@enumiii{\theenumi(\theenumii)} +\def\p@enumiv{\p@enumiii\theenumiii} + +% itemized list label styles +\def\labelitemi{$\scriptstyle\bullet$} +\def\labelitemii{\textbf{--}} +\def\labelitemiii{$\ast$} +\def\labelitemiv{$\cdot$} + + + +% **** V1.3 ENHANCEMENTS **** +% Itemize, Enumerate and Description (IED) List Controls +% *************************** +% +% +% The IEEE seems to use at least two different values by +% which ITEMIZED list labels are indented to the right +% For The Journal of Lightwave Technology (JLT) and The Journal +% on Selected Areas in Communications (JSAC), they tend to use +% an indention equal to \parindent. For Transactions on Communications +% they tend to indent ITEMIZED lists a little more--- 1.3\parindent. +% We'll provide both values here for you so that you can choose +% which one you like in your document using a command such as: +% setlength{\IEEEilabelindent}{\IEEEilabelindentB} +\newdimen\IEEEilabelindentA +\IEEEilabelindentA \parindent + +\newdimen\IEEEilabelindentB +\IEEEilabelindentB 1.3\parindent +% However, we'll default to using \parindent +% which makes more sense to me +\newdimen\IEEEilabelindent +\IEEEilabelindent \IEEEilabelindentA + + +% This controls the default amount the enumerated list labels +% are indented to the right. +% Normally, this is the same as the paragraph indention +\newdimen\IEEEelabelindent +\IEEEelabelindent \parindent + +% This controls the default amount the description list labels +% are indented to the right. +% Normally, this is the same as the paragraph indention +\newdimen\IEEEdlabelindent +\IEEEdlabelindent \parindent + +% This is the value actually used within the IED lists. +% The IED environments automatically set its value to +% one of the three values above, so global changes do +% not have any effect +\newdimen\IEEElabelindent +\IEEElabelindent \parindent + +% The actual amount labels will be indented is +% \IEEElabelindent multiplied by the factor below +% corresponding to the level of nesting depth +% This provides a means by which the user can +% alter the effective \IEEElabelindent for deeper +% levels +% There may not be such a thing as correct "standard IEEE" +% values. What the IEEE actually does may depend on the specific +% circumstances. +% The first list level almost always has full indention. +% The second levels I've seen have only 75% of the normal indentation +% Three level or greater nestings are very rare. I am guessing +% that they don't use any indentation. +\def\IEEElabelindentfactori{1.0} % almost always one +\def\IEEElabelindentfactorii{0.75} % 0.0 or 1.0 may be used in some cases +\def\IEEElabelindentfactoriii{0.0} % 0.75? 0.5? 0.0? +\def\IEEElabelindentfactoriv{0.0} +\def\IEEElabelindentfactorv{0.0} +\def\IEEElabelindentfactorvi{0.0} + +% value actually used within IED lists, it is auto +% set to one of the 6 values above +% global changes here have no effect +\def\IEEElabelindentfactor{1.0} + +% This controls the default spacing between the end of the IED +% list labels and the list text, when normal text is used for +% the labels. +% compsoc uses a larger value here, but we'll set that later +% in the class so that this code block area can be extracted +% as-is for IEEEtrantools.sty +\newdimen\IEEEiednormlabelsep +\IEEEiednormlabelsep 0.6em + +% This controls the default spacing between the end of the IED +% list labels and the list text, when math symbols are used for +% the labels (nomenclature lists). The IEEE usually increases the +% spacing in these cases +\newdimen\IEEEiedmathlabelsep +\IEEEiedmathlabelsep 1.2em + +% This controls the extra vertical separation put above and +% below each IED list. the IEEE usually puts a little extra spacing +% around each list. However, this spacing is barely noticeable. +% compsoc uses a larger value here, but we'll set that later +% in the class so that this code block area can be extracted +% as-is for IEEEtrantools.sty +\newskip\IEEEiedtopsep +\IEEEiedtopsep 2pt plus 1pt minus 1pt + + +% This command is executed within each IED list environment +% at the beginning of the list. You can use this to set the +% parameters for some/all your IED list(s) without disturbing +% global parameters that affect things other than lists. +% i.e., renewcommand{\IEEEiedlistdecl}{\setlength{\labelsep}{5em}} +% will alter the \labelsep for the next list(s) until +% \IEEEiedlistdecl is redefined. +\def\IEEEiedlistdecl{\relax} + +% This command provides an easy way to set \leftmargin based +% on the \labelwidth, \labelsep and the argument \IEEElabelindent +% Usage: \IEEEcalcleftmargin{width-to-indent-the-label} +% output is in the \leftmargin variable, i.e., effectively: +% \leftmargin = argument + \labelwidth + \labelsep +% Note controlled spacing here, shield end of lines with % +\def\IEEEcalcleftmargin#1{\setlength{\leftmargin}{#1}% +\addtolength{\leftmargin}{\labelwidth}% +\addtolength{\leftmargin}{\labelsep}} + +% This command provides an easy way to set \labelwidth to the +% width of the given text. It is the same as +% \settowidth{\labelwidth}{label-text} +% and useful as a shorter alternative. +% Typically used to set \labelwidth to be the width +% of the longest label in the list +\def\IEEEsetlabelwidth#1{\settowidth{\labelwidth}{#1}} + +% When this command is executed, IED lists will use the +% IEEEiedmathlabelsep label separation rather than the normal +% spacing. To have an effect, this command must be executed via +% the \IEEEiedlistdecl or within the option of the IED list +% environments. +\def\IEEEusemathlabelsep{\setlength{\labelsep}{\IEEEiedmathlabelsep}} + +% A flag which controls whether the IED lists automatically +% calculate \leftmargin from \IEEElabelindent, \labelwidth and \labelsep +% Useful if you want to specify your own \leftmargin +% This flag must be set (\IEEEnocalcleftmargintrue or \IEEEnocalcleftmarginfalse) +% via the \IEEEiedlistdecl or within the option of the IED list +% environments to have an effect. +\newif\ifIEEEnocalcleftmargin +\IEEEnocalcleftmarginfalse + +% A flag which controls whether \IEEElabelindent is multiplied by +% the \IEEElabelindentfactor for each list level. +% This flag must be set via the \IEEEiedlistdecl or within the option +% of the IED list environments to have an effect. +\newif\ifIEEEnolabelindentfactor +\IEEEnolabelindentfactorfalse + + +% internal variable to indicate type of IED label +% justification +% 0 - left; 1 - center; 2 - right +\def\@IEEEiedjustify{0} + + +% commands to allow the user to control IED +% label justifications. Use these commands within +% the IED environment option or in the \IEEEiedlistdecl +% Note that changing the normal list justifications +% is nonstandard and the IEEE may not like it if you do so! +% I include these commands as they may be helpful to +% those who are using these enhanced list controls for +% other non-IEEE related LaTeX work. +% itemize and enumerate automatically default to right +% justification, description defaults to left. +\def\IEEEiedlabeljustifyl{\def\@IEEEiedjustify{0}}%left +\def\IEEEiedlabeljustifyc{\def\@IEEEiedjustify{1}}%center +\def\IEEEiedlabeljustifyr{\def\@IEEEiedjustify{2}}%right + + + + +% commands to save to and restore from the list parameter copies +% this allows us to set all the list parameters within +% the list_decl and prevent \list (and its \@list) +% from overriding any of our parameters +% V1.6 use \edefs instead of dimen's to conserve dimen registers +% Note controlled spacing here, shield end of lines with % +\def\@IEEEsavelistparams{\edef\@IEEEiedtopsep{\the\topsep}% +\edef\@IEEEiedlabelwidth{\the\labelwidth}% +\edef\@IEEEiedlabelsep{\the\labelsep}% +\edef\@IEEEiedleftmargin{\the\leftmargin}% +\edef\@IEEEiedpartopsep{\the\partopsep}% +\edef\@IEEEiedparsep{\the\parsep}% +\edef\@IEEEieditemsep{\the\itemsep}% +\edef\@IEEEiedrightmargin{\the\rightmargin}% +\edef\@IEEEiedlistparindent{\the\listparindent}% +\edef\@IEEEieditemindent{\the\itemindent}} + +% Note controlled spacing here +\def\@IEEErestorelistparams{\topsep\@IEEEiedtopsep\relax% +\labelwidth\@IEEEiedlabelwidth\relax% +\labelsep\@IEEEiedlabelsep\relax% +\leftmargin\@IEEEiedleftmargin\relax% +\partopsep\@IEEEiedpartopsep\relax% +\parsep\@IEEEiedparsep\relax% +\itemsep\@IEEEieditemsep\relax% +\rightmargin\@IEEEiedrightmargin\relax% +\listparindent\@IEEEiedlistparindent\relax% +\itemindent\@IEEEieditemindent\relax} + + +% v1.6b provide original LaTeX IED list environments +% note that latex.ltx defines \itemize and \enumerate, but not \description +% which must be created by the base classes +% save original LaTeX itemize and enumerate +\let\LaTeXitemize\itemize +\let\endLaTeXitemize\enditemize +\let\LaTeXenumerate\enumerate +\let\endLaTeXenumerate\endenumerate + +% provide original LaTeX description environment from article.cls +\newenvironment{LaTeXdescription} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} +\newcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} + + +% override LaTeX's default IED lists +\def\itemize{\@IEEEitemize} +\def\enditemize{\@endIEEEitemize} +\def\enumerate{\@IEEEenumerate} +\def\endenumerate{\@endIEEEenumerate} +\def\description{\@IEEEdescription} +\def\enddescription{\@endIEEEdescription} + +% provide the user with aliases - may help those using packages that +% override itemize, enumerate, or description +\def\IEEEitemize{\@IEEEitemize} +\def\endIEEEitemize{\@endIEEEitemize} +\def\IEEEenumerate{\@IEEEenumerate} +\def\endIEEEenumerate{\@endIEEEenumerate} +\def\IEEEdescription{\@IEEEdescription} +\def\endIEEEdescription{\@endIEEEdescription} + + +% V1.6 we want to keep the IEEEtran IED list definitions as our own internal +% commands so they are protected against redefinition +\def\@IEEEitemize{\@ifnextchar[{\@@IEEEitemize}{\@@IEEEitemize[\relax]}} +\def\@IEEEenumerate{\@ifnextchar[{\@@IEEEenumerate}{\@@IEEEenumerate[\relax]}} +\def\@IEEEdescription{\@ifnextchar[{\@@IEEEdescription}{\@@IEEEdescription[\relax]}} +\def\@endIEEEitemize{\endlist} +\def\@endIEEEenumerate{\endlist} +\def\@endIEEEdescription{\endlist} + + +% DO NOT ALLOW BLANK LINES TO BE IN THESE IED ENVIRONMENTS +% AS THIS WILL FORCE NEW PARAGRAPHS AFTER THE IED LISTS +% IEEEtran itemized list MDS 1/2001 +% Note controlled spacing here, shield end of lines with % +\def\@@IEEEitemize[#1]{% + \ifnum\@itemdepth>3\relax\@toodeep\else% + \ifnum\@listdepth>5\relax\@toodeep\else% + \advance\@itemdepth\@ne% + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + % get the IEEElabelindentfactor for this level + \advance\@listdepth\@ne% we need to know what the level WILL be + \edef\IEEElabelindentfactor{\csname IEEElabelindentfactor\romannumeral\the\@listdepth\endcsname}% + \advance\@listdepth-\@ne% undo our increment + \def\@IEEEiedjustify{2}% right justified labels are default + % set other defaults + \IEEEnocalcleftmarginfalse% + \IEEEnolabelindentfactorfalse% + \topsep\IEEEiedtopsep% + \IEEElabelindent\IEEEilabelindent% + \labelsep\IEEEiednormlabelsep% + \partopsep 0ex% + \parsep 0ex% + \itemsep 0ex% + \rightmargin 0em% + \listparindent 0em% + \itemindent 0em% + % calculate the label width + % the user can override this later if + % they specified a \labelwidth + \settowidth{\labelwidth}{\csname labelitem\romannumeral\the\@itemdepth\endcsname}% + \@IEEEsavelistparams% save our list parameters + \list{\csname\@itemitem\endcsname}{% + \@IEEErestorelistparams% override any list{} changes + % to our globals + \let\makelabel\@IEEEiedmakelabel% v1.6b setup \makelabel + \IEEEiedlistdecl% let user alter parameters + #1\relax% + % If the user has requested not to use the + % IEEElabelindent factor, don't revise \IEEElabelindent + \ifIEEEnolabelindentfactor\relax% + \else\IEEElabelindent=\IEEElabelindentfactor\IEEElabelindent% + \fi% + % Unless the user has requested otherwise, + % calculate our left margin based + % on \IEEElabelindent, \labelwidth and + % \labelsep + \ifIEEEnocalcleftmargin\relax% + \else\IEEEcalcleftmargin{\IEEElabelindent}% + \fi}\fi\fi}% + + +% DO NOT ALLOW BLANK LINES TO BE IN THESE IED ENVIRONMENTS +% AS THIS WILL FORCE NEW PARAGRAPHS AFTER THE IED LISTS +% IEEEtran enumerate list MDS 1/2001 +% Note controlled spacing here, shield end of lines with % +\def\@@IEEEenumerate[#1]{% + \ifnum\@enumdepth>3\relax\@toodeep\else% + \ifnum\@listdepth>5\relax\@toodeep\else% + \advance\@enumdepth\@ne% + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + % get the IEEElabelindentfactor for this level + \advance\@listdepth\@ne% we need to know what the level WILL be + \edef\IEEElabelindentfactor{\csname IEEElabelindentfactor\romannumeral\the\@listdepth\endcsname}% + \advance\@listdepth-\@ne% undo our increment + \def\@IEEEiedjustify{2}% right justified labels are default + % set other defaults + \IEEEnocalcleftmarginfalse% + \IEEEnolabelindentfactorfalse% + \topsep\IEEEiedtopsep% + \IEEElabelindent\IEEEelabelindent% + \labelsep\IEEEiednormlabelsep% + \partopsep 0ex% + \parsep 0ex% + \itemsep 0ex% + \rightmargin 0em% + \listparindent 0em% + \itemindent 0em% + % calculate the label width + % We'll set it to the width suitable for all labels using + % normalfont 1) to 9) + % The user can override this later + \settowidth{\labelwidth}{9)}% + \@IEEEsavelistparams% save our list parameters + \list{\csname label\@enumctr\endcsname}{\usecounter{\@enumctr}% + \@IEEErestorelistparams% override any list{} changes + % to our globals + \let\makelabel\@IEEEiedmakelabel% v1.6b setup \makelabel + \IEEEiedlistdecl% let user alter parameters + #1\relax% + % If the user has requested not to use the + % IEEElabelindent factor, don't revise \IEEElabelindent + \ifIEEEnolabelindentfactor\relax% + \else\IEEElabelindent=\IEEElabelindentfactor\IEEElabelindent% + \fi% + % Unless the user has requested otherwise, + % calculate our left margin based + % on \IEEElabelindent, \labelwidth and + % \labelsep + \ifIEEEnocalcleftmargin\relax% + \else\IEEEcalcleftmargin{\IEEElabelindent}% + \fi}\fi\fi}% + + +% DO NOT ALLOW BLANK LINES TO BE IN THESE IED ENVIRONMENTS +% AS THIS WILL FORCE NEW PARAGRAPHS AFTER THE IED LISTS +% IEEEtran description list MDS 1/2001 +% Note controlled spacing here, shield end of lines with % +\def\@@IEEEdescription[#1]{% + \ifnum\@listdepth>5\relax\@toodeep\else% + % get the IEEElabelindentfactor for this level + \advance\@listdepth\@ne% we need to know what the level WILL be + \edef\IEEElabelindentfactor{\csname IEEElabelindentfactor\romannumeral\the\@listdepth\endcsname}% + \advance\@listdepth-\@ne% undo our increment + \def\@IEEEiedjustify{0}% left justified labels are default + % set other defaults + \IEEEnocalcleftmarginfalse% + \IEEEnolabelindentfactorfalse% + \topsep\IEEEiedtopsep% + \IEEElabelindent\IEEEdlabelindent% + % assume normal labelsep + \labelsep\IEEEiednormlabelsep% + \partopsep 0ex% + \parsep 0ex% + \itemsep 0ex% + \rightmargin 0em% + \listparindent 0em% + \itemindent 0em% + % Bogus label width in case the user forgets + % to set it. + % TIP: If you want to see what a variable's width is you + % can use the TeX command \showthe\width-variable to + % display it on the screen during compilation + % (This might be helpful to know when you need to find out + % which label is the widest) + \settowidth{\labelwidth}{Hello}% + \@IEEEsavelistparams% save our list parameters + \list{}{\@IEEErestorelistparams% override any list{} changes + % to our globals + \let\makelabel\@IEEEiedmakelabel% v1.6b setup \makelabel + \IEEEiedlistdecl% let user alter parameters + #1\relax% + % If the user has requested not to use the + % labelindent factor, don't revise \IEEElabelindent + \ifIEEEnolabelindentfactor\relax% + \else\IEEElabelindent=\IEEElabelindentfactor\IEEElabelindent% + \fi% + % Unless the user has requested otherwise, + % calculate our left margin based + % on \IEEElabelindent, \labelwidth and + % \labelsep + \ifIEEEnocalcleftmargin\relax% + \else\IEEEcalcleftmargin{\IEEElabelindent}\relax% + \fi}\fi} + +% v1.6b we use one makelabel that does justification as needed. +\def\@IEEEiedmakelabel#1{\relax\if\@IEEEiedjustify 0\relax +\makebox[\labelwidth][l]{\normalfont #1}\else +\if\@IEEEiedjustify 1\relax +\makebox[\labelwidth][c]{\normalfont #1}\else +\makebox[\labelwidth][r]{\normalfont #1}\fi\fi} + + +% compsoc uses a larger value for the normal labelsep +% and also extra spacing above and below each list +\ifCLASSOPTIONcompsoc + \IEEEiednormlabelsep 1.2em + \IEEEiedtopsep 6pt plus 3pt minus 3pt +\fi + + +% VERSE and QUOTE +% V1.7 define environments with newenvironment +\newenvironment{verse}{\let\\=\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em \listparindent \itemindent + \rightmargin\leftmargin\advance\leftmargin 1.5em}\item\relax} + {\endlist} +\newenvironment{quotation}{\list{}{\listparindent 1.5em \itemindent\listparindent + \rightmargin\leftmargin \parsep 0pt plus 1pt}\item\relax} + {\endlist} +\newenvironment{quote}{\list{}{\rightmargin\leftmargin}\item\relax} + {\endlist} + + +% \titlepage +% provided only for backward compatibility. \maketitle is the correct +% way to create the title page. +\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \else \newpage \fi \thispagestyle{empty}\c@page\z@} +\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi} + +% standard values from article.cls +\arraycolsep 5pt +\arrayrulewidth .4pt +\doublerulesep 2pt + +\tabcolsep 6pt +\tabbingsep 0.5em + + +%% FOOTNOTES +% +%\skip\footins 10pt plus 4pt minus 2pt +% V1.6 respond to changes in font size +% space added above the footnotes (if present) +\skip\footins 0.9\baselineskip plus 0.4\baselineskip minus 0.2\baselineskip + +% V1.6, we need to make \footnotesep responsive to changes +% in \baselineskip or strange spacings will result when in +% draft mode. Here is a little LaTeX secret - \footnotesep +% determines the height of an invisible strut that is placed +% *above* the baseline of footnotes after the first. Since +% LaTeX considers the space for characters to be 0.7\baselineskip +% above the baseline and 0.3\baselineskip below it, we need to +% use 0.7\baselineskip as a \footnotesep to maintain equal spacing +% between all the lines of the footnotes. The IEEE often uses a tad +% more, so use 0.8\baselineskip. This slightly larger value also helps +% the text to clear the footnote marks. Note that \thanks in IEEEtran +% uses its own value of \footnotesep which is set in \maketitle. +{\footnotesize +\global\footnotesep 0.8\baselineskip} + + +\skip\@mpfootins = \skip\footins +\fboxsep = 3pt +\fboxrule = .4pt +% V1.6 use 1em, then use LaTeX2e's \@makefnmark +% Note that the IEEE normally *left* aligns the footnote marks, so we don't need +% box resizing tricks here. +\long\def\@makefntext#1{\parindent 1em\indent\hbox{\@makefnmark}#1}% V1.6 use 1em +% V1.7 compsoc does not use superscipts for footnote marks +\ifCLASSOPTIONcompsoc +\def\@IEEEcompsocmakefnmark{\hbox{\normalfont\@thefnmark.\ }} +\long\def\@makefntext#1{\parindent 1em\indent\hbox{\@IEEEcompsocmakefnmark}#1} +\fi + +% The IEEE does not use footnote rules +\def\footnoterule{} + +% V1.7 for compsoc, the IEEE uses a footnote rule only for \thanks. We devise a "one-shot" +% system to implement this. +\newif\if@IEEEenableoneshotfootnoterule +\@IEEEenableoneshotfootnoterulefalse +\ifCLASSOPTIONcompsoc +\def\footnoterule{\relax\if@IEEEenableoneshotfootnoterule +\kern-5pt +\hbox to \columnwidth{\hfill\vrule width 0.5\columnwidth height 0.4pt\hfill} +\kern4.6pt +\global\@IEEEenableoneshotfootnoterulefalse +\else +\relax +\fi} +\fi + +% V1.6 do not allow LaTeX to break a footnote across multiple pages +\interfootnotelinepenalty=10000 + +% V1.6 discourage breaks within equations +% Note that amsmath normally sets this to 10000, +% but LaTeX2e normally uses 100. +\interdisplaylinepenalty=2500 + +% default allows section depth up to /paragraph +\setcounter{secnumdepth}{4} + +% technotes do not allow /paragraph +\ifCLASSOPTIONtechnote + \setcounter{secnumdepth}{3} +\fi +% neither do compsoc conferences +\@IEEEcompsocconfonly{\setcounter{secnumdepth}{3}} + + +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] + +% used only by IEEEtran's IEEEeqnarray as other packages may +% have their own, different, implementations +\newcounter{IEEEsubequation}[equation] + +% as shown when called by user from \ref, \label and in table of contents +\def\theequation{\arabic{equation}} % 1 +\def\theIEEEsubequation{\theequation\alph{IEEEsubequation}} % 1a (used only by IEEEtran's IEEEeqnarray) +\ifCLASSOPTIONcompsoc +% compsoc is all arabic +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} +\else +\def\thesection{\Roman{section}} % I +% V1.7, \mbox prevents breaks around - +\def\thesubsection{\mbox{\thesection-\Alph{subsection}}} % I-A +% V1.7 use I-A1 format used by the IEEE rather than I-A.1 +\def\thesubsubsection{\thesubsection\arabic{subsubsection}} % I-A1 +\def\theparagraph{\thesubsubsection\alph{paragraph}} % I-A1a +\fi + +% From Heiko Oberdiek. Because of the \mbox in \thesubsection, we need to +% tell hyperref to disable the \mbox command when making PDF bookmarks. +% This done already with hyperref.sty version 6.74o and later, but +% it will not hurt to do it here again for users of older versions. +\@ifundefined{pdfstringdefPreHook}{\let\pdfstringdefPreHook\@empty}{}% +\g@addto@macro\pdfstringdefPreHook{\let\mbox\relax} + + +% Main text forms (how shown in main text headings) +% V1.6, using \thesection in \thesectiondis allows changes +% in the former to automatically appear in the latter +\ifCLASSOPTIONcompsoc + \ifCLASSOPTIONconference% compsoc conference + \def\thesectiondis{\thesection.} + \def\thesubsectiondis{\thesectiondis\arabic{subsection}.} + \def\thesubsubsectiondis{\thesubsectiondis\arabic{subsubsection}.} + \def\theparagraphdis{\thesubsubsectiondis\arabic{paragraph}.} + \else% compsoc not conferencs + \def\thesectiondis{\thesection} + \def\thesubsectiondis{\thesectiondis.\arabic{subsection}} + \def\thesubsubsectiondis{\thesubsectiondis.\arabic{subsubsection}} + \def\theparagraphdis{\thesubsubsectiondis.\arabic{paragraph}} + \fi +\else% not compsoc + \def\thesectiondis{\thesection.} % I. + \def\thesubsectiondis{\Alph{subsection}.} % B. + \def\thesubsubsectiondis{\arabic{subsubsection})} % 3) + \def\theparagraphdis{\alph{paragraph})} % d) +\fi + +% just like LaTeX2e's \@eqnnum +\def\theequationdis{{\normalfont \normalcolor (\theequation)}}% (1) +% IEEEsubequation used only by IEEEtran's IEEEeqnarray +\def\theIEEEsubequationdis{{\normalfont \normalcolor (\theIEEEsubequation)}}% (1a) +% redirect LaTeX2e's equation number display and all that depend on +% it, through IEEEtran's \theequationdis +\def\@eqnnum{\theequationdis} + + + +% V1.7 provide string macros as article.cls does +\def\contentsname{Contents} +\def\listfigurename{List of Figures} +\def\listtablename{List of Tables} +\def\refname{References} +\def\indexname{Index} +\def\figurename{Fig.} +\def\tablename{TABLE} +\@IEEEcompsocconfonly{\def\figurename{Figure}} +\def\partname{Part} +\def\appendixname{Appendix} +\def\abstractname{Abstract} +% IEEE specific names +\def\IEEEkeywordsname{Index Terms} +\def\IEEEproofname{Proof} + + +% LIST OF FIGURES AND TABLES AND TABLE OF CONTENTS +% +\def\@pnumwidth{1.55em} +\def\@tocrmarg{2.55em} +\def\@dotsep{4.5} +\setcounter{tocdepth}{3} + +% adjusted some spacings here so that section numbers will not easily +% collide with the section titles. +% VIII; VIII-A; and VIII-A.1 are usually the worst offenders. +% MDS 1/2001 +\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}} +\def\l@section#1#2{\addpenalty{\@secpenalty}\addvspace{1.0em plus 1pt}% + \@tempdima 2.75em \begingroup \parindent \z@ \rightskip \@pnumwidth% + \parfillskip-\@pnumwidth {\bfseries\leavevmode #1}\hfil\hbox to\@pnumwidth{\hss #2}\par% + \endgroup} +% argument format #1:level, #2:labelindent,#3:labelsep +\def\l@subsection{\@dottedtocline{2}{2.75em}{3.75em}} +\def\l@subsubsection{\@dottedtocline{3}{6.5em}{4.5em}} +% must provide \l@ defs for ALL sublevels EVEN if tocdepth +% is such as they will not appear in the table of contents +% these defs are how TOC knows what level these things are! +\def\l@paragraph{\@dottedtocline{4}{6.5em}{5.5em}} +\def\l@subparagraph{\@dottedtocline{5}{6.5em}{6.5em}} +\def\listoffigures{\section*{\listfigurename}\@starttoc{lof}} +\def\l@figure{\@dottedtocline{1}{0em}{2.75em}} +\def\listoftables{\section*{\listtablename}\@starttoc{lot}} +\let\l@table\l@figure + + +% Definitions for floats +% +% Normal Floats +% V1.8 floatsep et al. revised down by 0.15\baselineskip +% to account for the sideeffects of \topskip compensation +\floatsep 0.85\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip +\textfloatsep 1.55\baselineskip plus 0.2\baselineskip minus 0.4\baselineskip +\@fptop 0pt plus 1fil +\@fpsep 0.75\baselineskip plus 2fil +\@fpbot 0pt plus 1fil +\def\topfraction{0.9} +\def\bottomfraction{0.4} +\def\floatpagefraction{0.8} +% V1.7, let top floats approach 90% of page +\def\textfraction{0.1} + +% Double Column Floats +\dblfloatsep 0.85\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip + +\dbltextfloatsep 1.55\baselineskip plus 0.2\baselineskip minus 0.4\baselineskip +% Note that it would be nice if the rubber here actually worked in LaTeX2e. +% There is a long standing limitation in LaTeX, first discovered (to the best +% of my knowledge) by Alan Jeffrey in 1992. LaTeX ignores the stretchable +% portion of \dbltextfloatsep, and as a result, double column figures can and +% do result in an non-integer number of lines in the main text columns with +% underfull vbox errors as a consequence. A post to comp.text.tex +% by Donald Arseneau confirms that this had not yet been fixed in 1998. +% IEEEtran V1.6 will fix this problem for you in the titles, but it doesn't +% protect you from other double floats. Happy vspace'ing. + +\@dblfptop 0pt plus 1fil +\@dblfpsep 0.75\baselineskip plus 2fil +\@dblfpbot 0pt plus 1fil +\def\dbltopfraction{0.8} +\def\dblfloatpagefraction{0.8} +\setcounter{dbltopnumber}{4} + +\intextsep 0.85\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{2} +\setcounter{totalnumber}{4} + + + +% article class provides these, we should too. +\newlength\abovecaptionskip +\newlength\belowcaptionskip +% but only \abovecaptionskip is used above figure captions and *below* table +% captions +\setlength\abovecaptionskip{0.5\baselineskip} +% compsoc journals are a little more generous +\ifCLASSOPTIONcompsoc\ifCLASSOPTIONjournal + \setlength\abovecaptionskip{0.75\baselineskip} +\fi\fi +\setlength\belowcaptionskip{0pt} +% V1.6 create hooks in case the caption spacing ever needs to be +% overridden by a user +\def\@IEEEfigurecaptionsepspace{\vskip\abovecaptionskip\relax}% +\def\@IEEEtablecaptionsepspace{\vskip\abovecaptionskip\relax}% + + +% 1.6b revise caption system so that \@makecaption uses two arguments +% as with LaTeX2e. Otherwise, there will be problems when using hyperref. +\def\@IEEEtablestring{table} + + +% V1.8 compensate for \topskip so top of top figures align with tops of the first lines of main text +% here we calculate a space equal to the amount \topskip exceeds the main text height +% we hook in at \@floatboxreset +\def\@IEEEfiguretopskipspace{\ifdim\prevdepth=-1000pt\relax +\setlength{\@IEEEtrantmpdimenA}{1\topskip}\relax +\addtolength{\@IEEEtrantmpdimenA}{-0.7\@IEEEnormalsizeunitybaselineskip}\relax +\vspace*{\@IEEEtrantmpdimenA}\fi} +% V1.8 compensate for \topskip at the top of top tables so caption text is on main text baseline +% use a strut set on the caption baseline within \@makecaption +\def\@IEEEtabletopskipstrut{\ifdim\prevdepth=-1000pt\rule{0pt}{\topskip}\fi} +% the \ifdim\prevdepth checks are always expected to be true for IEEE style float caption ordering +% because top of figure content and top of captions in tables is the first thing on the vertical +% list of these floats +% thanks to Donald Arseneau for his 2000/11/11 post "Re: caption hacking" with info on this topic. + + +\ifCLASSOPTIONcompsoc +% V1.7 compsoc \@makecaption +\ifCLASSOPTIONconference% compsoc conference +\long\def\@makecaption#1#2{% +% test if is a for a figure or table +\ifx\@captype\@IEEEtablestring% +% if a table, do table caption +\footnotesize\bgroup\par\centering\@IEEEtabletopskipstrut{\normalfont\footnotesize {#1.}\nobreakspace\scshape #2}\par\addvspace{0.5\baselineskip}\egroup% +\@IEEEtablecaptionsepspace +% if not a table, format it as a figure +\else +\@IEEEfigurecaptionsepspace +\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}\nobreakspace #2}% +\ifdim \wd\@tempboxa >\hsize% +% if caption is longer than a line, let it wrap around +\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}\nobreakspace}% +\parbox[t]{\hsize}{\normalfont\footnotesize \noindent\unhbox\@tempboxa#2}% +% if caption is shorter than a line, center +\else% +\hbox to\hsize{\normalfont\footnotesize\hfil\box\@tempboxa\hfil}% +\fi\fi} +% +\else% nonconference compsoc +\long\def\@makecaption#1#2{% +% test if is a for a figure or table +\ifx\@captype\@IEEEtablestring% +% if a table, do table caption +\footnotesize\bgroup\par\centering\@IEEEtabletopskipstrut{\normalfont\sffamily\footnotesize #1}\\{\normalfont\sffamily\footnotesize #2}\par\addvspace{0.5\baselineskip}\egroup% +\@IEEEtablecaptionsepspace +% if not a table, format it as a figure +\else +\@IEEEfigurecaptionsepspace +\setbox\@tempboxa\hbox{\normalfont\sffamily\footnotesize {#1.}\nobreakspace #2}% +\ifdim \wd\@tempboxa >\hsize% +% if caption is longer than a line, let it wrap around +\setbox\@tempboxa\hbox{\normalfont\sffamily\footnotesize {#1.}\nobreakspace}% +\parbox[t]{\hsize}{\normalfont\sffamily\footnotesize \noindent\unhbox\@tempboxa#2}% +% if caption is shorter than a line, left justify +\else% +\hbox to\hsize{\normalfont\sffamily\footnotesize\box\@tempboxa\hfil}% +\fi\fi} +\fi +% +\else% traditional noncompsoc \@makecaption +\long\def\@makecaption#1#2{% +% test if is a for a figure or table +\ifx\@captype\@IEEEtablestring% +% if a table, do table caption +\footnotesize\bgroup\par\centering\@IEEEtabletopskipstrut{\normalfont\footnotesize #1}\\{\normalfont\footnotesize\scshape #2}\par\addvspace{0.5\baselineskip}\egroup% +\@IEEEtablecaptionsepspace +% if not a table, format it as a figure +\else +\@IEEEfigurecaptionsepspace +% 3/2001 use footnotesize, not small; use two nonbreaking spaces, not one +\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}\nobreakspace\nobreakspace #2}% +\ifdim \wd\@tempboxa >\hsize% +% if caption is longer than a line, let it wrap around +\setbox\@tempboxa\hbox{\normalfont\footnotesize {#1.}\nobreakspace\nobreakspace}% +\parbox[t]{\hsize}{\normalfont\footnotesize\noindent\unhbox\@tempboxa#2}% +% if caption is shorter than a line, center if conference, left justify otherwise +\else% +\ifCLASSOPTIONconference \hbox to\hsize{\normalfont\footnotesize\hfil\box\@tempboxa\hfil}% +\else \hbox to\hsize{\normalfont\footnotesize\box\@tempboxa\hfil}% +\fi\fi\fi} +\fi + + + +% V1.7 disable captions class option, do so in a way that retains operation of \label +% within \caption +\ifCLASSOPTIONcaptionsoff +\long\def\@makecaption#1#2{\vspace*{2em}\footnotesize\bgroup\par\addvspace{0.5\baselineskip}\centering{\footnotesize #1}\par\addvspace{0.5\baselineskip}\egroup% +\let\@IEEEtemporiglabeldefsave\label +\let\@IEEEtemplabelargsave\relax +\def\label##1{\gdef\@IEEEtemplabelargsave{##1}}% +\setbox\@tempboxa\hbox{#2}% +\let\label\@IEEEtemporiglabeldefsave +\ifx\@IEEEtemplabelargsave\relax\else\label{\@IEEEtemplabelargsave}\fi} +\fi + + +% V1.7 define end environments with \def not \let so as to work OK with +% preview-latex +\newcounter{figure} +\def\thefigure{\@arabic\c@figure} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\nobreakspace\thefigure} +% V1.8 within figures add \@IEEEfiguretopskipspace compensation to LaTeX2e's \@floatboxreset +\def\figure{\def\@floatboxreset{\reset@font\normalsize\@setminipage\@IEEEfiguretopskipspace}\@float{figure}} +\def\endfigure{\end@float} +% V1.8 also add \@IEEEfiguretopskipspace compensation to \figure* +\@namedef{figure*}{\def\@floatboxreset{\reset@font\normalsize\@setminipage\@IEEEfiguretopskipspace}\@dblfloat{figure}} +\@namedef{endfigure*}{\end@dblfloat} + +\newcounter{table} +\ifCLASSOPTIONcompsoc +\def\thetable{\arabic{table}} +\else +\def\thetable{\@Roman\c@table} +\fi +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\nobreakspace\thetable} +% V1.6 The IEEE uses 8pt text for tables +% within tables alter LaTeX2e's \@floatboxreset to use \footnotesize +\def\table{\def\@floatboxreset{\reset@font\footnotesize\@setminipage}\@float{table}} +\def\endtable{\end@float} +% v1.6b double column tables need to default to footnotesize as well. +\@namedef{table*}{\def\@floatboxreset{\reset@font\footnotesize\@setminipage}\@dblfloat{table}} +\@namedef{endtable*}{\end@dblfloat} + + + + +%% -- Command Argument Scanning Support Functions -- +%% V1.8a + +% usage: \@IEEEstripouterbraces*{} +% \@IEEEstripouterbraces fully expands its argument (which it then stores +% in \@IEEEstripouterbracesarg) via \edef, then removes any outer enclosing +% braces, and finally stores the result in the macro +% \@IEEEstrippedouterbraces. +% +% For example: +% \@IEEEstripouterbraces{{{{ab}c}}} +% results in: +% +% \@IEEEstripouterbracesarg ==> a macro containing {{{ab}c}} +% \@IEEEstrippedouterbraces ==> a macro containing {ab}c +% +% the *-star form,\@IEEEstripouterbraces*, does not expand the argument +% contents during processing +\def\@IEEEstripouterbraces{\@ifstar{\let\@IEEEstripouterbracesdef=\def\@@IEEEstripouterbraces}{\let\@IEEEstripouterbracesdef=\edef\@@IEEEstripouterbraces}} + +\def\@@IEEEstripouterbraces#1{\@IEEEstripouterbracesdef\@IEEEstripouterbracesarg{#1}\relax +% If the macro is unchanged after being acquired as a single delimited +% argument, we know we have one sequence of tokens without any enclosing +% braces. Loop until this is true. +\loop + \expandafter\@@@IEEEstripouterbraces\@IEEEstripouterbracesarg\@IEEEgeneralsequenceDELIMITER +\ifx\@IEEEstrippedouterbraces\@IEEEstripouterbracesarg +\else + \let\@IEEEstripouterbracesarg\@IEEEstrippedouterbraces +\repeat} + +\def\@@@IEEEstripouterbraces#1\@IEEEgeneralsequenceDELIMITER{\def\@IEEEstrippedouterbraces{#1}} + + + +% usage: \@IEEEextractgroup*{} +% \@IEEEextractgroup fully expands its argument (which it then stores in +% \@IEEEextractgrouparg) via \edef and then assigns the first "brace group" +% of tokens to the macro \@IEEEextractedgroup. +% The remaining groups, if any, are stored in the macro +% \@IEEEextractedgroupremain. If the argument does not contain the requisite +% groups, the respective macros will be defined to be empty. +% There is an asymmetry in that \@IEEEextractedgroup is stripped of its first +% outer grouping while \@IEEEextractedgroupremain retains even the outer +% grouping (if present) that originally identified it as a group. +% +% For example: +% \@IEEEextractgroup{{{ab}}{c{de}}} +% results in: +% +% \@IEEEextractgrouparg ==> a macro containing {{ab}}{c{de}} +% \@IEEEextractedgroup ==> a macro containing {ab} +% \@IEEEextractedgroupremain ==> a macro containing {c{de}} +% +% The *-star form, \@IEEEextractgroup*, does not expand its argument +% contents during processing. +\def\@IEEEextractgroup{\@ifstar{\let\@IEEEextractgroupdef=\def\@@IEEEextractgroup}{\let\@IEEEextractgroupdef=\edef\@@IEEEextractgroup}} + +\def\@@IEEEextractgroup#1{\@IEEEextractgroupdef\@IEEEextractgrouparg{#1}\relax +% trap the case of an empty extracted group as this would cause problems with +% \@IEEEextractgroupremain's argument acquisition +\ifx\@IEEEextractgrouparg\@empty + \def\@IEEEextractedgroup{}\relax + \def\@IEEEextractedgroupremain{}\relax +\else + % We have to use some dirty tricks here. We want to insert {} around + % whatever remains after the first group so that TeX's argument scanner + % will preserve any originally enclosing braces as well as provide an + % empty argument to acquire even if there isn't a second group. + % In this first of two dirty tricks, we put a } at the end of the structure + % we are going to extract from. The \ifnum0=`{\fi keeps TeX happy to allow + % what would otherwise be an unbalanced macro definition for + % \@@IEEEextractgroup to be acceptable to it. + \ifnum0=`{\fi\expandafter\@IEEEextractgroupremain\@IEEEextractgrouparg}\relax +\fi} + +% In the second part of the dirty tricks, we insert a leading { right after +% the first group is acquired, but before the remainder is. Again, the +% \ifnum0=`}\fi keeps TeX happy during definition time, but will disappear +% during run time. +\def\@IEEEextractgroupremain#1{\def\@IEEEextractedgroup{#1}\expandafter\@@IEEEextractgroupremain\expandafter{\ifnum0=`}\fi} + +\def\@@IEEEextractgroupremain#1{\def\@IEEEextractedgroupremain{#1}} + + + +% \@IEEEextracttoken relocated at top because margin setting commands rely on it + + + +% usage: \@IEEEextracttokengroups*{} +% \@IEEEextracttokengroups fully expands its argument (which it then stores +% in \@IEEEextracttokengroupsarg) and then assigns the first "brace group" of +% tokens (with the outermost braces removed) to the macro +% \@IEEEextractedfirstgroup. +% The meaning of the first nonbrace (but including the empty group) token +% within this first group is assigned via \let to \@IEEEextractedfirsttoken +% as well as stored in the macro \@IEEEextractedfirsttokenmacro. If a first +% nonbrace token does not exist (or is an empty group), these will be \relax +% and empty, respectively. Tokens that would otherwise be discarded during +% the acquisition of the first token in the first group are stored in +% \@IEEEextractedfirsttokensdiscarded, however their original relative brace +% nesting depths are not guaranteed to be preserved. +% The first group within this first group is stored in the macro +% \@IEEEextractedfirstfirstgroup. +% Likewise for the next group after the first: \@IEEEextractednextgroup, +% \@IEEEextractednextfirstgroup, \@IEEEextractednextgroupfirsttoken, +% \@IEEEextractednextgroupfirsttokenmacro, and +% \@IEEEextractednextfirsttokensdiscarded. +% All tokens/groups after the first group, including any enclosing braces, +% are stored in the macro \@IEEEextractedafterfirstgroupremain which will +% be empty if none exist. +% +% For example: +% \@IEEEextracttokengroups{{{ab}{cd}}{{ef}g}} +% will result in: +% +% \@IEEEextracttokengroupsarg ==> a macro containing {{ab}{cd}}{{ef}g} +% \@IEEEextractedfirstgroup ==> a macro containing {ab}{cd} +% \@IEEEextractedafterfirstgroupremain ==> a macro containing {{ef}g} +% \@IEEEextractedfirsttoken ==> the letter a +% \@IEEEextractedfirsttokenmacro ==> a macro containing a +% \@IEEEextractedfirsttokensdiscarded ==> a macro containing bcd +% \@IEEEextractedfirstfirstgroup ==> a macro containing ab +% \@IEEEextractednextgroup ==> a macro containing {ef}g +% \@IEEEextractednextfirsttoken ==> the letter e +% \@IEEEextractednextfirsttokenmacro ==> a macro containing e +% \@IEEEextractednextfirsttokensdiscarded ==> a macro containing fg +% \@IEEEextractednextfirstgroup ==> a macro containing ef +% +% If given an empty argument, \@IEEEextractedfirsttoken and +% \@IEEEextractednextfirsttoken will be set to \relax +% and all the macros will be empty. +% the *-star form, \@IEEEextracttokengroups*, does not expand its argument +% contents during processing. +% +% Depends on: \@IEEEextractgroup, \@IEEEextracttoken +\def\@IEEEextracttokengroups{\@ifstar{\let\@IEEEextracttokengroupsdef=\def\@@IEEEextracttokengroups}{\let\@IEEEextracttokengroupsdef=\edef\@@IEEEextracttokengroups}} +\def\@@IEEEextracttokengroups#1{\@IEEEextracttokengroupsdef\@IEEEextracttokengroupsarg{#1}\relax +% begin extraction, these functions are safe with empty arguments +% first group +\expandafter\@IEEEextractgroup\expandafter*\expandafter{\@IEEEextracttokengroupsarg}\relax +\let\@IEEEextractedfirstgroup\@IEEEextractedgroup +\let\@IEEEextractedafterfirstgroupremain\@IEEEextractedgroupremain +\expandafter\@IEEEextracttoken\expandafter*\expandafter{\@IEEEextractedfirstgroup}\relax +\let\@IEEEextractedfirsttoken\@IEEEextractedtoken +\let\@IEEEextractedfirsttokenmacro\@IEEEextractedtokenmacro +\let\@IEEEextractedfirsttokensdiscarded\@IEEEextractedtokensdiscarded +% first first group +\expandafter\@IEEEextractgroup\expandafter*\expandafter{\@IEEEextractedfirstgroup}\relax +\let\@IEEEextractedfirstfirstgroup\@IEEEextractedgroup +% next group +\expandafter\@IEEEextractgroup\expandafter*\expandafter{\@IEEEextractedafterfirstgroupremain}\relax +\let\@IEEEextractednextgroup\@IEEEextractedgroup +\expandafter\@IEEEextracttoken\expandafter*\expandafter{\@IEEEextractednextgroup}\relax +\let\@IEEEextractednextfirsttoken\@IEEEextractedtoken +\let\@IEEEextractednextfirsttokenmacro\@IEEEextractedtokenmacro +\let\@IEEEextractednextfirsttokensdiscarded\@IEEEextractedtokensdiscarded +% next first group +\expandafter\@IEEEextractgroup\expandafter*\expandafter{\@IEEEextractednextgroup}\relax +\let\@IEEEextractednextfirstgroup\@IEEEextractedgroup} + + +%% -- End of Command Argument Scanning Support Functions -- + + + + +%% +%% START OF IEEEeqnarray DEFINITIONS +%% +%% Inspired by the concepts, examples, and previous works of LaTeX +%% coders and developers such as Donald Arseneau, Fred Bartlett, +%% David Carlisle, Tony Liu, Frank Mittelbach, Piet van Oostrum, +%% Roland Winkler and Mark Wooding. +%% I don't make the claim that my work here is even near their calibre. ;) + + +\newif\if@IEEEeqnarrayboxnojot% flag to indicate if the environment was called as the star form +\@IEEEeqnarrayboxnojotfalse + +\newif\if@advanceIEEEeqncolcnt% tracks if the environment should advance the col counter +% allows a way to make an \IEEEeqnarraybox that can be used within an \IEEEeqnarray +% used by IEEEeqnarraymulticol so that it can work properly in both +\@advanceIEEEeqncolcnttrue + +\newcount\@IEEEeqnnumcols % tracks how many IEEEeqnarray cols are defined +\newcount\@IEEEeqncolcnt % tracks how many IEEEeqnarray cols the user actually used + + +% The default math style used by the columns +\def\IEEEeqnarraymathstyle{\displaystyle} +% The default text style used by the columns +% default to using the current font +\def\IEEEeqnarraytextstyle{\relax} + +% like the iedlistdecl but for \IEEEeqnarray +\def\IEEEeqnarraydecl{\relax} +\def\IEEEeqnarrayboxdecl{\relax} + + + +% V1.8 flags to indicate that equation numbering is to persist +\newif\if@IEEEeqnumpersist% +\@IEEEeqnumpersistfalse +\newif\if@IEEEsubeqnumpersist% +\@IEEEsubeqnumpersistfalse +% +% V1.8 flags to indicate if (sub)equation number of last line was preadvanced +\newif\if@IEEEeqnumpreadv% +\@IEEEeqnumpreadvfalse +\newif\if@IEEEsubeqnumpreadv% +\@IEEEsubeqnumpreadvfalse + +\newcount\@IEEEsubeqnnumrollback% saves previous value of IEEEsubequation number in case we need to restore it + +% \yesnumber is the opposite of \nonumber +% a novel concept with the same def as the equationarray package +% However, we give IEEE versions too since some LaTeX packages such as +% the MDWtools mathenv.sty redefine \nonumber to something else. +% This command is intended for use in non-IEEEeqnarray math environments +\providecommand{\yesnumber}{\global\@eqnswtrue} + + +% IEEEyes/nonumber +% V1.8 add persistant * forms +% These commands can alter the type of equation an IEEEeqnarray line is. +\def\IEEEyesnumber{\@ifstar{\global\@IEEEeqnumpersisttrue\global\@IEEEsubeqnumpersistfalse\@IEEEyesnumber}{\@IEEEyesnumber}} + +\def\@IEEEyesnumber{\global\@eqnswtrue +\if@IEEEeqnarrayISinner% alter counters and label only inside an IEEEeqnarray +\ifnum\c@IEEEsubequation>0\relax + \stepcounter{equation}\setcounter{IEEEsubequation}{0}\gdef\@currentlabel{\p@equation\theequation}\relax + \gdef\@currentHref{\@IEEEtheHrefequation}% setup hyperref label +\fi +% even if we reached this eqn num via a preadv, it is legit now +\global\@IEEEeqnumpreadvfalse\global\@IEEEsubeqnumpreadvfalse +\fi} + +\def\IEEEnonumber{\@ifstar{\global\@IEEEeqnumpersistfalse\global\@IEEEsubeqnumpersistfalse\global\@eqnswfalse}{\global\@eqnswfalse}} + + +\def\IEEEyessubnumber{\@ifstar{\global\@IEEEsubeqnumpersisttrue\@IEEEyessubnumber}{\@IEEEyessubnumber}} +% +\def\@IEEEyessubnumber{\if@IEEEeqnarrayISinner% alter counters and label only inside an IEEEeqnarray + \ifnum\c@IEEEsubequation>0\relax% if it already is a subequation, we are good to go as-is + \else% if we are a regular equation we have to watch out for two cases + \if@IEEEeqnumpreadv% if this equation is the result of a preadvance, backout and bump the sub eqnnum + \global\advance\c@equation\m@ne\global\c@IEEEsubequation=\@IEEEsubeqnnumrollback\addtocounter{IEEEsubequation}{1}\relax + \else% non-preadvanced equations just need initialization of their sub eqnnum + \setcounter{IEEEsubequation}{1}\relax + \fi + \fi% fi already is subequation + \gdef\@currentlabel{\p@IEEEsubequation\theIEEEsubequation}\relax + \gdef\@currentHref{\@IEEEtheHrefsubequation}% setup hyperref label + \global\@IEEEeqnumpreadvfalse\global\@IEEEsubeqnumpreadvfalse% no longer a preadv anymore + \global\@eqnswtrue +\fi} + + +\def\IEEEnosubnumber{\@ifstar{\global\@IEEEsubeqnumpersistfalse\@IEEEnosubnumber}{\@IEEEnosubnumber}} +% +\def\@IEEEnosubnumber{\if@IEEEeqnarrayISinner% alter counters and label only inside an IEEEeqnarray + \if@eqnsw % we do nothing unless we know we will display because we play with the counters here + % if it currently is a subequation, bump up to the next equation number and turn off the subequation + \ifnum\c@IEEEsubequation>0\relax\addtocounter{equation}{1}\setcounter{IEEEsubequation}{0}\relax + \fi + \global\@IEEEeqnumpreadvfalse\global\@IEEEsubeqnumpreadvfalse% no longer a preadv anymore + \gdef\@currentlabel{\p@equation\theequation}\relax + \gdef\@currentHref{\@IEEEtheHrefequation}% setup hyperref label + \fi +\fi} + + + +% allows users to "push away" equations that get too close to the equation numbers +\def\IEEEeqnarraynumspace{\hphantom{\ifnum\c@IEEEsubequation>0\relax\theIEEEsubequationdis\else\theequationdis\fi}} + +% provides a way to span multiple columns within IEEEeqnarray environments +% will consider \if@advanceIEEEeqncolcnt before globally advancing the +% column counter - so as to work within \IEEEeqnarraybox +% usage: \IEEEeqnarraymulticol{number cols. to span}{col type}{cell text} +\long\def\IEEEeqnarraymulticol#1#2#3{\multispan{#1}\relax +% check if column is defined for the precolumn definition +% We have to be careful here because TeX scans for & even within an \iffalse +% where it does not expand macros. So, if we used only one \ifx and a #3 +% appeared in the false branch and the user inserted another alignment +% structure that uses & in the \IEEEeqnarraymulticol{}, TeX will not see that +% there is an inner alignment in the false branch yet still will see any & +% there and will think that they apply to the outer alignment resulting in an +% incomplete \ifx error. +% So, here we use separate checks for the pre and post parts in order to keep +% the #3 outside of all conditionals. +\relax\expandafter\ifx\csname @IEEEeqnarraycolDEF#2\endcsname\@IEEEeqnarraycolisdefined\relax +\csname @IEEEeqnarraycolPRE#2\endcsname +\else% if not, error and use default type +\@IEEEclspkgerror{Invalid column type "#2" in \string\IEEEeqnarraymulticol.\MessageBreak +Using a default centering column instead}% +{You must define IEEEeqnarray column types before use.}% +\csname @IEEEeqnarraycolPRE@IEEEdefault\endcsname +\fi +% The ten \relax are to help prevent misleading error messages in case a user +% accidently inserted a macro that tries to acquire additional arguments. +#3\relax\relax\relax\relax\relax\relax\relax\relax\relax\relax +% check if column is defined for the postcolumn definition +\expandafter\ifx\csname @IEEEeqnarraycolDEF#2\endcsname\@IEEEeqnarraycolisdefined\relax +\csname @IEEEeqnarraycolPOST#2\endcsname +\else% if not, use the default type +\csname @IEEEeqnarraycolPOST@IEEEdefault\endcsname +\fi +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by #1\relax\fi} + +% like \omit, but maintains track of the column counter for \IEEEeqnarray +\def\IEEEeqnarrayomit{\omit\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by 1\relax\fi} + + +% provides a way to define a letter referenced column type +% usage: \IEEEeqnarraydefcol{col. type letter/name}{pre insertion text}{post insertion text} +\def\IEEEeqnarraydefcol#1#2#3{\expandafter\def\csname @IEEEeqnarraycolPRE#1\endcsname{#2}% +\expandafter\def\csname @IEEEeqnarraycolPOST#1\endcsname{#3}% +\expandafter\def\csname @IEEEeqnarraycolDEF#1\endcsname{1}} + + +% provides a way to define a numerically referenced inter-column glue types +% usage: \IEEEeqnarraydefcolsep{col. glue number}{glue definition} +\def\IEEEeqnarraydefcolsep#1#2{\expandafter\def\csname @IEEEeqnarraycolSEP\romannumeral #1\endcsname{#2}% +\expandafter\def\csname @IEEEeqnarraycolSEPDEF\romannumeral #1\endcsname{1}} + + +\def\@IEEEeqnarraycolisdefined{1}% just a macro for 1, used for checking undefined column types + + +% expands and appends the given argument to the \@IEEEtrantmptoksA token list +% used to build up the \halign preamble +\def\@IEEEappendtoksA#1{\edef\@@IEEEappendtoksA{\@IEEEtrantmptoksA={\the\@IEEEtrantmptoksA #1}}% +\@@IEEEappendtoksA} + +% also appends to \@IEEEtrantmptoksA, but does not expand the argument +% uses \toks8 as a scratchpad register +\def\@IEEEappendNOEXPANDtoksA#1{\toks8={#1}% +\edef\@@IEEEappendNOEXPANDtoksA{\@IEEEtrantmptoksA={\the\@IEEEtrantmptoksA\the\toks8}}% +\@@IEEEappendNOEXPANDtoksA} + +% define some common column types for the user +% math +\IEEEeqnarraydefcol{l}{$\IEEEeqnarraymathstyle}{$\hfil} +\IEEEeqnarraydefcol{c}{\hfil$\IEEEeqnarraymathstyle}{$\hfil} +\IEEEeqnarraydefcol{r}{\hfil$\IEEEeqnarraymathstyle}{$} +\IEEEeqnarraydefcol{L}{$\IEEEeqnarraymathstyle{}}{{}$\hfil} +\IEEEeqnarraydefcol{C}{\hfil$\IEEEeqnarraymathstyle{}}{{}$\hfil} +\IEEEeqnarraydefcol{R}{\hfil$\IEEEeqnarraymathstyle{}}{{}$} +% text +\IEEEeqnarraydefcol{s}{\IEEEeqnarraytextstyle}{\hfil} +\IEEEeqnarraydefcol{t}{\hfil\IEEEeqnarraytextstyle}{\hfil} +\IEEEeqnarraydefcol{u}{\hfil\IEEEeqnarraytextstyle}{} + +% vertical rules +\IEEEeqnarraydefcol{v}{}{\vrule width\arrayrulewidth} +\IEEEeqnarraydefcol{vv}{\vrule width\arrayrulewidth\hfil}{\hfil\vrule width\arrayrulewidth} +\IEEEeqnarraydefcol{V}{}{\vrule width\arrayrulewidth\hskip\doublerulesep\vrule width\arrayrulewidth} +\IEEEeqnarraydefcol{VV}{\vrule width\arrayrulewidth\hskip\doublerulesep\vrule width\arrayrulewidth\hfil}% +{\hfil\vrule width\arrayrulewidth\hskip\doublerulesep\vrule width\arrayrulewidth} + +% horizontal rules +\IEEEeqnarraydefcol{h}{}{\leaders\hrule height\arrayrulewidth\hfil} +\IEEEeqnarraydefcol{H}{}{\leaders\vbox{\hrule width\arrayrulewidth\vskip\doublerulesep\hrule width\arrayrulewidth}\hfil} + +% plain +\IEEEeqnarraydefcol{x}{}{} +\IEEEeqnarraydefcol{X}{$}{$} + +% the default column type to use in the event a column type is not defined +\IEEEeqnarraydefcol{@IEEEdefault}{\hfil$\IEEEeqnarraymathstyle}{$\hfil} + + +% a zero tabskip (used for "-" col types) +\def\@IEEEeqnarraycolSEPzero{0pt plus 0pt minus 0pt} +% a centering tabskip (used for "+" col types) +\def\@IEEEeqnarraycolSEPcenter{1000pt plus 0pt minus 1000pt} + +% top level default tabskip glues for the start, end, and inter-column +% may be reset within environments not always at the top level, e.g., \IEEEeqnarraybox +\edef\@IEEEeqnarraycolSEPdefaultstart{\@IEEEeqnarraycolSEPcenter}% default start glue +\edef\@IEEEeqnarraycolSEPdefaultend{\@IEEEeqnarraycolSEPcenter}% default end glue +\edef\@IEEEeqnarraycolSEPdefaultmid{\@IEEEeqnarraycolSEPzero}% default inter-column glue + + + +% creates a vertical rule that extends from the bottom to the top a a cell +% Provided in case other packages redefine \vline some other way. +% usage: \IEEEeqnarrayvrule[rule thickness] +% If no argument is provided, \arrayrulewidth will be used for the rule thickness. +\newcommand\IEEEeqnarrayvrule[1][\arrayrulewidth]{\vrule\@width#1\relax} + +% creates a blank separator row +% usage: \IEEEeqnarrayseprow[separation length][font size commands] +% default is \IEEEeqnarrayseprow[0.25\normalbaselineskip][\relax] +% blank arguments inherit the default values +% uses \skip5 as a scratch register - calls \@IEEEeqnarraystrutsize which uses more scratch registers +\def\IEEEeqnarrayseprow{\relax\@ifnextchar[{\@IEEEeqnarrayseprow}{\@IEEEeqnarrayseprow[0.25\normalbaselineskip]}} +\def\@IEEEeqnarrayseprow[#1]{\relax\@ifnextchar[{\@@IEEEeqnarrayseprow[#1]}{\@@IEEEeqnarrayseprow[#1][\relax]}} +\def\@@IEEEeqnarrayseprow[#1][#2]{\def\@IEEEeqnarrayseprowARGONE{#1}% +\ifx\@IEEEeqnarrayseprowARGONE\@empty% +% get the skip value, based on the font commands +% use skip5 because \IEEEeqnarraystrutsize uses \skip0, \skip2, \skip3 +% assign within a bogus box to confine the font changes +{\setbox0=\hbox{#2\relax\global\skip5=0.25\normalbaselineskip}}% +\else% +{\setbox0=\hbox{#2\relax\global\skip5=#1}}% +\fi% +\@IEEEeqnarrayhoptolastcolumn\IEEEeqnarraystrutsize{\skip5}{0pt}[\relax]\relax} + +% creates a blank separator row, but omits all the column templates +% usage: \IEEEeqnarrayseprowcut[separation length][font size commands] +% default is \IEEEeqnarrayseprowcut[0.25\normalbaselineskip][\relax] +% blank arguments inherit the default values +% uses \skip5 as a scratch register - calls \@IEEEeqnarraystrutsize which uses more scratch registers +\def\IEEEeqnarrayseprowcut{\multispan{\@IEEEeqnnumcols}\relax% span all the cols +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\@ifnextchar[{\@IEEEeqnarrayseprowcut}{\@IEEEeqnarrayseprowcut[0.25\normalbaselineskip]}} +\def\@IEEEeqnarrayseprowcut[#1]{\relax\@ifnextchar[{\@@IEEEeqnarrayseprowcut[#1]}{\@@IEEEeqnarrayseprowcut[#1][\relax]}} +\def\@@IEEEeqnarrayseprowcut[#1][#2]{\def\@IEEEeqnarrayseprowARGONE{#1}% +\ifx\@IEEEeqnarrayseprowARGONE\@empty% +% get the skip value, based on the font commands +% use skip5 because \IEEEeqnarraystrutsize uses \skip0, \skip2, \skip3 +% assign within a bogus box to confine the font changes +{\setbox0=\hbox{#2\relax\global\skip5=0.25\normalbaselineskip}}% +\else% +{\setbox0=\hbox{#2\relax\global\skip5=#1}}% +\fi% +\IEEEeqnarraystrutsize{\skip5}{0pt}[\relax]\relax} + + + +% draws a single rule across all the columns optional +% argument determines the rule width, \arrayrulewidth is the default +% updates column counter as needed and turns off struts +% usage: \IEEEeqnarrayrulerow[rule line thickness] +\def\IEEEeqnarrayrulerow{\multispan{\@IEEEeqnnumcols}\relax% span all the cols +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\@ifnextchar[{\@IEEEeqnarrayrulerow}{\@IEEEeqnarrayrulerow[\arrayrulewidth]}} +\def\@IEEEeqnarrayrulerow[#1]{\leaders\hrule height#1\hfil\relax% put in our rule +% turn off any struts +\IEEEeqnarraystrutsize{0pt}{0pt}[\relax]\relax} + + +% draws a double rule by using a single rule row, a separator row, and then +% another single rule row +% first optional argument determines the rule thicknesses, \arrayrulewidth is the default +% second optional argument determines the rule spacing, \doublerulesep is the default +% usage: \IEEEeqnarraydblrulerow[rule line thickness][rule spacing] +\def\IEEEeqnarraydblrulerow{\multispan{\@IEEEeqnnumcols}\relax% span all the cols +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\@ifnextchar[{\@IEEEeqnarraydblrulerow}{\@IEEEeqnarraydblrulerow[\arrayrulewidth]}} +\def\@IEEEeqnarraydblrulerow[#1]{\relax\@ifnextchar[{\@@IEEEeqnarraydblrulerow[#1]}% +{\@@IEEEeqnarraydblrulerow[#1][\doublerulesep]}} +\def\@@IEEEeqnarraydblrulerow[#1][#2]{\def\@IEEEeqnarraydblrulerowARG{#1}% +% we allow the user to say \IEEEeqnarraydblrulerow[][] +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\@IEEEeqnarrayrulerow[\arrayrulewidth]% +\else% +\@IEEEeqnarrayrulerow[#1]\relax% +\fi% +\def\@IEEEeqnarraydblrulerowARG{#2}% +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\\\IEEEeqnarrayseprow[\doublerulesep][\relax]% +\else% +\\\IEEEeqnarrayseprow[#2][\relax]% +\fi% +\\\multispan{\@IEEEeqnnumcols}% +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\def\@IEEEeqnarraydblrulerowARG{#1}% +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\@IEEEeqnarrayrulerow[\arrayrulewidth]% +\else% +\@IEEEeqnarrayrulerow[#1]% +\fi% +} + +% draws a double rule by using a single rule row, a separator (cutting) row, and then +% another single rule row +% first optional argument determines the rule thicknesses, \arrayrulewidth is the default +% second optional argument determines the rule spacing, \doublerulesep is the default +% usage: \IEEEeqnarraydblrulerow[rule line thickness][rule spacing] +\def\IEEEeqnarraydblrulerowcut{\multispan{\@IEEEeqnnumcols}\relax% span all the cols +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\@ifnextchar[{\@IEEEeqnarraydblrulerowcut}{\@IEEEeqnarraydblrulerowcut[\arrayrulewidth]}} +\def\@IEEEeqnarraydblrulerowcut[#1]{\relax\@ifnextchar[{\@@IEEEeqnarraydblrulerowcut[#1]}% +{\@@IEEEeqnarraydblrulerowcut[#1][\doublerulesep]}} +\def\@@IEEEeqnarraydblrulerowcut[#1][#2]{\def\@IEEEeqnarraydblrulerowARG{#1}% +% we allow the user to say \IEEEeqnarraydblrulerow[][] +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\@IEEEeqnarrayrulerow[\arrayrulewidth]% +\else% +\@IEEEeqnarrayrulerow[#1]% +\fi% +\def\@IEEEeqnarraydblrulerowARG{#2}% +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\\\IEEEeqnarrayseprowcut[\doublerulesep][\relax]% +\else% +\\\IEEEeqnarrayseprowcut[#2][\relax]% +\fi% +\\\multispan{\@IEEEeqnnumcols}% +% advance column counter only if the IEEEeqnarray environment wants it +\if@advanceIEEEeqncolcnt\global\advance\@IEEEeqncolcnt by \@IEEEeqnnumcols\relax\fi% +\def\@IEEEeqnarraydblrulerowARG{#1}% +\ifx\@IEEEeqnarraydblrulerowARG\@empty% +\@IEEEeqnarrayrulerow[\arrayrulewidth]% +\else% +\@IEEEeqnarrayrulerow[#1]% +\fi% +} + + + +% inserts a full row's worth of &'s +% relies on \@IEEEeqnnumcols to provide the correct number of columns +% uses \@IEEEtrantmptoksA, \count0 as scratch registers +\def\@IEEEeqnarrayhoptolastcolumn{\@IEEEtrantmptoksA={}\count0=1\relax% +\loop% add cols if the user did not use them all +\ifnum\count0<\@IEEEeqnnumcols\relax% +\@IEEEappendtoksA{&}% +\advance\count0 by 1\relax% update the col count +\repeat% +\the\@IEEEtrantmptoksA%execute the &'s +} + + + +\newif\if@IEEEeqnarrayISinner % flag to indicate if we are within the lines +\@IEEEeqnarrayISinnerfalse % of an IEEEeqnarray - after the IEEEeqnarraydecl + +\edef\@IEEEeqnarrayTHEstrutheight{0pt} % height and depth of IEEEeqnarray struts +\edef\@IEEEeqnarrayTHEstrutdepth{0pt} + +\edef\@IEEEeqnarrayTHEmasterstrutheight{0pt} % default height and depth of +\edef\@IEEEeqnarrayTHEmasterstrutdepth{0pt} % struts within an IEEEeqnarray + +\edef\@IEEEeqnarrayTHEmasterstrutHSAVE{0pt} % saved master strut height +\edef\@IEEEeqnarrayTHEmasterstrutDSAVE{0pt} % and depth + +\newif\if@IEEEeqnarrayusemasterstrut % flag to indicate that the master strut value +\@IEEEeqnarrayusemasterstruttrue % is to be used + + + +% saves the strut height and depth of the master strut +\def\@IEEEeqnarraymasterstrutsave{\relax% +\expandafter\skip0=\@IEEEeqnarrayTHEmasterstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEmasterstrutdepth\relax% +% remove stretchability +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% save values +\edef\@IEEEeqnarrayTHEmasterstrutHSAVE{\the\dimen0}% +\edef\@IEEEeqnarrayTHEmasterstrutDSAVE{\the\dimen2}} + +% restores the strut height and depth of the master strut +\def\@IEEEeqnarraymasterstrutrestore{\relax% +\expandafter\skip0=\@IEEEeqnarrayTHEmasterstrutHSAVE\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEmasterstrutDSAVE\relax% +% remove stretchability +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% restore values +\edef\@IEEEeqnarrayTHEmasterstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEmasterstrutdepth{\the\dimen2}} + + +% globally restores the strut height and depth to the +% master values and sets the master strut flag to true +\def\@IEEEeqnarraystrutreset{\relax% +\expandafter\skip0=\@IEEEeqnarrayTHEmasterstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEmasterstrutdepth\relax% +% remove stretchability +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% restore values +\xdef\@IEEEeqnarrayTHEstrutheight{\the\dimen0}% +\xdef\@IEEEeqnarrayTHEstrutdepth{\the\dimen2}% +\global\@IEEEeqnarrayusemasterstruttrue} + + +% if the master strut is not to be used, make the current +% values of \@IEEEeqnarrayTHEstrutheight, \@IEEEeqnarrayTHEstrutdepth +% and the use master strut flag, global +% this allows user strut commands issued in the last column to be carried +% into the isolation/strut column +\def\@IEEEeqnarrayglobalizestrutstatus{\relax% +\if@IEEEeqnarrayusemasterstrut\else% +\xdef\@IEEEeqnarrayTHEstrutheight{\@IEEEeqnarrayTHEstrutheight}% +\xdef\@IEEEeqnarrayTHEstrutdepth{\@IEEEeqnarrayTHEstrutdepth}% +\global\@IEEEeqnarrayusemasterstrutfalse% +\fi} + + + +% usage: \IEEEeqnarraystrutsize{height}{depth}[font size commands] +% If called outside the lines of an IEEEeqnarray, sets the height +% and depth of both the master and local struts. If called inside +% an IEEEeqnarray line, sets the height and depth of the local strut +% only and sets the flag to indicate the use of the local strut +% values. If the height or depth is left blank, 0.7\normalbaselineskip +% and 0.3\normalbaselineskip will be used, respectively. +% The optional argument can be used to evaluate the lengths under +% a different font size and styles. If none is specified, the current +% font is used. +% uses scratch registers \skip0, \skip2, \skip3, \dimen0, \dimen2 +\def\IEEEeqnarraystrutsize#1#2{\relax\@ifnextchar[{\@IEEEeqnarraystrutsize{#1}{#2}}{\@IEEEeqnarraystrutsize{#1}{#2}[\relax]}} +\def\@IEEEeqnarraystrutsize#1#2[#3]{\def\@IEEEeqnarraystrutsizeARG{#1}% +\ifx\@IEEEeqnarraystrutsizeARG\@empty% +{\setbox0=\hbox{#3\relax\global\skip3=0.7\normalbaselineskip}}% +\skip0=\skip3\relax% +\else% arg one present +{\setbox0=\hbox{#3\relax\global\skip3=#1\relax}}% +\skip0=\skip3\relax% +\fi% if null arg +\def\@IEEEeqnarraystrutsizeARG{#2}% +\ifx\@IEEEeqnarraystrutsizeARG\@empty% +{\setbox0=\hbox{#3\relax\global\skip3=0.3\normalbaselineskip}}% +\skip2=\skip3\relax% +\else% arg two present +{\setbox0=\hbox{#3\relax\global\skip3=#2\relax}}% +\skip2=\skip3\relax% +\fi% if null arg +% remove stretchability, just to be safe +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% dimen0 = height, dimen2 = depth +\if@IEEEeqnarrayISinner% inner does not touch master strut size +\edef\@IEEEeqnarrayTHEstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEstrutdepth{\the\dimen2}% +\@IEEEeqnarrayusemasterstrutfalse% do not use master +\else% outer, have to set master strut too +\edef\@IEEEeqnarrayTHEmasterstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEmasterstrutdepth{\the\dimen2}% +\edef\@IEEEeqnarrayTHEstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEstrutdepth{\the\dimen2}% +\@IEEEeqnarrayusemasterstruttrue% use master strut +\fi} + + +% usage: \IEEEeqnarraystrutsizeadd{added height}{added depth}[font size commands] +% If called outside the lines of an IEEEeqnarray, adds the given height +% and depth to both the master and local struts. +% If called inside an IEEEeqnarray line, adds the given height and depth +% to the local strut only and sets the flag to indicate the use +% of the local strut values. +% In both cases, if a height or depth is left blank, 0pt is used instead. +% The optional argument can be used to evaluate the lengths under +% a different font size and styles. If none is specified, the current +% font is used. +% uses scratch registers \skip0, \skip2, \skip3, \dimen0, \dimen2 +\def\IEEEeqnarraystrutsizeadd#1#2{\relax\@ifnextchar[{\@IEEEeqnarraystrutsizeadd{#1}{#2}}{\@IEEEeqnarraystrutsizeadd{#1}{#2}[\relax]}} +\def\@IEEEeqnarraystrutsizeadd#1#2[#3]{\def\@IEEEeqnarraystrutsizearg{#1}% +\ifx\@IEEEeqnarraystrutsizearg\@empty% +\skip0=0pt\relax% +\else% arg one present +{\setbox0=\hbox{#3\relax\global\skip3=#1}}% +\skip0=\skip3\relax% +\fi% if null arg +\def\@IEEEeqnarraystrutsizearg{#2}% +\ifx\@IEEEeqnarraystrutsizearg\@empty% +\skip2=0pt\relax% +\else% arg two present +{\setbox0=\hbox{#3\relax\global\skip3=#2}}% +\skip2=\skip3\relax% +\fi% if null arg +% remove stretchability, just to be safe +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% dimen0 = height, dimen2 = depth +\if@IEEEeqnarrayISinner% inner does not touch master strut size +% get local strut size +\expandafter\skip0=\@IEEEeqnarrayTHEstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEstrutdepth\relax% +% add it to the user supplied values +\advance\dimen0 by \skip0\relax% +\advance\dimen2 by \skip2\relax% +% update the local strut size +\edef\@IEEEeqnarrayTHEstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEstrutdepth{\the\dimen2}% +\@IEEEeqnarrayusemasterstrutfalse% do not use master +\else% outer, have to set master strut too +% get master strut size +\expandafter\skip0=\@IEEEeqnarrayTHEmasterstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEmasterstrutdepth\relax% +% add it to the user supplied values +\advance\dimen0 by \skip0\relax% +\advance\dimen2 by \skip2\relax% +% update the local and master strut sizes +\edef\@IEEEeqnarrayTHEmasterstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEmasterstrutdepth{\the\dimen2}% +\edef\@IEEEeqnarrayTHEstrutheight{\the\dimen0}% +\edef\@IEEEeqnarrayTHEstrutdepth{\the\dimen2}% +\@IEEEeqnarrayusemasterstruttrue% use master strut +\fi} + + +% allow user a way to see the struts +\newif\ifIEEEvisiblestruts +\IEEEvisiblestrutsfalse + +% inserts an invisible strut using the master or local strut values +% uses scratch registers \skip0, \skip2, \dimen0, \dimen2 +\def\@IEEEeqnarrayinsertstrut{\relax% +\if@IEEEeqnarrayusemasterstrut +% get master strut size +\expandafter\skip0=\@IEEEeqnarrayTHEmasterstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEmasterstrutdepth\relax% +\else% +% get local strut size +\expandafter\skip0=\@IEEEeqnarrayTHEstrutheight\relax% +\expandafter\skip2=\@IEEEeqnarrayTHEstrutdepth\relax% +\fi% +% remove stretchability, probably not needed +\dimen0\skip0\relax% +\dimen2\skip2\relax% +% dimen0 = height, dimen2 = depth +% allow user to see struts if desired +\ifIEEEvisiblestruts% +\vrule width0.2pt height\dimen0 depth\dimen2\relax% +\else% +\vrule width0pt height\dimen0 depth\dimen2\relax\fi} + + +% creates an invisible strut, useable even outside \IEEEeqnarray +% if \IEEEvisiblestrutstrue, the strut will be visible and 0.2pt wide. +% usage: \IEEEstrut[height][depth][font size commands] +% default is \IEEEstrut[0.7\normalbaselineskip][0.3\normalbaselineskip][\relax] +% blank arguments inherit the default values +% uses \dimen0, \dimen2, \skip0, \skip2 +\def\IEEEstrut{\relax\@ifnextchar[{\@IEEEstrut}{\@IEEEstrut[0.7\normalbaselineskip]}} +\def\@IEEEstrut[#1]{\relax\@ifnextchar[{\@@IEEEstrut[#1]}{\@@IEEEstrut[#1][0.3\normalbaselineskip]}} +\def\@@IEEEstrut[#1][#2]{\relax\@ifnextchar[{\@@@IEEEstrut[#1][#2]}{\@@@IEEEstrut[#1][#2][\relax]}} +\def\@@@IEEEstrut[#1][#2][#3]{\mbox{#3\relax% +\def\@IEEEstrutARG{#1}% +\ifx\@IEEEstrutARG\@empty% +\skip0=0.7\normalbaselineskip\relax% +\else% +\skip0=#1\relax% +\fi% +\def\@IEEEstrutARG{#2}% +\ifx\@IEEEstrutARG\@empty% +\skip2=0.3\normalbaselineskip\relax% +\else% +\skip2=#2\relax% +\fi% +% remove stretchability, probably not needed +\dimen0\skip0\relax% +\dimen2\skip2\relax% +\ifIEEEvisiblestruts% +\vrule width0.2pt height\dimen0 depth\dimen2\relax% +\else% +\vrule width0.0pt height\dimen0 depth\dimen2\relax\fi}} + + +% enables strut mode by setting a default strut size and then zeroing the +% \baselineskip, \lineskip, \lineskiplimit and \jot +\def\IEEEeqnarraystrutmode{\IEEEeqnarraystrutsize{0.7\normalbaselineskip}{0.3\normalbaselineskip}[\relax]% +\baselineskip=0pt\lineskip=0pt\lineskiplimit=0pt\jot=0pt} + + +% equation and subequation forms to use to setup hyperref's \@currentHref +\def\@IEEEtheHrefequation{equation.\theHequation} +\def\@IEEEtheHrefsubequation{equation.\theHequation\alph{IEEEsubequation}} + + +\def\IEEEeqnarray{\@IEEEeqnumpersisttrue\@IEEEsubeqnumpersistfalse\@IEEEeqnarray} +\def\endIEEEeqnarray{\end@IEEEeqnarray} + +\@namedef{IEEEeqnarray*}{\@IEEEeqnumpersistfalse\@IEEEsubeqnumpersistfalse\@IEEEeqnarray} +\@namedef{endIEEEeqnarray*}{\end@IEEEeqnarray} + + +% \IEEEeqnarray is an enhanced \eqnarray. +% The star form defaults to not putting equation numbers at the end of each row. +% usage: \IEEEeqnarray[decl]{cols} +\def\@IEEEeqnarray{\relax\@ifnextchar[{\@@IEEEeqnarray}{\@@IEEEeqnarray[\relax]}} +% We have to be careful here to normalize catcodes just before acquiring the +% cols as that specification may contain punctuation which could be subject +% to document catcode changes. +\def\@@IEEEeqnarray[#1]{\begingroup\IEEEnormalcatcodes\@@@IEEEeqnarray[#1]} +\def\@@@IEEEeqnarray[#1]#2{\endgroup + % default to showing the equation number or not based on whether or not + % the star form was involked + \if@IEEEeqnumpersist\global\@eqnswtrue + \else% not the star form + \global\@eqnswfalse + \fi% if star form + % provide a basic hyperref \theHequation if this has not already been setup (hyperref not loaded, or no section counter) + \@ifundefined{theHequation}{\def\theHequation{\arabic{equation}}}{}\relax + % provide dummy hyperref commands in case hyperref is not loaded + \providecommand{\Hy@raisedlink}[1]{}\relax + \providecommand{\hyper@anchorstart}[1]{}\relax + \providecommand{\hyper@anchorend}{}\relax + \providecommand{\@currentHref}{}\relax + \@IEEEeqnumpreadvfalse% reset eqnpreadv flag + \@IEEEsubeqnumpreadvfalse% reset subeqnpreadv flag + \@IEEEeqnarrayISinnerfalse% not yet within the lines of the halign + \@IEEEeqnarraystrutsize{0pt}{0pt}[\relax]% turn off struts by default + \@IEEEeqnarrayusemasterstruttrue% use master strut till user asks otherwise + \IEEEvisiblestrutsfalse% diagnostic mode defaults to off + % no extra space unless the user specifically requests it + \lineskip=0pt\relax + \lineskiplimit=0pt\relax + \baselineskip=\normalbaselineskip\relax% + \jot=\IEEEnormaljot\relax% + \mathsurround\z@\relax% no extra spacing around math + \@advanceIEEEeqncolcnttrue% advance the col counter for each col the user uses, + % used in \IEEEeqnarraymulticol and in the preamble build + %V1.8 Here we preadvance to the next equation number. + % If the user later wants a continued subequation, we can roll back. + \global\@IEEEsubeqnnumrollback=\c@IEEEsubequation% + \stepcounter{equation}\@IEEEeqnumpreadvtrue% advance equation counter before first line + \setcounter{IEEEsubequation}{0}% no subequation yet + \let\@IEEEcurrentlabelsave\@currentlabel% save current label as we later change it globally + \let\@IEEEcurrentHrefsave\@currentHref% save current href label as we later change it globally + \def\@currentlabel{\p@equation\theequation}% redefine the ref label + \def\@currentHref{\@IEEEtheHrefequation}% setup hyperref label + \IEEEeqnarraydecl\relax% allow a way for the user to make global overrides + #1\relax% allow user to override defaults + \let\\\@IEEEeqnarraycr% replace newline with one that can put in eqn. numbers + \global\@IEEEeqncolcnt\z@% col. count = 0 for first line + \@IEEEbuildpreamble{#2}\relax% build the preamble and put it into \@IEEEtrantmptoksA + % put in the column for the equation number + \ifnum\@IEEEeqnnumcols>0\relax\@IEEEappendtoksA{&}\fi% col separator for those after the first + \toks0={##}% + % advance the \@IEEEeqncolcnt for the isolation col, this helps with error checking + \@IEEEappendtoksA{\global\advance\@IEEEeqncolcnt by 1\relax}% + % add the isolation column + \@IEEEappendtoksA{\tabskip\z@skip\bgroup\the\toks0\egroup}% + % advance the \@IEEEeqncolcnt for the equation number col, this helps with error checking + \@IEEEappendtoksA{&\global\advance\@IEEEeqncolcnt by 1\relax}% + % add the equation number col to the preamble + \@IEEEappendtoksA{\tabskip\z@skip\hb@xt@\z@\bgroup\hss\the\toks0\egroup}% + % note \@IEEEeqnnumcols does not count the equation col or isolation col + % set the starting tabskip glue as determined by the preamble build + \tabskip=\@IEEEBPstartglue\relax + % begin the display alignment + \@IEEEeqnarrayISinnertrue% commands are now within the lines + $$\everycr{}\halign to\displaywidth\bgroup + % "exspand" the preamble + \span\the\@IEEEtrantmptoksA\cr} + +% enter isolation/strut column (or the next column if the user did not use +% every column), record the strut status, complete the columns, do the strut if needed, +% restore counters (to backout any equation setup for a next line that was never used) +% to their correct values and exit +\def\end@IEEEeqnarray{\@IEEEeqnarrayglobalizestrutstatus&\@@IEEEeqnarraycr\egroup +\if@IEEEsubeqnumpreadv\global\advance\c@IEEEsubequation\m@ne\fi +\if@IEEEeqnumpreadv\global\advance\c@equation\m@ne\global\c@IEEEsubequation=\@IEEEsubeqnnumrollback\fi +\global\let\@currentlabel\@IEEEcurrentlabelsave% restore current label +\global\let\@currentHref\@IEEEcurrentHrefsave% restore current href label +$$\@ignoretrue} + + +% IEEEeqnarray uses a modifed \\ instead of the plain \cr to +% end rows. This allows for things like \\*[vskip amount] +% These "cr" macros are modified versions of those for LaTeX2e's eqnarray +% the {\ifnum0=`} braces must be kept away from the last column to avoid +% altering spacing of its math, so we use & to advance to the next column +% as there is an isolation/strut column after the user's columns +\def\@IEEEeqnarraycr{\@IEEEeqnarrayglobalizestrutstatus&% save strut status and advance to next column + {\ifnum0=`}\fi + \@ifstar{% + \global\@eqpen\@M\@IEEEeqnarrayYCR + }{% + \global\@eqpen\interdisplaylinepenalty \@IEEEeqnarrayYCR + }% +} + +\def\@IEEEeqnarrayYCR{\@testopt\@IEEEeqnarrayXCR\z@skip} + +\def\@IEEEeqnarrayXCR[#1]{% + \ifnum0=`{\fi}% + \@@IEEEeqnarraycr + \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}}% + +\def\@@IEEEeqnarraycr{\@IEEEtrantmptoksA={}% clear token register + \advance\@IEEEeqncolcnt by -1\relax% adjust col count because of the isolation column + \ifnum\@IEEEeqncolcnt>\@IEEEeqnnumcols\relax + \@IEEEclspkgerror{Too many columns within the IEEEeqnarray\MessageBreak + environment}% + {Use fewer \string &'s or put more columns in the IEEEeqnarray column\MessageBreak + specifications.}\relax% + \else + \loop% add cols if the user did not use them all + \ifnum\@IEEEeqncolcnt<\@IEEEeqnnumcols\relax + \@IEEEappendtoksA{&}% + \advance\@IEEEeqncolcnt by 1\relax% update the col count + \repeat + % this number of &'s will take us the the isolation column + \fi + % execute the &'s + \the\@IEEEtrantmptoksA% + % handle the strut/isolation column + \@IEEEeqnarrayinsertstrut% do the strut if needed + \@IEEEeqnarraystrutreset% reset the strut system for next line or IEEEeqnarray + &% and enter the equation number column + \if@eqnsw% only if we display something + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}}% start a hyperref anchor + \global\@IEEEeqnumpreadvfalse\relax% displaying an equation number means + \global\@IEEEsubeqnumpreadvfalse\relax% the equation counters point to valid equations + % V1.8 Here we setup the counters, currentlabel and status for what would be the *next* + % equation line as would be the case under the current settings. However, there are two problems. + % One problem is that there might not ever be a next line. The second problem is that the user + % may later alter the meaning of a line with commands such as \IEEEyessubnumber. So, to handle + % these cases we have to record the current values of the (sub)equation counters and revert back + % to them if the next line is changed or never comes. The \if@IEEEeqnumpreadv, \if@IEEEsubeqnumpreadv + % and \@IEEEsubeqnnumrollback stuff tracks this. + % The logic to handle all this is surprisingly complex, but a nice feature of the approach here is + % that the equation counters and labels remain valid for what the line would be unless a + % \IEEEyessubnumber et al. later changes it. So, any hyperref links are always correct. + \ifnum\c@IEEEsubequation>0\relax% handle subequation + \theIEEEsubequationdis\relax + \if@IEEEsubeqnumpersist% setup for default type of next line + \stepcounter{IEEEsubequation}\global\@IEEEsubeqnumpreadvtrue\relax + \gdef\@currentlabel{\p@IEEEsubequation\theIEEEsubequation}\relax + \gdef\@currentHref{\@IEEEtheHrefsubequation}% setup hyperref label + \else + % if no subeqnum persist, go ahead and setup for a new equation number + \global\@IEEEsubeqnnumrollback=\c@IEEEsubequation + \stepcounter{equation}\global\@IEEEeqnumpreadvtrue\relax + \setcounter{IEEEsubequation}{0}\gdef\@currentlabel{\p@equation\theequation}\relax + \gdef\@currentHref{\@IEEEtheHrefequation}% setup hyperref label + \fi + \else% display a standard equation number + \theequationdis\relax + \setcounter{IEEEsubequation}{0}\relax% not really needed + \if@IEEEsubeqnumpersist% setup for default type of next line + % subequations that follow plain equations carry the same equation number e.g, 5, 5a rather than 5, 6a + \stepcounter{IEEEsubequation}\global\@IEEEsubeqnumpreadvtrue\relax + \gdef\@currentlabel{\p@IEEEsubequation\theIEEEsubequation}\relax + \gdef\@currentHref{\@IEEEtheHrefsubequation}% setup hyperref label + \else + % if no subeqnum persist, go ahead and setup for a new equation number + \global\@IEEEsubeqnnumrollback=\c@IEEEsubequation + \stepcounter{equation}\global\@IEEEeqnumpreadvtrue\relax + \setcounter{IEEEsubequation}{0}\gdef\@currentlabel{\p@equation\theequation}\relax + \gdef\@currentHref{\@IEEEtheHrefequation}% setup hyperref label + \fi + \fi% + \Hy@raisedlink{\hyper@anchorend}% end hyperref anchor + \fi% fi only if we display something + % reset the flags to indicate the default preferences of the display of equation numbers + \if@IEEEeqnumpersist\global\@eqnswtrue\else\global\@eqnswfalse\fi + \if@IEEEsubeqnumpersist\global\@eqnswtrue\fi% ditto for the subequation flag + % reset the number of columns the user actually used + \global\@IEEEeqncolcnt\z@\relax + % the real end of the line + \cr} + + + + + +% \IEEEeqnarraybox is like \IEEEeqnarray except the box form puts everything +% inside a vtop, vbox, or vcenter box depending on the letter in the second +% optional argument (t,b,c). Vbox is the default. Unlike \IEEEeqnarray, +% equation numbers are not displayed and \IEEEeqnarraybox can be nested. +% \IEEEeqnarrayboxm is for math mode (like \array) and does not put the vbox +% within an hbox. +% \IEEEeqnarrayboxt is for text mode (like \tabular) and puts the vbox within +% a \hbox{$ $} construct. +% \IEEEeqnarraybox will auto detect whether to use \IEEEeqnarrayboxm or +% \IEEEeqnarrayboxt depending on the math mode. +% The third optional argument specifies the width this box is to be set to - +% natural width is the default. +% The * forms do not add \jot line spacing +% usage: \IEEEeqnarraybox[decl][pos][width]{cols} +\def\IEEEeqnarrayboxm{\@IEEEeqnarrayboxnojotfalse\@IEEEeqnarrayboxHBOXSWfalse\@IEEEeqnarraybox} +\def\endIEEEeqnarrayboxm{\end@IEEEeqnarraybox} +\@namedef{IEEEeqnarrayboxm*}{\@IEEEeqnarrayboxnojottrue\@IEEEeqnarrayboxHBOXSWfalse\@IEEEeqnarraybox} +\@namedef{endIEEEeqnarrayboxm*}{\end@IEEEeqnarraybox} + +\def\IEEEeqnarrayboxt{\@IEEEeqnarrayboxnojotfalse\@IEEEeqnarrayboxHBOXSWtrue\@IEEEeqnarraybox} +\def\endIEEEeqnarrayboxt{\end@IEEEeqnarraybox} +\@namedef{IEEEeqnarrayboxt*}{\@IEEEeqnarrayboxnojottrue\@IEEEeqnarrayboxHBOXSWtrue\@IEEEeqnarraybox} +\@namedef{endIEEEeqnarrayboxt*}{\end@IEEEeqnarraybox} + +\def\IEEEeqnarraybox{\@IEEEeqnarrayboxnojotfalse\ifmmode\@IEEEeqnarrayboxHBOXSWfalse\else\@IEEEeqnarrayboxHBOXSWtrue\fi% +\@IEEEeqnarraybox} +\def\endIEEEeqnarraybox{\end@IEEEeqnarraybox} + +\@namedef{IEEEeqnarraybox*}{\@IEEEeqnarrayboxnojottrue\ifmmode\@IEEEeqnarrayboxHBOXSWfalse\else\@IEEEeqnarrayboxHBOXSWtrue\fi% +\@IEEEeqnarraybox} +\@namedef{endIEEEeqnarraybox*}{\end@IEEEeqnarraybox} + +% flag to indicate if the \IEEEeqnarraybox needs to put things into an hbox{$ $} +% for \vcenter in non-math mode +\newif\if@IEEEeqnarrayboxHBOXSW% +\@IEEEeqnarrayboxHBOXSWfalse + +\def\@IEEEeqnarraybox{\relax\@ifnextchar[{\@@IEEEeqnarraybox}{\@@IEEEeqnarraybox[\relax]}} +% We have to be careful here to normalize catcodes just before acquiring the +% cols as that specification may contain punctuation which could be subject +% to document catcode changes. +\def\@@IEEEeqnarraybox[#1]{\relax\begingroup\IEEEnormalcatcodes\@ifnextchar[{\@@@IEEEeqnarraybox[#1]}{\@@@IEEEeqnarraybox[#1][b]}} +\def\@@@IEEEeqnarraybox[#1][#2]{\relax\@ifnextchar[{\@@@@IEEEeqnarraybox[#1][#2]}{\@@@@IEEEeqnarraybox[#1][#2][\relax]}} + +% #1 = decl; #2 = t,b,c; #3 = width, #4 = col specs +\def\@@@@IEEEeqnarraybox[#1][#2][#3]#4{\endgroup\@IEEEeqnarrayISinnerfalse % not yet within the lines of the halign + \@IEEEeqnarraymasterstrutsave% save current master strut values + \@IEEEeqnarraystrutsize{0pt}{0pt}[\relax]% turn off struts by default + \@IEEEeqnarrayusemasterstruttrue% use master strut till user asks otherwise + \IEEEvisiblestrutsfalse% diagnostic mode defaults to off + % no extra space unless the user specifically requests it + \lineskip=0pt\relax% + \lineskiplimit=0pt\relax% + \baselineskip=\normalbaselineskip\relax% + \jot=\IEEEnormaljot\relax% + \mathsurround\z@\relax% no extra spacing around math + % the default end glues are zero for an \IEEEeqnarraybox + \edef\@IEEEeqnarraycolSEPdefaultstart{\@IEEEeqnarraycolSEPzero}% default start glue + \edef\@IEEEeqnarraycolSEPdefaultend{\@IEEEeqnarraycolSEPzero}% default end glue + \edef\@IEEEeqnarraycolSEPdefaultmid{\@IEEEeqnarraycolSEPzero}% default inter-column glue + \@advanceIEEEeqncolcntfalse% do not advance the col counter for each col the user uses, + % used in \IEEEeqnarraymulticol and in the preamble build + \IEEEeqnarrayboxdecl\relax% allow a way for the user to make global overrides + #1\relax% allow user to override defaults + \let\\\@IEEEeqnarrayboxcr% replace newline with one that allows optional spacing + \@IEEEbuildpreamble{#4}\relax% build the preamble and put it into \@IEEEtrantmptoksA + % add an isolation column to the preamble to stop \\'s {} from getting into the last col + \ifnum\@IEEEeqnnumcols>0\relax\@IEEEappendtoksA{&}\fi% col separator for those after the first + \toks0={##}% + % add the isolation column to the preamble + \@IEEEappendtoksA{\tabskip\z@skip\bgroup\the\toks0\egroup}% + % set the starting tabskip glue as determined by the preamble build + \tabskip=\@IEEEBPstartglue\relax + % begin the alignment + \everycr{}% + % use only the very first token to determine the positioning + \@IEEEextracttoken{#2}\relax + \ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: IEEEeqnarraybox position specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax + \fi + % \@IEEEextractedtoken has the first token, the rest are ignored + % if we need to put things into and hbox and go into math mode, do so now + \if@IEEEeqnarrayboxHBOXSW \leavevmode \hbox \bgroup $\fi% + % use the appropriate vbox type + \if\@IEEEextractedtoken t\relax\vtop\else\if\@IEEEextractedtoken c\relax% + \vcenter\else\vbox\fi\fi\bgroup% + \@IEEEeqnarrayISinnertrue% commands are now within the lines + \ifx#3\relax\halign\else\halign to #3\relax\fi% + \bgroup + % "exspand" the preamble + \span\the\@IEEEtrantmptoksA\cr} + +% carry strut status and enter the isolation/strut column, +% exit from math mode if needed, and exit +\def\end@IEEEeqnarraybox{\@IEEEeqnarrayglobalizestrutstatus% carry strut status +&% enter isolation/strut column +\@IEEEeqnarrayinsertstrut% do strut if needed +\@IEEEeqnarraymasterstrutrestore% restore the previous master strut values +% reset the strut system for next IEEEeqnarray +% (sets local strut values back to previous master strut values) +\@IEEEeqnarraystrutreset% +% ensure last line, exit from halign, close vbox +\crcr\egroup\egroup% +% exit from math mode and close hbox if needed +\if@IEEEeqnarrayboxHBOXSW $\egroup\fi} + + + +% IEEEeqnarraybox uses a modifed \\ instead of the plain \cr to +% end rows. This allows for things like \\[vskip amount] +% This "cr" macros are modified versions those for LaTeX2e's eqnarray +% For IEEEeqnarraybox, \\* is the same as \\ +% the {\ifnum0=`} braces must be kept away from the last column to avoid +% altering spacing of its math, so we use & to advance to the isolation/strut column +% carry strut status into isolation/strut column +\def\@IEEEeqnarrayboxcr{\@IEEEeqnarrayglobalizestrutstatus% carry strut status +&% enter isolation/strut column +\@IEEEeqnarrayinsertstrut% do strut if needed +% reset the strut system for next line or IEEEeqnarray +\@IEEEeqnarraystrutreset% +{\ifnum0=`}\fi% +\@ifstar{\@IEEEeqnarrayboxYCR}{\@IEEEeqnarrayboxYCR}} + +% test and setup the optional argument to \\[] +\def\@IEEEeqnarrayboxYCR{\@testopt\@IEEEeqnarrayboxXCR\z@skip} + +% IEEEeqnarraybox does not automatically increase line spacing by \jot +\def\@IEEEeqnarrayboxXCR[#1]{\ifnum0=`{\fi}% +\cr\noalign{\if@IEEEeqnarrayboxnojot\else\vskip\jot\fi\vskip#1\relax}} + + + +% usage: \@IEEEbuildpreamble{column specifiers} +% starts the halign preamble build +% the assembled preamble is put in \@IEEEtrantmptoksA +\def\@IEEEbuildpreamble#1{\@IEEEtrantmptoksA={}% clear token register +\let\@IEEEBPcurtype=u%current column type is not yet known +\let\@IEEEBPprevtype=s%the previous column type was the start +\let\@IEEEBPnexttype=u%next column type is not yet known +% ensure these are valid +\def\@IEEEBPcurglue={0pt plus 0pt minus 0pt}% +\def\@IEEEBPcurcolname{@IEEEdefault}% name of current column definition +% currently acquired numerically referenced glue +% use a name that is easier to remember +\let\@IEEEBPcurnum=\@IEEEtrantmpcountA% +\@IEEEBPcurnum=0% +% tracks number of columns in the preamble +\@IEEEeqnnumcols=0% +% record the default end glues +\edef\@IEEEBPstartglue{\@IEEEeqnarraycolSEPdefaultstart}% +\edef\@IEEEBPendglue{\@IEEEeqnarraycolSEPdefaultend}% +\edef\@IEEEedefMACRO{#1}\relax% fully expand the preamble to support macro containers +% now parse the user's column specifications +% \ignorespaces is used as a delimiter, need at least one trailing \relax because +% \@@IEEEbuildpreamble looks into the future +\expandafter\@@IEEEbuildpreamble\@IEEEedefMACRO\ignorespaces\relax\relax} + + +% usage: \@@IEEEbuildpreamble{current column}{next column} +% parses and builds the halign preamble +\def\@@IEEEbuildpreamble#1#2{\let\@@nextIEEEbuildpreamble=\@@IEEEbuildpreamble% +% use only the very first token to check the end +\@IEEEextracttokengroups{#1}\relax +\ifx\@IEEEextractedfirsttoken\ignorespaces\let\@@nextIEEEbuildpreamble=\@@IEEEfinishpreamble\else% +% identify current and next token type +\@IEEEgetcoltype{#1}{\@IEEEBPcurtype}{1}% current, error on invalid +\@IEEEgetcoltype{#2}{\@IEEEBPnexttype}{0}% next, no error on invalid next +% if curtype is a glue, get the glue def +\if\@IEEEBPcurtype g\@IEEEgetcurglue{#1}{\@IEEEBPcurglue}\fi% +% if curtype is a column, get the column def and set the current column name +\if\@IEEEBPcurtype c\@IEEEgetcurcol{#1}\fi% +% if curtype is a numeral, acquire the user defined glue +\if\@IEEEBPcurtype n\@IEEEprocessNcol{#1}\fi% +% process the acquired glue +\if\@IEEEBPcurtype g\@IEEEprocessGcol\fi% +% process the acquired col +\if\@IEEEBPcurtype c\@IEEEprocessCcol\fi% +% ready prevtype for next col spec. +\let\@IEEEBPprevtype=\@IEEEBPcurtype% +% be sure and put back the future token(s) as a group +\fi\@@nextIEEEbuildpreamble{#2}} + + +% usage: \@@IEEEfinishpreamble{discarded} +% executed just after preamble build is completed +% warn about zero cols, and if prevtype type = u, put in end tabskip glue +% argument is not used +\def\@@IEEEfinishpreamble#1{\ifnum\@IEEEeqnnumcols<1\relax +\@IEEEclspkgerror{No column specifiers declared for IEEEeqnarray}% +{At least one column type must be declared for each IEEEeqnarray.}% +\fi%num cols less than 1 +%if last type undefined, set default end tabskip glue +\if\@IEEEBPprevtype u\@IEEEappendtoksA{\tabskip=\@IEEEBPendglue}\fi} + + +% usage: \@IEEEgetcoltype{col specifier}{\output}{error more} +% Identify and return the column specifier's type code in the given +% \output macro: +% n = number +% g = glue (any other char in catagory 12) +% c = letter +% e = \ignorespaces (end of sequence) +% u = undefined +% error mode: 0 = no error message, 1 = error on invalid char +\def\@IEEEgetcoltype#1#2#3{% +% use only the very first token to determine the type +\@IEEEextracttoken{#1}\relax +% \@IEEEextractedtoken has the first token, the rest are discarded +\let#2=u\relax% assume invalid until know otherwise +\ifx\@IEEEextractedtoken\ignorespaces\let#2=e\else +\ifcat\@IEEEextractedtoken\relax\else% screen out control sequences +\if0\@IEEEextractedtoken\let#2=n\else +\if1\@IEEEextractedtoken\let#2=n\else +\if2\@IEEEextractedtoken\let#2=n\else +\if3\@IEEEextractedtoken\let#2=n\else +\if4\@IEEEextractedtoken\let#2=n\else +\if5\@IEEEextractedtoken\let#2=n\else +\if6\@IEEEextractedtoken\let#2=n\else +\if7\@IEEEextractedtoken\let#2=n\else +\if8\@IEEEextractedtoken\let#2=n\else +\if9\@IEEEextractedtoken\let#2=n\else +\ifcat,\@IEEEextractedtoken\let#2=g\relax +\else\ifcat a\@IEEEextractedtoken\let#2=c\relax\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +\if#2u\relax +\if0\noexpand#3\relax\else\@IEEEclspkgerror{Invalid character in column specifications}% +{Only letters, numerals and certain other symbols are allowed \MessageBreak +as IEEEeqnarray column specifiers.}\fi\fi} + + +% usage: \@IEEEgetcurcol{col specifier} +% verify the letter referenced column exists +% and return its name in \@IEEEBPcurcolname +% if column specifier is invalid, use the default column @IEEEdefault +\def\@IEEEgetcurcol#1{\expandafter\ifx\csname @IEEEeqnarraycolDEF#1\endcsname\@IEEEeqnarraycolisdefined% +\def\@IEEEBPcurcolname{#1}\else% invalid column name +\@IEEEclspkgerror{Invalid column type "#1" in column specifications.\MessageBreak +Using a default centering column instead}% +{You must define IEEEeqnarray column types before use.}% +\def\@IEEEBPcurcolname{@IEEEdefault}\fi} + + +% usage: \@IEEEgetcurglue{glue specifier}{\output} +% identify the predefined (punctuation) glue value +% and return it in the given output macro +\def\@IEEEgetcurglue#1#2{% +% ! = \! (neg small) -0.16667em (-3/18 em) +% , = \, (small) 0.16667em ( 3/18 em) +% : = \: (med) 0.22222em ( 4/18 em) +% ; = \; (large) 0.27778em ( 5/18 em) +% ' = \quad 1em +% " = \qquad 2em +% . = 0.5\arraycolsep +% / = \arraycolsep +% ? = 2\arraycolsep +% * = 1fil +% + = \@IEEEeqnarraycolSEPcenter +% - = \@IEEEeqnarraycolSEPzero +% Note that all em values are referenced to the math font (textfont2) fontdimen6 +% value for 1em. +% +% use only the very first token to determine the type +\@IEEEextracttoken{#1}\relax +\ifx\@IEEEextractedtokensdiscarded\@empty\else + \typeout{** WARNING: IEEEeqnarray predefined inter-column glue type specifiers after the first in `\@IEEEextracttokenarg' ignored (line \the\inputlineno).}\relax +\fi +% get the math font 1em value +% LaTeX2e's NFSS2 does not preload the fonts, but \IEEEeqnarray needs +% to gain access to the math (\textfont2) font's spacing parameters. +% So we create a bogus box here that uses the math font to ensure +% that \textfont2 is loaded and ready. If this is not done, +% the \textfont2 stuff here may not work. +% Thanks to Bernd Raichle for his 1997 post on this topic. +{\setbox0=\hbox{$\displaystyle\relax$}}% +% fontdimen6 has the width of 1em (a quad). +\@IEEEtrantmpdimenA=\fontdimen6\textfont2\relax% +% identify the glue value based on the first token +% we discard anything after the first +\if!\@IEEEextractedtoken\@IEEEtrantmpdimenA=-0.16667\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if,\@IEEEextractedtoken\@IEEEtrantmpdimenA=0.16667\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if:\@IEEEextractedtoken\@IEEEtrantmpdimenA=0.22222\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if;\@IEEEextractedtoken\@IEEEtrantmpdimenA=0.27778\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if'\@IEEEextractedtoken\@IEEEtrantmpdimenA=1\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if"\@IEEEextractedtoken\@IEEEtrantmpdimenA=2\@IEEEtrantmpdimenA\edef#2{\the\@IEEEtrantmpdimenA}\else +\if.\@IEEEextractedtoken\@IEEEtrantmpdimenA=0.5\arraycolsep\edef#2{\the\@IEEEtrantmpdimenA}\else +\if/\@IEEEextractedtoken\edef#2{\the\arraycolsep}\else +\if?\@IEEEextractedtoken\@IEEEtrantmpdimenA=2\arraycolsep\edef#2{\the\@IEEEtrantmpdimenA}\else +\if *\@IEEEextractedtoken\edef#2{0pt plus 1fil minus 0pt}\else +\if+\@IEEEextractedtoken\edef#2{\@IEEEeqnarraycolSEPcenter}\else +\if-\@IEEEextractedtoken\edef#2{\@IEEEeqnarraycolSEPzero}\else +\edef#2{\@IEEEeqnarraycolSEPzero}% +\@IEEEclspkgerror{Invalid predefined inter-column glue type "#1" in\MessageBreak +column specifications. Using a default value of\MessageBreak +0pt instead}% +{Only !,:;'"./?*+ and - are valid predefined glue types in the\MessageBreak +IEEEeqnarray column specifications.}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} + + +% usage: \@IEEEprocessNcol{digit} +% process a numerical digit from the column specification +% and look up the corresponding user defined glue value +% can transform current type from n to g or a as the user defined glue is acquired +\def\@IEEEprocessNcol#1{\if\@IEEEBPprevtype g% +\@IEEEclspkgerror{Back-to-back inter-column glue specifiers in column\MessageBreak +specifications. Ignoring consecutive glue specifiers\MessageBreak +after the first}% +{You cannot have two or more glue types next to each other\MessageBreak +in the IEEEeqnarray column specifications.}% +\let\@IEEEBPcurtype=a% abort this glue, future digits will be discarded +\@IEEEBPcurnum=0\relax% +\else% if we previously aborted a glue +\if\@IEEEBPprevtype a\@IEEEBPcurnum=0\let\@IEEEBPcurtype=a%maintain digit abortion +\else%acquire this number +% save the previous type before the numerical digits started +\if\@IEEEBPprevtype n\else\let\@IEEEBPprevsavedtype=\@IEEEBPprevtype\fi% +\multiply\@IEEEBPcurnum by 10\relax% +\advance\@IEEEBPcurnum by #1\relax% add in number, \relax is needed to stop TeX's number scan +\if\@IEEEBPnexttype n\else%close acquisition +\expandafter\ifx\csname @IEEEeqnarraycolSEPDEF\expandafter\romannumeral\number\@IEEEBPcurnum\endcsname\@IEEEeqnarraycolisdefined% +\edef\@IEEEBPcurglue{\csname @IEEEeqnarraycolSEP\expandafter\romannumeral\number\@IEEEBPcurnum\endcsname}% +\else%user glue not defined +\@IEEEclspkgerror{Invalid user defined inter-column glue type "\number\@IEEEBPcurnum" in\MessageBreak +column specifications. Using a default value of\MessageBreak +0pt instead}% +{You must define all IEEEeqnarray numerical inter-column glue types via\MessageBreak +\string\IEEEeqnarraydefcolsep \space before they are used in column specifications.}% +\edef\@IEEEBPcurglue{\@IEEEeqnarraycolSEPzero}% +\fi% glue defined or not +\let\@IEEEBPcurtype=g% change the type to reflect the acquired glue +\let\@IEEEBPprevtype=\@IEEEBPprevsavedtype% restore the prev type before this number glue +\@IEEEBPcurnum=0\relax%ready for next acquisition +\fi%close acquisition, get glue +\fi%discard or acquire number +\fi%prevtype glue or not +} + + +% process an acquired glue +% add any acquired column/glue pair to the preamble +\def\@IEEEprocessGcol{\if\@IEEEBPprevtype a\let\@IEEEBPcurtype=a%maintain previous glue abortions +\else +% if this is the start glue, save it, but do nothing else +% as this is not used in the preamble, but before +\if\@IEEEBPprevtype s\edef\@IEEEBPstartglue{\@IEEEBPcurglue}% +\else%not the start glue +\if\@IEEEBPprevtype g%ignore if back to back glues +\@IEEEclspkgerror{Back-to-back inter-column glue specifiers in column\MessageBreak +specifications. Ignoring consecutive glue specifiers\MessageBreak +after the first}% +{You cannot have two or more glue types next to each other\MessageBreak +in the IEEEeqnarray column specifications.}% +\let\@IEEEBPcurtype=a% abort this glue +\else% not a back to back glue +\if\@IEEEBPprevtype c\relax% if the previoustype was a col, add column/glue pair to preamble +\ifnum\@IEEEeqnnumcols>0\relax\@IEEEappendtoksA{&}\fi +\toks0={##}% +% make preamble advance col counter if this environment needs this +\if@advanceIEEEeqncolcnt\@IEEEappendtoksA{\global\advance\@IEEEeqncolcnt by 1\relax}\fi +% insert the column defintion into the preamble, being careful not to expand +% the column definition +\@IEEEappendtoksA{\tabskip=\@IEEEBPcurglue}% +\@IEEEappendNOEXPANDtoksA{\begingroup\csname @IEEEeqnarraycolPRE}% +\@IEEEappendtoksA{\@IEEEBPcurcolname}% +\@IEEEappendNOEXPANDtoksA{\endcsname}% +\@IEEEappendtoksA{\the\toks0}% +\@IEEEappendNOEXPANDtoksA{\relax\relax\relax\relax\relax% +\relax\relax\relax\relax\relax\csname @IEEEeqnarraycolPOST}% +\@IEEEappendtoksA{\@IEEEBPcurcolname}% +\@IEEEappendNOEXPANDtoksA{\endcsname\relax\relax\relax\relax\relax% +\relax\relax\relax\relax\relax\endgroup}% +\advance\@IEEEeqnnumcols by 1\relax%one more column in the preamble +\else% error: non-start glue with no pending column +\@IEEEclspkgerror{Inter-column glue specifier without a prior column\MessageBreak +type in the column specifications. Ignoring this glue\MessageBreak +specifier}% +{Except for the first and last positions, glue can be placed only\MessageBreak +between column types.}% +\let\@IEEEBPcurtype=a% abort this glue +\fi% previous was a column +\fi% back-to-back glues +\fi% is start column glue +\fi% prev type not a +} + + +% process an acquired letter referenced column and, if necessary, add it to the preamble +\def\@IEEEprocessCcol{\if\@IEEEBPnexttype g\else +\if\@IEEEBPnexttype n\else +% we have a column followed by something other than a glue (or numeral glue) +% so we must add this column to the preamble now +\ifnum\@IEEEeqnnumcols>0\relax\@IEEEappendtoksA{&}\fi%col separator for those after the first +\if\@IEEEBPnexttype e\@IEEEappendtoksA{\tabskip=\@IEEEBPendglue\relax}\else%put in end glue +\@IEEEappendtoksA{\tabskip=\@IEEEeqnarraycolSEPdefaultmid\relax}\fi% or default mid glue +\toks0={##}% +% make preamble advance col counter if this environment needs this +\if@advanceIEEEeqncolcnt\@IEEEappendtoksA{\global\advance\@IEEEeqncolcnt by 1\relax}\fi +% insert the column definition into the preamble, being careful not to expand +% the column definition +\@IEEEappendNOEXPANDtoksA{\begingroup\csname @IEEEeqnarraycolPRE}% +\@IEEEappendtoksA{\@IEEEBPcurcolname}% +\@IEEEappendNOEXPANDtoksA{\endcsname}% +\@IEEEappendtoksA{\the\toks0}% +\@IEEEappendNOEXPANDtoksA{\relax\relax\relax\relax\relax% +\relax\relax\relax\relax\relax\csname @IEEEeqnarraycolPOST}% +\@IEEEappendtoksA{\@IEEEBPcurcolname}% +\@IEEEappendNOEXPANDtoksA{\endcsname\relax\relax\relax\relax\relax% +\relax\relax\relax\relax\relax\endgroup}% +\advance\@IEEEeqnnumcols by 1\relax%one more column in the preamble +\fi%next type not numeral +\fi%next type not glue +} + + +%% +%% END OF IEEEeqnarray DEFINITIONS +%% + + + + + +% set up the running headers and footers +% +% header and footer font and size specifications +\def\@IEEEheaderstyle{\normalfont\scriptsize} +\def\@IEEEfooterstyle{\normalfont\scriptsize} +% +% compsoc uses sans-serif headers and footers +\ifCLASSOPTIONcompsoc + \def\@IEEEheaderstyle{\normalfont\sffamily\scriptsize} + \def\@IEEEfooterstyle{\normalfont\sffamily\scriptsize} +\fi + + +% standard page style, ps@headings +\def\ps@headings{% default to standard twoside headers, no footers +% will change later if the mode requires otherwise +\def\@oddhead{\hbox{}\@IEEEheaderstyle\rightmark\hfil\thepage}\relax +\def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax +\let\@oddfoot\@empty +\let\@evenfoot\@empty +\ifCLASSOPTIONtechnote + % technote twoside + \def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax + \def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax +\fi +\ifCLASSOPTIONdraftcls + % draft footers + \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax + \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax +\fi +% oneside +\if@twoside\else + % standard one side headers + \def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax + \let\@evenhead\@empty + \ifCLASSOPTIONdraftcls + % oneside draft footers + \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax + \let\@evenfoot\@empty + \fi +\fi +% turn off headers for conferences +\ifCLASSOPTIONconference + \let\@oddhead\@empty + \let\@evenhead\@empty +\fi +% turn off footers for draftclsnofoot +\ifCLASSOPTIONdraftclsnofoot + \let\@oddfoot\@empty + \let\@evenfoot\@empty +\fi} + + +% title page style, ps@IEEEtitlepagestyle +\def\ps@IEEEtitlepagestyle{% default title page headers, no footers +\def\@oddhead{\hbox{}\@IEEEheaderstyle\leftmark\hfil\thepage}\relax +\def\@evenhead{\@IEEEheaderstyle\thepage\hfil\leftmark\hbox{}}\relax +\let\@oddfoot\@empty +\let\@evenfoot\@empty +% will change later if the mode requires otherwise +\ifCLASSOPTIONdraftcls + % draft footers + \ifCLASSOPTIONdraftclsnofoot\else + % but only if not draftclsnofoot + \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax + \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax + \fi +\else + % all nondraft mode footers + \if@IEEEusingpubid + % for title pages that are using a pubid + % do not repeat pubid on the title page if using a peer review cover page + \ifCLASSOPTIONpeerreview\else + % for noncompsoc papers, the pubid uses footnotesize and + % is at the same vertical position as where the last baseline would normally be + \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \ifCLASSOPTIONcompsoc + % for compsoc papers, the pubid is at the same vertical position as the normal footer + \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \fi + \fi + \fi +\fi +% turn off headers for conferences +\ifCLASSOPTIONconference + \let\@oddhead\@empty + \let\@evenhead\@empty +\fi} + + +% peer review cover page style, ps@IEEEpeerreviewcoverpagestyle +\def\ps@IEEEpeerreviewcoverpagestyle{% default peer review cover no headers, no footers +\let\@oddhead\@empty +\let\@evenhead\@empty +\let\@oddfoot\@empty +\let\@evenfoot\@empty +% will change later if the mode requires otherwise +\ifCLASSOPTIONdraftcls + % draft footers + \ifCLASSOPTIONdraftclsnofoot\else + % but only if not draftclsnofoot + \def\@oddfoot{\@IEEEfooterstyle\@date\hfil DRAFT}\relax + \def\@evenfoot{\@IEEEfooterstyle DRAFT\hfil\@date}\relax + \fi +\else + % all nondraft mode footers + \if@IEEEusingpubid + % for peer review cover pages that are using a pubid + % for noncompsoc papers, the pubid uses footnotesize and + % is at the same vertical position as where the last baseline would normally be + \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\footnotesize\raisebox{\footskip}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \ifCLASSOPTIONcompsoc + % for compsoc papers, the pubid is at the same vertical position as the normal footer + \def\@oddfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \def\@evenfoot{\hbox{}\hss\@IEEEfooterstyle\raisebox{0pt}[0pt][0pt]{\@IEEEpubid}\hss\hbox{}}\relax + \fi + \fi +\fi} + + + +%% Defines the command for putting the header. +%% Note that all the text is forced into uppercase, if you have some text +%% that needs to be in lower case, for instance et. al., then either manually +%% set \leftmark and \rightmark or use \MakeLowercase{et. al.} within the +%% arguments to \markboth. +%% V1.7b add \protect to work with Babel +\def\markboth#1#2{\def\leftmark{\MakeUppercase{\protect#1}}% +\def\rightmark{\MakeUppercase{\protect#2}}} + +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year} + + + + +%% CITATION AND BIBLIOGRAPHY COMMANDS +%% +%% V1.6 no longer supports the older, nonstandard \shortcite and \citename setup stuff +% +% +% Modify Latex2e \@citex to separate citations with "], [" +\def\@citex[#1]#2{% + \let\@citea\@empty + \@cite{\@for\@citeb:=#2\do + {\@citea\def\@citea{], [}% + \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% + \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi + \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}% + \G@refundefinedtrue + \@latex@warning + {Citation `\@citeb' on page \thepage \space undefined}}% + {\hbox{\csname b@\@citeb\endcsname}}}}{#1}} + +% V1.6 we create hooks for the optional use of Donald Arseneau's +% cite.sty package. cite.sty is "smart" and will notice that the +% following format controls are already defined and will not +% redefine them. The result will be the proper sorting of the +% citation numbers and auto detection of 3 or more entry "ranges" - +% all in IEEE style: [1], [2], [5]--[7], [12] +% This also allows for an optional note, i.e., \cite[mynote]{..}. +% If the \cite with note has more than one reference, the note will +% be applied to the last of the listed references. It is generally +% desired that if a note is given, only one reference is listed in +% that \cite. +% Thanks to Mr. Arseneau for providing the required format arguments +% to produce the IEEE style. +\def\citepunct{], [} +\def\citedash{]--[} + +% V1.7 default to using same font for urls made by url.sty +\AtBeginDocument{\csname url@samestyle\endcsname} + +% V1.6 class files should always provide these +\def\newblock{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty +% V1.8b article.cls is now providing these too +% we do not use \@mkboth, nor alter the page style +\newenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \twocolumn[\section*{\indexname}]% + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \columnseprule \z@ + \columnsep 35\p@ + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand\@idxitem{\par\hangindent 40\p@} +\newcommand\subitem{\@idxitem \hspace*{20\p@}} +\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} +\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} + + + +% Provide support for the control entries of IEEEtran.bst V1.00 and later. +% V1.7 optional argument allows for a different aux file to be specified in +% order to handle multiple bibliographies. For example, with multibib.sty: +% \newcites{sec}{Secondary Literature} +% \bstctlcite[@auxoutsec]{BSTcontrolhak} +\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +\def\@bstctlcite[#1]#2{\@bsphack + \@for\@citeb:=#2\do{% + \edef\@citeb{\expandafter\@firstofone\@citeb}% + \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% + \@esphack} + +% \IEEEnoauxwrite{} allows for citations that do not add to or affect +% the order of the existing citation list. Can be useful for \cite +% within \thanks{}. +\DeclareRobustCommand{\IEEEnoauxwrite}[1]{\relax +\if@filesw +\@fileswfalse +#1\relax\relax\relax\relax\relax +\@fileswtrue +\else +#1\relax\relax\relax\relax\relax +\fi} + +% V1.6 provide a way for a user to execute a command just before +% a given reference number - used to insert a \newpage to balance +% the columns on the last page +\edef\@IEEEtriggerrefnum{0} % the default of zero means that + % the command is not executed +\def\@IEEEtriggercmd{\newpage} + +% allow the user to alter the triggered command +\long\def\IEEEtriggercmd#1{\long\def\@IEEEtriggercmd{#1}} + +% allow user a way to specify the reference number just before the +% command is executed +\def\IEEEtriggeratref#1{\@IEEEtrantmpcountA=#1% +\edef\@IEEEtriggerrefnum{\the\@IEEEtrantmpcountA}}% + +% trigger command at the given reference +\def\@IEEEbibitemprefix{\@IEEEtrantmpcountA=\@IEEEtriggerrefnum\relax% +\advance\@IEEEtrantmpcountA by -1\relax% +\ifnum\c@enumiv=\@IEEEtrantmpcountA\relax\@IEEEtriggercmd\relax\fi} + + +\def\@biblabel#1{[#1]} + +% compsoc journals and conferences left align the reference numbers +\@IEEEcompsoconly{\def\@biblabel#1{[#1]\hfill}} + +% controls bib item spacing +\def\IEEEbibitemsep{0pt plus .5pt} + +\@IEEEcompsocconfonly{\def\IEEEbibitemsep{0.5\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}} + + +\def\thebibliography#1{\section*{\refname}% + \addcontentsline{toc}{section}{\refname}% + % V1.6 add some rubber space here and provide a command trigger + \footnotesize\vskip 0.3\baselineskip plus 0.1\baselineskip minus 0.1\baselineskip% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep\relax + \itemsep \IEEEbibitemsep\relax + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \let\@IEEElatexbibitem\bibitem% + \def\bibitem{\@IEEEbibitemprefix\@IEEElatexbibitem}% +\def\newblock{\hskip .11em plus .33em minus .07em}% +% originally: +% \sloppy\clubpenalty4000\widowpenalty4000% +% by adding the \interlinepenalty here, we make it more +% difficult, but not impossible, for LaTeX to break within a reference. +% The IEEE almost never breaks a reference (but they do it more often with +% technotes). You may get an underfull vbox warning around the bibliography, +% but the final result will be much more like what the IEEE will publish. +% MDS 11/2000 +\ifCLASSOPTIONtechnote\sloppy\clubpenalty4000\widowpenalty4000\interlinepenalty100% +\else\sloppy\clubpenalty4000\widowpenalty4000\interlinepenalty500\fi% + \sfcode`\.=1000\relax} +\let\endthebibliography=\endlist + + + + +% TITLE PAGE COMMANDS +% +% +% \IEEEmembership is used to produce the sublargesize italic font used to indicate author +% IEEE membership. compsoc uses a large size sans slant font +\def\IEEEmembership#1{{\@IEEEnotcompsoconly{\sublargesize}\normalfont\@IEEEcompsoconly{\sffamily}\textit{#1}}} + + +% \IEEEauthorrefmark{} produces a footnote type symbol to indicate author affiliation. +% When given an argument of 1 to 9, \IEEEauthorrefmark{} follows the standard LaTeX footnote +% symbol sequence convention. However, for arguments 10 and above, \IEEEauthorrefmark{} +% reverts to using lower case roman numerals, so it cannot overflow. Do note that you +% cannot use \footnotemark[] in place of \IEEEauthorrefmark{} within \author as the footnote +% symbols will have been turned off to prevent \thanks from creating footnote marks. +% \IEEEauthorrefmark{} produces a symbol that appears to LaTeX as having zero vertical +% height - this allows for a more compact line packing, but the user must ensure that +% the interline spacing is large enough to prevent \IEEEauthorrefmark{} from colliding +% with the text above. +% V1.7 make this a robust command +% V1.8 transmag uses an arabic author affiliation symbol +\ifCLASSOPTIONtransmag +\DeclareRobustCommand*{\IEEEauthorrefmark}[1]{\raisebox{0pt}[0pt][0pt]{\textsuperscript{\footnotesize #1}}} +\else +\DeclareRobustCommand*{\IEEEauthorrefmark}[1]{\raisebox{0pt}[0pt][0pt]{\textsuperscript{\footnotesize\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or% + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger% + \or \ddagger\ddagger \else\textsuperscript{\expandafter\romannumeral#1}\fi}}}} +\fi + + +% FONT CONTROLS AND SPACINGS FOR CONFERENCE MODE AUTHOR NAME AND AFFILIATION BLOCKS +% +% The default font styles for the author name and affiliation blocks (confmode) +\def\@IEEEauthorblockNstyle{\normalfont\@IEEEcompsocnotconfonly{\sffamily}\sublargesize} +\def\@IEEEauthorblockAstyle{\normalfont\@IEEEcompsocnotconfonly{\sffamily}\@IEEEcompsocconfonly{\itshape}\normalsize} +% The default if the user does not use an author block +\def\@IEEEauthordefaulttextstyle{\normalfont\@IEEEcompsocnotconfonly{\sffamily}\sublargesize} + +% adjustment spacing from title (or special paper notice) to author name blocks (confmode) +% can be negative +\def\@IEEEauthorblockconfadjspace{-0.25em} +% compsoc conferences need more space here +\@IEEEcompsocconfonly{\def\@IEEEauthorblockconfadjspace{0.75\@IEEEnormalsizeunitybaselineskip}} + +% spacing between name and affiliation blocks (confmode) +% This can be negative. +% The IEEE doesn't want any added spacing here, but I will leave these +% controls in place in case they ever change their mind. +% Personally, I like 0.75ex. +%\def\@IEEEauthorblockNtopspace{0.75ex} +%\def\@IEEEauthorblockAtopspace{0.75ex} +\def\@IEEEauthorblockNtopspace{0.0ex} +\def\@IEEEauthorblockAtopspace{0.0ex} +\ifCLASSOPTIONtransmag +% transmag uses one line of space above first affiliation block +\def\@IEEEauthorblockAtopspace{1\@IEEEnormalsizeunitybaselineskip} +\fi + +% baseline spacing within name and affiliation blocks (confmode) +% must be positive, spacings below certain values will make +% the position of line of text sensitive to the contents of the +% line above it i.e., whether or not the prior line has descenders, +% subscripts, etc. For this reason it is a good idea to keep +% these above 2.6ex +\def\@IEEEauthorblockNinterlinespace{2.6ex} +\def\@IEEEauthorblockAinterlinespace{2.75ex} + +% This tracks the required strut size. +% See the \@IEEEauthorhalign command for the actual default value used. +\def\@IEEEauthorblockXinterlinespace{2.7ex} + +% variables to retain font size and style across groups +% values given here have no effect as they will be overwritten later +\gdef\@IEEESAVESTATEfontsize{10} +\gdef\@IEEESAVESTATEfontbaselineskip{12} +\gdef\@IEEESAVESTATEfontencoding{OT1} +\gdef\@IEEESAVESTATEfontfamily{ptm} +\gdef\@IEEESAVESTATEfontseries{m} +\gdef\@IEEESAVESTATEfontshape{n} + +% saves the current font attributes +\def\@IEEEcurfontSAVE{\global\let\@IEEESAVESTATEfontsize\f@size% +\global\let\@IEEESAVESTATEfontbaselineskip\f@baselineskip% +\global\let\@IEEESAVESTATEfontencoding\f@encoding% +\global\let\@IEEESAVESTATEfontfamily\f@family% +\global\let\@IEEESAVESTATEfontseries\f@series% +\global\let\@IEEESAVESTATEfontshape\f@shape} + +% restores the saved font attributes +\def\@IEEEcurfontRESTORE{\fontsize{\@IEEESAVESTATEfontsize}{\@IEEESAVESTATEfontbaselineskip}% +\fontencoding{\@IEEESAVESTATEfontencoding}% +\fontfamily{\@IEEESAVESTATEfontfamily}% +\fontseries{\@IEEESAVESTATEfontseries}% +\fontshape{\@IEEESAVESTATEfontshape}% +\selectfont} + + +% variable to indicate if the current block is the first block in the column +\newif\if@IEEEprevauthorblockincol \@IEEEprevauthorblockincolfalse + + +% the command places a strut with height and depth = \@IEEEauthorblockXinterlinespace +% we use this technique to have complete manual control over the spacing of the lines +% within the halign environment. +% We set the below baseline portion at 30%, the above +% baseline portion at 70% of the total length. +% Responds to changes in the document's \baselinestretch +\def\@IEEEauthorstrutrule{\@IEEEtrantmpdimenA\@IEEEauthorblockXinterlinespace% +\@IEEEtrantmpdimenA=\baselinestretch\@IEEEtrantmpdimenA% +\rule[-0.3\@IEEEtrantmpdimenA]{0pt}{\@IEEEtrantmpdimenA}} + + +% blocks to hold the authors' names and affilations. +% Makes formatting easy for conferences +% +% use real definitions in conference mode +% name block +\def\IEEEauthorblockN#1{\relax\@IEEEauthorblockNstyle% set the default text style +\gdef\@IEEEauthorblockXinterlinespace{0pt}% disable strut for spacer row +% the \expandafter hides the \cr in conditional tex, see the array.sty docs +% for details, probably not needed here as the \cr is in a macro +% do a spacer row if needed +\if@IEEEprevauthorblockincol\expandafter\@IEEEauthorblockNtopspaceline\fi +\global\@IEEEprevauthorblockincoltrue% we now have a block in this column +%restore the correct strut value +\gdef\@IEEEauthorblockXinterlinespace{\@IEEEauthorblockNinterlinespace}% +% input the author names +#1% +% end the row if the user did not already +\crcr} +% spacer row for names +\def\@IEEEauthorblockNtopspaceline{\cr\noalign{\vskip\@IEEEauthorblockNtopspace}} +% +% affiliation block +\def\IEEEauthorblockA#1{\relax\@IEEEauthorblockAstyle% set the default text style +\gdef\@IEEEauthorblockXinterlinespace{0pt}%disable strut for spacer row +% the \expandafter hides the \cr in conditional tex, see the array.sty docs +% for details, probably not needed here as the \cr is in a macro +% do a spacer row if needed +\if@IEEEprevauthorblockincol\expandafter\@IEEEauthorblockAtopspaceline\fi +\global\@IEEEprevauthorblockincoltrue% we now have a block in this column +%restore the correct strut value +\gdef\@IEEEauthorblockXinterlinespace{\@IEEEauthorblockAinterlinespace}% +% input the author affiliations +#1% +% end the row if the user did not already +\crcr +% V1.8 transmag does not use any additional affiliation spacing after the first author +\ifCLASSOPTIONtransmag\gdef\@IEEEauthorblockAtopspace{0pt}\fi} + +% spacer row for affiliations +\def\@IEEEauthorblockAtopspaceline{\cr\noalign{\vskip\@IEEEauthorblockAtopspace}} + + +% allow papers to compile even if author blocks are used in modes other +% than conference or peerreviewca. For such cases, we provide dummy blocks. +\ifCLASSOPTIONconference +\else + \ifCLASSOPTIONpeerreviewca\else + % not conference, peerreviewca or transmag mode + \ifCLASSOPTIONtransmag\else + \def\IEEEauthorblockN#1{#1}% + \def\IEEEauthorblockA#1{#1}% + \fi + \fi +\fi + + + +% we provide our own halign so as not to have to depend on tabular +\def\@IEEEauthorhalign{\@IEEEauthordefaulttextstyle% default text style + \lineskip=0pt\relax% disable line spacing + \lineskiplimit=0pt\relax% + \baselineskip=0pt\relax% + \@IEEEcurfontSAVE% save the current font + \mathsurround\z@\relax% no extra spacing around math + \let\\\@IEEEauthorhaligncr% replace newline with halign friendly one + \tabskip=0pt\relax% no column spacing + \everycr{}% ensure no problems here + \@IEEEprevauthorblockincolfalse% no author blocks yet + \def\@IEEEauthorblockXinterlinespace{2.7ex}% default interline space + \vtop\bgroup%vtop box + \halign\bgroup&\relax\hfil\@IEEEcurfontRESTORE\relax ##\relax + \hfil\@IEEEcurfontSAVE\@IEEEauthorstrutrule\cr} + +% ensure last line, exit from halign, close vbox +\def\end@IEEEauthorhalign{\crcr\egroup\egroup} + +% handle bogus star form +\def\@IEEEauthorhaligncr{{\ifnum0=`}\fi\@ifstar{\@@IEEEauthorhaligncr}{\@@IEEEauthorhaligncr}} + +% test and setup the optional argument to \\[] +\def\@@IEEEauthorhaligncr{\@testopt\@@@IEEEauthorhaligncr\z@skip} + +% end the line and do the optional spacer +\def\@@@IEEEauthorhaligncr[#1]{\ifnum0=`{\fi}\cr\noalign{\vskip#1\relax}} + + + +% flag to prevent multiple \and warning messages +\newif\if@IEEEWARNand +\@IEEEWARNandtrue + +% if in conference or peerreviewca modes, we support the use of \and as \author is a +% tabular environment, otherwise we warn the user that \and is invalid +% outside of conference or peerreviewca modes. +\def\and{\relax} % provide a bogus \and that we will then override + +\renewcommand{\and}[1][\relax]{\if@IEEEWARNand\typeout{** WARNING: \noexpand\and is valid only + when in conference or peerreviewca}\typeout{modes (line \the\inputlineno).}\fi\global\@IEEEWARNandfalse} + +\ifCLASSOPTIONconference% +\renewcommand{\and}[1][\hfill]{\end{@IEEEauthorhalign}#1\begin{@IEEEauthorhalign}}% +\fi +\ifCLASSOPTIONpeerreviewca +\renewcommand{\and}[1][\hfill]{\end{@IEEEauthorhalign}#1\begin{@IEEEauthorhalign}}% +\fi +% V1.8 transmag uses conference author format +\ifCLASSOPTIONtransmag +\renewcommand{\and}[1][\hfill]{\end{@IEEEauthorhalign}#1\begin{@IEEEauthorhalign}}% +\fi + +% page clearing command +% based on LaTeX2e's \cleardoublepage, but allows different page styles +% for the inserted blank pages +\def\@IEEEcleardoublepage#1{\clearpage\if@twoside\ifodd\c@page\else +\hbox{}\thispagestyle{#1}\newpage\if@twocolumn\hbox{}\thispagestyle{#1}\newpage\fi\fi\fi} + +% V1.8b hooks to allow adjustment of space above title +\def\IEEEtitletopspace{0.5\baselineskip} +% an added extra amount to allow for adjustment/offset +\def\IEEEtitletopspaceextra{0pt} + +% user command to invoke the title page +\def\maketitle{\par% + \begingroup% + \normalfont% + \def\thefootnote{}% the \thanks{} mark type is empty + \def\footnotemark{}% and kill space from \thanks within author + \let\@makefnmark\relax% V1.7, must *really* kill footnotemark to remove all \textsuperscript spacing as well. + \footnotesize% equal spacing between thanks lines + \footnotesep 0.7\baselineskip%see global setting of \footnotesep for more info + % V1.7 disable \thanks note indention for compsoc + \@IEEEcompsoconly{\long\def\@makefntext##1{\parindent 1em\noindent\hbox{\@makefnmark}##1}}% + \normalsize% + \ifCLASSOPTIONpeerreview + \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext% + \thispagestyle{IEEEpeerreviewcoverpagestyle}\@thanks% + \else + \if@twocolumn% + \ifCLASSOPTIONtechnote% + \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext% + \else + \twocolumn[{\IEEEquantizevspace{\@maketitle}[\IEEEquantizedisabletitlecmds]{0pt}[-\topskip]{\baselineskip}{\@IEEENORMtitlevspace}{\@IEEEMINtitlevspace}\@IEEEaftertitletext}]% + \fi + \else + \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext% + \fi + \thispagestyle{IEEEtitlepagestyle}\@thanks% + \fi + % pullup page for pubid if used. + \if@IEEEusingpubid + \enlargethispage{-\@IEEEpubidpullup}% + \fi + \endgroup + \setcounter{footnote}{0}\let\maketitle\relax\let\@maketitle\relax + \gdef\@thanks{}% + % v1.6b do not clear these as we will need the title again for peer review papers + % \gdef\@author{}\gdef\@title{}% + \let\thanks\relax} + + +% V1.8 parbox to format \@IEEEtitleabstractindextext +\long\def\@IEEEtitleabstractindextextbox#1{\parbox{1\textwidth}{#1}} +% V1.8 compsoc is partial width +\ifCLASSOPTIONcompsoc +% comparison with proofs suggests it's in the range of 92.1-92.3% +\long\def\@IEEEtitleabstractindextextbox#1{\parbox{0.922\textwidth}{\@IEEEcompsocnotconfonly{\rightskip\@flushglue\leftskip\z@skip}#1}} +\fi + +% formats the Title, authors names, affiliations and special paper notice +% THIS IS A CONTROLLED SPACING COMMAND! Do not allow blank lines or unintentional +% spaces to enter the definition - use % at the end of each line +\def\@maketitle{\newpage +\bgroup\par\vskip\IEEEtitletopspace\vskip\IEEEtitletopspaceextra\centering% +\ifCLASSOPTIONtechnote% technotes, V1.8a abstract and index terms are not treated differently for compsoc technotes + {\bfseries\large\@IEEEcompsoconly{\Large\sffamily}\@title\par}\vskip 1.3em{\lineskip .5em\@IEEEcompsoconly{\large\sffamily}\@author + \@IEEEspecialpapernotice\par}\relax +\else% not a technote + \vskip0.2em{\Huge\ifCLASSOPTIONtransmag\bfseries\LARGE\fi\@IEEEcompsoconly{\sffamily}\@IEEEcompsocconfonly{\normalfont\normalsize\vskip 2\@IEEEnormalsizeunitybaselineskip + \bfseries\Large}\@IEEEcompsocnotconfonly{\vskip 0.75\@IEEEnormalsizeunitybaselineskip}\@title\par}\relax + \@IEEEcompsocnotconfonly{\vskip 0.5\@IEEEnormalsizeunitybaselineskip}\vskip1.0em\par% + % V1.6 handle \author differently if in conference mode + \ifCLASSOPTIONconference% + {\@IEEEspecialpapernotice\mbox{}\vskip\@IEEEauthorblockconfadjspace% + \mbox{}\hfill\begin{@IEEEauthorhalign}\@author\end{@IEEEauthorhalign}\hfill\mbox{}\par}\relax + \else% peerreviewca, peerreview or journal + \ifCLASSOPTIONpeerreviewca + % peerreviewca handles author names just like conference mode + {\@IEEEcompsoconly{\sffamily}\@IEEEspecialpapernotice\mbox{}\vskip\@IEEEauthorblockconfadjspace% + \mbox{}\hfill\begin{@IEEEauthorhalign}\@author\end{@IEEEauthorhalign}\hfill\mbox{}\par + {\@IEEEcompsoconly{\vskip 1.5em\relax + \@IEEEtitleabstractindextextbox{\@IEEEtitleabstractindextext}\par\noindent\hfill + \IEEEcompsocdiamondline\hfill\hbox{}\par}}}\relax + \else% journal, peerreview or transmag + \ifCLASSOPTIONtransmag + % transmag also handles author names just like conference mode + % it also uses \@IEEEtitleabstractindextex, but with one line less + % space above, and one more below + {\@IEEEspecialpapernotice\mbox{}\vskip\@IEEEauthorblockconfadjspace% + \mbox{}\hfill\begin{@IEEEauthorhalign}\@author\end{@IEEEauthorhalign}\hfill\mbox{}\par + {\vspace{0.5\baselineskip}\relax\@IEEEtitleabstractindextextbox{\@IEEEtitleabstractindextext}\vspace{-1\baselineskip}\par}}\relax + \else% journal or peerreview + {\lineskip.5em\@IEEEcompsoconly{\sffamily}\sublargesize\@author\@IEEEspecialpapernotice\par + {\@IEEEcompsoconly{\vskip 1.5em\relax + \@IEEEtitleabstractindextextbox{\@IEEEtitleabstractindextext}\par\noindent\hfill + \IEEEcompsocdiamondline\hfill\hbox{}\par}}}\relax + \fi + \fi + \fi +\fi\par\addvspace{0.5\baselineskip}\egroup} + + +% V1.7 Computer Society "diamond line" which follows index terms for nonconference papers +% V1.8a full width diamond line for single column use +\def\@IEEEcompsocdiamondlinei{\vrule depth 0pt height 0.5pt width 4cm\nobreak\hspace{7.5pt}\nobreak +\raisebox{-3.5pt}{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\fontsize{11}{12}\selectfont\char70}\nobreak +\hspace{7.5pt}\nobreak\vrule depth 0pt height 0.5pt width 4cm\relax} +% V1.8a narrower width diamond line for double column use +\def\@IEEEcompsocdiamondlineii{\vrule depth 0pt height 0.5pt width 2.5cm\nobreak\hspace{7.5pt}\nobreak +\raisebox{-3.5pt}{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\fontsize{11}{12}\selectfont\char70}\nobreak +\hspace{7.5pt}\nobreak\vrule depth 0pt height 0.5pt width 2.5cm\relax} +% V1.8a bare core without rules to base a last resort on for very narrow linewidths +\def\@IEEEcompsocdiamondlineiii{\mbox{}\nobreak\hspace{7.5pt}\nobreak +\raisebox{-3.5pt}{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\fontsize{11}{12}\selectfont\char70}\nobreak +\hspace{7.5pt}\nobreak\mbox{}\relax} + +% V1.8a allow \IEEEcompsocdiamondline to adjust for different linewidths. +% Use \@IEEEcompsocdiamondlinei if its width is less than 0.66\linewidth (0.487 nominal for single column) +% if not, fall back to \@IEEEcompsocdiamondlineii if its width is less than 0.75\linewidth (0.659 nominal for double column) +% if all else fails, try to make a custom diamondline based on the abnormally narrow linewidth +\def\IEEEcompsocdiamondline{\settowidth{\@IEEEtrantmpdimenA}{\@IEEEcompsocdiamondlinei}\relax +\ifdim\@IEEEtrantmpdimenA<0.66\linewidth\relax\@IEEEcompsocdiamondlinei\relax +\else +\settowidth{\@IEEEtrantmpdimenA}{\@IEEEcompsocdiamondlineii}\relax +\ifdim\@IEEEtrantmpdimenA<0.75\linewidth\relax\@IEEEcompsocdiamondlineii\relax +\else +\settowidth{\@IEEEtrantmpdimenA}{\@IEEEcompsocdiamondlineiii}\relax +\@IEEEtrantmpdimenB=\linewidth\relax +\addtolength{\@IEEEtrantmpdimenB}{-1\@IEEEtrantmpdimenA}\relax +\vrule depth 0pt height 0.5pt width 0.33\@IEEEtrantmpdimenB\@IEEEcompsocdiamondlineiii\vrule depth 0pt height 0.5pt width 0.33\@IEEEtrantmpdimenB\relax +\fi\fi} + + +% V1.7 standard LateX2e \thanks, but with \itshape under compsoc. Also make it a \long\def +% We also need to trigger the one-shot footnote rule +\def\@IEEEtriggeroneshotfootnoterule{\global\@IEEEenableoneshotfootnoteruletrue} + + +\long\def\thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect\footnotetext[\the\c@footnote]{\@IEEEcompsoconly{\itshape + \protect\@IEEEtriggeroneshotfootnoterule\relax}\ignorespaces#1}}} +\let\@thanks\@empty + + +% V1.7 allow \author to contain \par's. This is needed to allow \thanks to contain \par. +\long\def\author#1{\gdef\@author{#1}} + + +% in addition to setting up IEEEitemize, we need to remove a baselineskip space above and +% below it because \list's \pars introduce blank lines because of the footnote struts. +\def\@IEEEsetupcompsocitemizelist{\def\labelitemi{$\bullet$}% +\setlength{\IEEElabelindent}{0pt}\setlength{\labelsep}{1.2em}\setlength{\parskip}{0pt}% +\setlength{\partopsep}{0pt}\setlength{\topsep}{0.5\baselineskip}\vspace{-1\baselineskip}\relax} + + +% flag for fake non-compsoc \IEEEcompsocthanksitem - prevents line break on very first item +\newif\if@IEEEbreakcompsocthanksitem \@IEEEbreakcompsocthanksitemfalse + +\ifCLASSOPTIONcompsoc +% V1.7 compsoc bullet item \thanks +% also, we need to redefine this to destroy the argument in \IEEEquantizevspace +\long\def\IEEEcompsocitemizethanks#1{\relax\@IEEEbreakcompsocthanksitemfalse\footnotemark + \protected@xdef\@thanks{\@thanks + \protect\footnotetext[\the\c@footnote]{\itshape\protect\@IEEEtriggeroneshotfootnoterule + {\let\IEEEiedlistdecl\relax\protect\begin{IEEEitemize}[\protect\@IEEEsetupcompsocitemizelist]\ignorespaces#1\relax + \protect\end{IEEEitemize}}\protect\vspace{-1\baselineskip}}}} +\DeclareRobustCommand*{\IEEEcompsocthanksitem}{\item} +\else +% non-compsoc, allow for dual compilation via rerouting to normal \thanks +\long\def\IEEEcompsocitemizethanks#1{\thanks{#1}} +% redirect to "pseudo-par" \hfil\break\indent after swallowing [] from \IEEEcompsocthanksitem[] +\DeclareRobustCommand{\IEEEcompsocthanksitem}{\@ifnextchar [{\@IEEEthanksswallowoptionalarg}% +{\@IEEEthanksswallowoptionalarg[\relax]}} +% be sure and break only after first item, be sure and ignore spaces after optional argument +\def\@IEEEthanksswallowoptionalarg[#1]{\relax\if@IEEEbreakcompsocthanksitem\hfil\break +\indent\fi\@IEEEbreakcompsocthanksitemtrue\ignorespaces} +\fi + + +% V1.6b define the \IEEEpeerreviewmaketitle as needed +\ifCLASSOPTIONpeerreview +\def\IEEEpeerreviewmaketitle{\@IEEEcleardoublepage{empty}% +\ifCLASSOPTIONtwocolumn +\twocolumn[{\IEEEquantizevspace{\@IEEEpeerreviewmaketitle}[\IEEEquantizedisabletitlecmds]{0pt}[-\topskip]{\baselineskip}{\@IEEENORMtitlevspace}{\@IEEEMINtitlevspace}}] +\else +\newpage\@IEEEpeerreviewmaketitle\@IEEEstatictitlevskip +\fi +\thispagestyle{IEEEtitlepagestyle}} +\else +% \IEEEpeerreviewmaketitle does nothing if peer review option has not been selected +\def\IEEEpeerreviewmaketitle{\relax} +\fi + +% peerreview formats the repeated title like the title in journal papers. +\def\@IEEEpeerreviewmaketitle{\bgroup\par\addvspace{0.5\baselineskip}\centering\@IEEEcompsoconly{\sffamily}% +\normalfont\normalsize\vskip0.2em{\Huge\@title\par}\vskip1.0em\par +\par\addvspace{0.5\baselineskip}\egroup} + + + +% V1.6 +% this is a static rubber spacer between the title/authors and the main text +% used for single column text, or when the title appears in the first column +% of two column text (technotes). +\def\@IEEEstatictitlevskip{{\normalfont\normalsize +% adjust spacing to next text +% v1.6b handle peer review papers +\ifCLASSOPTIONpeerreview +% for peer review papers, the same value is used for both title pages +% regardless of the other paper modes + \vskip 1\baselineskip plus 0.375\baselineskip minus 0.1875\baselineskip +\else + \ifCLASSOPTIONconference% conference + \vskip 1\baselineskip plus 0.375\baselineskip minus 0.1875\baselineskip% + \else% + \ifCLASSOPTIONtechnote% technote + \vskip 1\baselineskip plus 0.375\baselineskip minus 0.1875\baselineskip% + \else% journal uses more space + \vskip 2.5\baselineskip plus 0.75\baselineskip minus 0.375\baselineskip% + \fi + \fi +\fi}} + + +% set the nominal and minimum values for the quantized title spacer +% the quantization algorithm will not allow the spacer size to +% become less than \@IEEEMINtitlevspace - instead it will be lengthened +% default to journal values +\def\@IEEENORMtitlevspace{2.5\baselineskip} +\def\@IEEEMINtitlevspace{2\baselineskip} +% conferences and technotes need tighter spacing +\ifCLASSOPTIONconference% conference + \def\@IEEENORMtitlevspace{1\baselineskip} + \def\@IEEEMINtitlevspace{0.75\baselineskip} +\fi +\ifCLASSOPTIONtechnote% technote + \def\@IEEENORMtitlevspace{1\baselineskip} + \def\@IEEEMINtitlevspace{0.75\baselineskip} +\fi + + +% V1.8a +\def\IEEEquantizevspace{\begingroup\@ifstar{\@IEEEquantizevspacestarformtrue\@IEEEquantizevspace}{\@IEEEquantizevspacestarformfalse\@IEEEquantizevspace}} +% \IEEEquantizevspace[output dimen register]{object}[object decl] +% {top baselineskip} +% [offset][prevdepth][lineskip limit][lineskip] +% {unit height}{nominal vspace}{minimum vspace} +% +% Calculates and creates the vspace needed to make the combined height with +% the given object an integer multiple of the given unit height. This command +% is more general than the older \@IEEEdynamictitlevspace it replaces. +% +% The star form has no effect at present, but is reserved for future use. +% +% If the optional argument [output dimen register] is given, the calculated +% vspace height is stored in the given output dimen (or skip) register +% and no other action is taken, otherwise the object followed by a vspace* +% of the appropriate height is evaluated/output. +% +% The optional object decl (declarations) is code that is evaluated just +% before the object's height is evaluated. Its intented purpose is to allow +% for the alteration or disabling of code within the object during internal +% height evaluation (e.g., \long\def\thanks#1{\relax} ). +% This special code is not invoked if/when the object is rendered at the end. +% +% The nominal vspace is the target value of the added vspace and the minimum +% vspace is the lower allowed limit. The vspacer will be the value that achieves +% integral overall height, in terms of the given unit height, that is closest +% to the nominal vspace and that is not less than the specified minimum vspace. +% +% The line spacing algorithm of TeX is somewhat involved and requires special +% care with regard to the first line of a vertical list (which is indicated +% when \prevdepth is -1000pt or less). top baselineskip specifies the +% baselineskip or topskip used prior to the object. If the height of the +% first line of the object is greater than the given top baselineskip, then +% the top baselineskip is subtracted from the height of the first line and +% that difference is considered along with the rest of the object height +% (because the object will be shifted down by an amount = +% top line height - top baselineskip). Otherwise, the height of the first line +% of the object is ignored as far as the calculations are concerned. +% This algorithm is adequate for objects that appear at the top of a page +% (e.g., titles) where \topskip spacing is used. +% +% However, as explained on page 78 of the TeXbook, interline spacing is more +% complex when \baselineskip is being used (indicated by \prevdepth > +% -1000pt). The four optional parameters offset, prevdepth, lineskip limit and +% lineskip are assumed to be equal to be 0pt, \prevdepth, \lineskiplimit and +% \lineskip, respectively, if they are omitted. +% +% The prevdepth is the depth of the line before the object, the lineskip limit +% specifies how close the top of the object can come to the bottom of the +% previous line before \baselineskip is ignored and \lineskip is inserted +% between the object and the line above it. Lineskip does not come into +% play unless the first line of the object is high enough to "get too close" +% (as specified by lineskiplimit) to the line before it. The the prevdepth, +% lineskip limit, and lineskip optional parameters are not needed for the +% first object/line on a page (i.e., prevdepth <= -1000pt) where the simplier +% \topskip spacing rules are in effect. +% +% Offset is a manual adjustment that is added to the height calculations of +% object irrespective of the value of \prevdepth. It is useful when the top +% baselineskip will result in a noninteger unit height object placement even +% if the object itself has integral height. e.g., a footnotesize baselineskip +% is used before the object, thus an offset of, say -3pt, can be given as a +% correction. + +% Common combinations of these parameters include: +% +% top baselineskip: (and default values for offset, prevdepth, etc.) +% \topskip % for objects that appear at the top of a page +% \maxdimen % always ignore the height of the top line +% 0pt % always consider any positive height of the top line +% +% for objects to appear inline in normal text: +% top baselineskip = \baselineskip +% +% set prevdepth = -1000pt and top baselineskip = 0pt to consider the +% overall height of the object without any other external skip +% consideration + +\newif\if@IEEEquantizevspacestarform % flag to indicate star form +\newif\if@IEEEquantizevspaceuseoutdimenreg % flag to indicate output dimen register is to be used +% Use our own private registers because the object could contain a +% structure that uses the existing tmp scratch pad registers +\newdimen\@IEEEquantizeheightA +\newdimen\@IEEEquantizeheightB +\newdimen\@IEEEquantizeheightC +\newdimen\@IEEEquantizeprevdepth % need to save this early as can change +\newcount\@IEEEquantizemultiple +\newbox\@IEEEquantizeboxA + + +\def\@IEEEquantizevspace{\@ifnextchar [{\@IEEEquantizevspaceuseoutdimenregtrue\@@IEEEquantizevspace}{\@IEEEquantizevspaceuseoutdimenregfalse\@@IEEEquantizevspace[]}} + + +\long\def\@@IEEEquantizevspace[#1]#2{\relax +% acquire and store +% #1 optional output dimen register +% #2 object +\edef\@IEEEquantizeoutdimenreg{#1}\relax +% allow for object specifications that contain parameters +\@IEEEtrantmptoksA={#2}\relax +\long\edef\@IEEEquantizeobject{\the\@IEEEtrantmptoksA}\relax +\@ifnextchar [{\@@@IEEEquantizevspace}{\@@@IEEEquantizevspace[\relax]}} + +\long\def\@@@IEEEquantizevspace[#1]#2{\relax +% acquire and store +% [#1] optional object decl, is \relax if not given by user +% #2 top baselineskip +% allow for object decl specifications that have parameters +\@IEEEtrantmptoksA={#1}\relax +\long\edef\@IEEEquantizeobjectdecl{\the\@IEEEtrantmptoksA}\relax +\edef\@IEEEquantizetopbaselineskip{#2}\ivIEEEquantizevspace} + +% acquire optional argument set and store +% [offset][prevdepth][lineskip limit][lineskip] +\def\ivIEEEquantizevspace{\@ifnextchar [{\@vIEEEquantizevspace}{\@vIEEEquantizevspace[0pt]}} +\def\@vIEEEquantizevspace[#1]{\edef\@IEEEquantizeoffset{#1}\@ifnextchar [{\@viIEEEquantizevspace}{\@viIEEEquantizevspace[\prevdepth]}} +\def\@viIEEEquantizevspace[#1]{\@IEEEquantizeprevdepth=#1\relax\@ifnextchar [{\@viiIEEEquantizevspace}{\@viiIEEEquantizevspace[\lineskiplimit]}} +\def\@viiIEEEquantizevspace[#1]{\edef\@IEEEquantizelineskiplimit{#1}\@ifnextchar [{\@viiiIEEEquantizevspace}{\@viiiIEEEquantizevspace[\lineskip]}} +\def\@viiiIEEEquantizevspace[#1]{\edef\@IEEEquantizelineskip{#1}\@ixIEEEquantizevspace} + +% main routine +\def\@ixIEEEquantizevspace#1#2#3{\relax +\edef\@IEEEquantizeunitheight{#1}\relax +\edef\@IEEEquantizenomvspace{#2}\relax +\edef\@IEEEquantizeminvspace{#3}\relax +% \@IEEEquantizeoutdimenreg +% \@IEEEquantizeobject +% \@IEEEquantizeobjectdecl +% \@IEEEquantizetopbaselineskip +% \@IEEEquantizeoffset +% \@IEEEquantizeprevdepth +% \@IEEEquantizelineskiplimit +% \@IEEEquantizelineskip +% \@IEEEquantizeunitheight +% \@IEEEquantizenomvspace +% \@IEEEquantizeminvspace +% get overall height of object +\setbox\@IEEEquantizeboxA\vbox{\begingroup\@IEEEquantizeobjectdecl\@IEEEquantizeobject\relax\endgroup}\relax +\@IEEEquantizeheightA\ht\@IEEEquantizeboxA\relax +% get height of first line of object +\setbox\@IEEEquantizeboxA\vtop{\begingroup\@IEEEquantizeobjectdecl\@IEEEquantizeobject\relax\endgroup}\relax +\@IEEEquantizeheightB\ht\@IEEEquantizeboxA\relax +\ifdim\@IEEEquantizeprevdepth>-1000pt\relax % prevdepth > -1000pf means full baselineskip\lineskip rules in effect +% lineskip spacing rule takes effect if height of top line > baselineskip - prevdepth - lineskiplimit, +% otherwise the baselineskip rule is in effect and the height of the first line does not matter at all. +\@IEEEquantizeheightC=\@IEEEquantizetopbaselineskip\relax +\advance\@IEEEquantizeheightC-\@IEEEquantizeprevdepth\relax +\advance\@IEEEquantizeheightC-\@IEEEquantizelineskiplimit\relax % this works even though \@IEEEquantizelineskiplimit is a macro because TeX allows --10pt notation +\ifdim\@IEEEquantizeheightB>\@IEEEquantizeheightC\relax +% lineskip spacing rule is in effect i.e., the object is going to be shifted down relative to the +% baselineskip set position by its top line height (already a part of the total height) + prevdepth + lineskip - baselineskip +\advance\@IEEEquantizeheightA\@IEEEquantizeprevdepth\relax +\advance\@IEEEquantizeheightA\@IEEEquantizelineskip\relax +\advance\@IEEEquantizeheightA-\@IEEEquantizetopbaselineskip\relax +\else +% height of first line <= \@IEEEquantizetopbaselineskip - \@IEEEquantizeprevdepth - \@IEEEquantizelineskiplimit +% standard baselineskip rules are in effect, so don't consider height of first line +\advance\@IEEEquantizeheightA-\@IEEEquantizeheightB\relax +\fi +% +\else % prevdepth <= -1000pt, simplier \topskip type rules in effect +\ifdim\@IEEEquantizeheightB>\@IEEEquantizetopbaselineskip +% height of top line (already included in the total height) in excess of +% baselineskip is the amount it will be downshifted +\advance\@IEEEquantizeheightA-\@IEEEquantizetopbaselineskip\relax +\else +% height of first line is irrelevant, remove it +\advance\@IEEEquantizeheightA-\@IEEEquantizeheightB\relax +\fi +\fi % prevdepth <= -1000pt +% +% adjust height for any manual offset +\advance\@IEEEquantizeheightA\@IEEEquantizeoffset\relax +% add in nominal spacer +\advance\@IEEEquantizeheightA\@IEEEquantizenomvspace\relax +% check for nonzero unitheight +\@IEEEquantizeheightB=\@IEEEquantizeunitheight\relax +\ifnum\@IEEEquantizeheightB=0\relax +\@IEEEclspkgerror{IEEEquantizevspace unit height cannot be zero. Assuming 10pt.}% +{Division by zero is not allowed.} +\@IEEEquantizeheightB=10pt\relax +\fi +% get integer number of lines +\@IEEEquantizemultiple=\@IEEEquantizeheightA\relax +\divide\@IEEEquantizemultiple\@IEEEquantizeheightB\relax +% set A to contain the excess height over the \@IEEEquantizemultiple of lines +% A = height - multiple*unitheight +\@IEEEquantizeheightC\@IEEEquantizeheightB\relax +\multiply\@IEEEquantizeheightC\@IEEEquantizemultiple\relax +\advance\@IEEEquantizeheightA-\@IEEEquantizeheightC\relax +% set B to contain the height short of \@IEEEquantizemultiple+1 of lines +% B = unitheight - A +\advance\@IEEEquantizeheightB-\@IEEEquantizeheightA\relax +% choose A or B based on which is closer +\@IEEEquantizeheightC\@IEEEquantizenomvspace\relax +\ifdim\@IEEEquantizeheightA<\@IEEEquantizeheightB\relax +% C = nomvspace - A, go with lower +\advance\@IEEEquantizeheightC-\@IEEEquantizeheightA\relax +\else +% C = nomvspace + B, go with upper +\advance\@IEEEquantizeheightC\@IEEEquantizeheightB\relax +\fi +% if violate lower bound, use next integer bound +\ifdim\@IEEEquantizeheightC<\@IEEEquantizeminvspace\relax +% A + B = unitheight +\advance\@IEEEquantizeheightC\@IEEEquantizeheightA\relax +\advance\@IEEEquantizeheightC\@IEEEquantizeheightB\relax +\fi +% export object and spacer outside of group +\global\let\@IEEEquantizeobjectout\@IEEEquantizeobject\relax +\global\@IEEEquantizeheightC\@IEEEquantizeheightC\relax +\endgroup +\if@IEEEquantizevspaceuseoutdimenreg +\@IEEEquantizeoutdimenreg=\@IEEEquantizeheightC\relax +\else +\@IEEEquantizeobjectout\relax +\vskip\@IEEEquantizeheightC\relax +\fi} + + +% user command to disable all global assignments, possible use within object decl +\def\IEEEquantizedisableglobal{\let\global\relax +\let\gdef\def +\let\xdef\edef} +% user command to allow for the disabling of \thanks and other commands, possible use within object decl +\def\IEEEquantizedisabletitlecmds{\long\def\thanks##1{\relax}\relax +\long\def\IEEEcompsocitemizethanks##1{\relax}\def\newpage{\relax}} + + + + + +% V1.6 +% we allow the user access to the last part of the title area +% useful in emergencies such as when a different spacing is needed +% This text is NOT compensated for in the dynamic sizer. +\let\@IEEEaftertitletext=\relax +\long\def\IEEEaftertitletext#1{\def\@IEEEaftertitletext{#1}} + + +% V1.7 provide a way for users to enter abstract and keywords +% into the onecolumn title are. This text is compensated for +% in the dynamic sizer. +\let\@IEEEtitleabstractindextext=\relax +\long\def\IEEEtitleabstractindextext#1{\def\@IEEEtitleabstractindextext{#1}} + +% V1.7 provide a way for users to get the \@IEEEtitleabstractindextext if +% not in compsoc or transmag journal mode - this way abstract and keywords +% can still be placed in their conventional position if not in those modes. +\def\IEEEdisplaynontitleabstractindextext{% +% display for all conference formats +\ifCLASSOPTIONconference\@IEEEtitleabstractindextext\relax +\else% non-conferences + % V1.8a display for all technotes + \ifCLASSOPTIONtechnote\@IEEEtitleabstractindextext\relax + % V1.8a add diamond line after abstract and index terms for compsoc technotes + \@IEEEcompsoconly{\noindent\hfill\IEEEcompsocdiamondline\hfill\hbox{}\par}\relax + \else % non-conferences and non-technotes + \ifCLASSOPTIONcompsoc% display if not compsoc and not transmag + \else + \ifCLASSOPTIONtransmag + \else% not compsoc journal nor transmag journal + \@IEEEtitleabstractindextext\relax + \fi + \fi + \fi +\fi} + + +% command to allow alteration of baselinestretch, but only if the current +% baselineskip is unity. Used to tweak the compsoc abstract and keywords line spacing. +\def\@IEEEtweakunitybaselinestretch#1{{\def\baselinestretch{1}\selectfont +\global\@tempskipa\baselineskip}\ifnum\@tempskipa=\baselineskip% +\def\baselinestretch{#1}\selectfont\fi\relax} + + +% abstract and keywords are in \small, except +% for 9pt docs in which they are in \footnotesize +% Because 9pt docs use an 8pt footnotesize, \small +% becomes a rather awkward 8.5pt +\def\@IEEEabskeysecsize{\small} +\ifx\CLASSOPTIONpt\@IEEEptsizenine + \def\@IEEEabskeysecsize{\footnotesize} +\fi + +% compsoc journals use \footnotesize, compsoc conferences use normalsize +\@IEEEcompsoconly{\def\@IEEEabskeysecsize{\footnotesize}} +\@IEEEcompsocconfonly{\def\@IEEEabskeysecsize{\small}} + + +% V1.6 have abstract and keywords strip leading spaces, pars and newlines +% so that spacing is more tightly controlled. +\def\abstract{\normalfont + \if@twocolumn + \@IEEEabskeysecsize\bfseries\textit{\abstractname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\vspace{-1.78ex}\@IEEEabskeysecsize\textbf{\abstractname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize + \fi\@IEEEgobbleleadPARNLSP} +% V1.6 The IEEE wants only 1 pica from end of abstract to introduction heading when in +% conference mode (the heading already has this much above it) +\def\endabstract{\relax\ifCLASSOPTIONconference\vspace{0ex}\else\vspace{1.34ex}\fi\par\if@twocolumn\else\endquotation\fi + \normalfont\normalsize} + +\def\IEEEkeywords{\normalfont + \if@twocolumn + \@IEEEabskeysecsize\bfseries\textit{\IEEEkeywordsname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\@IEEEabskeysecsize\textbf{\IEEEkeywordsname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize + \fi\@IEEEgobbleleadPARNLSP} +\def\endIEEEkeywords{\relax\ifCLASSOPTIONtechnote\vspace{1.34ex}\else\vspace{0.67ex}\fi + \par\if@twocolumn\else\endquotation\fi% + \normalfont\normalsize} + +% V1.7 compsoc keywords index terms +\ifCLASSOPTIONcompsoc + \ifCLASSOPTIONconference% compsoc conference +\def\abstract{\normalfont\@IEEEtweakunitybaselinestretch{1.15}\bfseries + \if@twocolumn + \@IEEEabskeysecsize\noindent\textit{\abstractname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\vspace{-1.78ex}\@IEEEabskeysecsize\textbf{\abstractname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize% + \fi\@IEEEgobbleleadPARNLSP} +\def\IEEEkeywords{\normalfont\@IEEEtweakunitybaselinestretch{1.15}\bfseries + \if@twocolumn + \@IEEEabskeysecsize\vskip 0.5\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip\noindent + \textit{\IEEEkeywordsname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\@IEEEabskeysecsize\textbf{\IEEEkeywordsname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize% + \fi\@IEEEgobbleleadPARNLSP} + \else% compsoc not conference +\def\abstract{\normalfont\@IEEEtweakunitybaselinestretch{1.15}\sffamily + \if@twocolumn + \@IEEEabskeysecsize\noindent\textbf{\abstractname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\vspace{-1.78ex}\@IEEEabskeysecsize\textbf{\abstractname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize% + \fi\@IEEEgobbleleadPARNLSP} +\def\IEEEkeywords{\normalfont\@IEEEtweakunitybaselinestretch{1.15}\sffamily + \if@twocolumn + \@IEEEabskeysecsize\vskip 0.5\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip\noindent + \textbf{\IEEEkeywordsname}---\relax + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\@IEEEabskeysecsize\textbf{\IEEEkeywordsname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize% + \fi\@IEEEgobbleleadPARNLSP} + \fi +\fi + +% V1.8 transmag keywords index terms +% no abstract name, use indentation +\ifCLASSOPTIONtransmag +\def\abstract{\normalfont\parindent 1em\relax + \if@twocolumn + \@IEEEabskeysecsize\bfseries\indent + \else + \bgroup\par\addvspace{0.5\baselineskip}\centering\vspace{-1.78ex}\@IEEEabskeysecsize + \textbf{\abstractname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize + \fi\@IEEEgobbleleadPARNLSP} + +\def\IEEEkeywords{\normalfont\parindent 1em\relax + \if@twocolumn + \@IEEEabskeysecsize\vspace{1\baselineskip}\bfseries\indent\textit{\IEEEkeywordsname}---\relax + \else + \bgroup\par\vspace{1\baselineskip}\centering\@IEEEabskeysecsize + \textbf{\IEEEkeywordsname}\par\addvspace{0.5\baselineskip}\egroup\quotation\@IEEEabskeysecsize + \fi\@IEEEgobbleleadPARNLSP} +\fi + + + +% gobbles all leading \, \\ and \par, upon finding first token that +% is not a \ , \\ or a \par, it ceases and returns that token +% +% used to strip leading \, \\ and \par from the input +% so that such things in the beginning of an environment will not +% affect the formatting of the text +\long\def\@IEEEgobbleleadPARNLSP#1{\let\@IEEEswallowthistoken=0% +\let\@IEEEgobbleleadPARNLSPtoken#1% +\let\@IEEEgobbleleadPARtoken=\par% +\let\@IEEEgobbleleadNLtoken=\\% +\let\@IEEEgobbleleadSPtoken=\ % +\def\@IEEEgobbleleadSPMACRO{\ }% +\ifx\@IEEEgobbleleadPARNLSPtoken\@IEEEgobbleleadPARtoken% +\let\@IEEEswallowthistoken=1% +\fi% +\ifx\@IEEEgobbleleadPARNLSPtoken\@IEEEgobbleleadNLtoken% +\let\@IEEEswallowthistoken=1% +\fi% +\ifx\@IEEEgobbleleadPARNLSPtoken\@IEEEgobbleleadSPtoken% +\let\@IEEEswallowthistoken=1% +\fi% +% a control space will come in as a macro +% when it is the last one on a line +\ifx\@IEEEgobbleleadPARNLSPtoken\@IEEEgobbleleadSPMACRO% +\let\@IEEEswallowthistoken=1% +\fi% +% if we have to swallow this token, do so and taste the next one +% else spit it out and stop gobbling +\ifx\@IEEEswallowthistoken 1\let\@IEEEnextgobbleleadPARNLSP=\@IEEEgobbleleadPARNLSP\else% +\let\@IEEEnextgobbleleadPARNLSP=#1\fi% +\@IEEEnextgobbleleadPARNLSP}% + + + + +% TITLING OF SECTIONS +\def\@IEEEsectpunct{:\ \,} % Punctuation after run-in section heading (headings which are + % part of the paragraphs), need little bit more than a single space + % spacing from section number to title +% compsoc conferences use regular period/space punctuation +\ifCLASSOPTIONcompsoc +\ifCLASSOPTIONconference +\def\@IEEEsectpunct{.\ } +\fi\fi + + +\def\@seccntformat#1{\csname the#1dis\endcsname\hskip 0.5em\relax} + +\ifCLASSOPTIONcompsoc +% compsoc journals need extra spacing +\ifCLASSOPTIONconference\else +\def\@seccntformat#1{\csname the#1dis\endcsname\hskip 1em\relax} +\fi\fi + +%v1.7 put {} after #6 to allow for some types of user font control +%and use \@@par rather than \par +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + % load section label and spacer into \@svsec + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi% + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@% tempskipa determines whether is treated as a high + \begingroup #6{\relax% or low level heading + \noindent % subsections are NOT indented + % print top level headings. \@svsec is label, #8 is heading title + % The IEEE does not block indent the section title text, it flows like normal + {\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\@@par}}% + \endgroup + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\relax\else + \protect\numberline{\csname the#1\endcsname}\fi#7}% + \else % printout low level headings + % svsechd seems to swallow the trailing space, protect it with \mbox{} + % got rid of sectionmark stuff + \def\@svsechd{#6{\hskip #3\relax\@svsec #8\@IEEEsectpunct\mbox{}}% + \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\relax\else + \protect\numberline{\csname the#1\endcsname}\fi#7}}% + \fi%skip down + \@xsect{#5}} + + +% section* handler +%v1.7 put {} after #4 to allow for some types of user font control +%and use \@@par rather than \par +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + %\begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup + % The IEEE does not block indent the section title text, it flows like normal + \begingroup \noindent #4{\relax{\hskip #1}{\interlinepenalty \@M #5\@@par}}\endgroup + % svsechd swallows the trailing space, protect it with \mbox{} + \else \def\@svsechd{#4{\hskip #1\relax #5\@IEEEsectpunct\mbox{}}}\fi + \@xsect{#3}} + + +%% SECTION heading spacing and font +%% +% arguments are: #1 - sectiontype name +% (for \@sect) #2 - section level +% #3 - section heading indent +% #4 - top separation (absolute value used, neg indicates not to indent main text) +% If negative, make stretch parts negative too! +% #5 - (absolute value used) positive: bottom separation after heading, +% negative: amount to indent main text after heading +% Both #4 and #5 negative means to indent main text and use negative top separation +% #6 - font control +% You've got to have \normalfont\normalsize in the font specs below to prevent +% trouble when you do something like: +% \section{Note}{\ttfamily TT-TEXT} is known to ... +% The IEEE sometimes REALLY stretches the area before a section +% heading by up to about 0.5in. However, it may not be a good +% idea to let LaTeX have quite this much rubber. +\ifCLASSOPTIONconference% +% The IEEE wants section heading spacing to decrease for conference mode +\def\section{\@startsection{section}{1}{\z@}{1.5ex plus 1.5ex minus 0.5ex}% +{0.7ex plus 1ex minus 0ex}{\normalfont\normalsize\centering\scshape}}% +\def\subsection{\@startsection{subsection}{2}{\z@}{1.5ex plus 1.5ex minus 0.5ex}% +{0.7ex plus .5ex minus 0ex}{\normalfont\normalsize\itshape}}% +\else % for journals +\def\section{\@startsection{section}{1}{\z@}{3.0ex plus 1.5ex minus 1.5ex}% V1.6 3.0ex from 3.5ex +{0.7ex plus 1ex minus 0ex}{\normalfont\normalsize\centering\scshape}}% +\def\subsection{\@startsection{subsection}{2}{\z@}{3.5ex plus 1.5ex minus 1.5ex}% +{0.7ex plus .5ex minus 0ex}{\normalfont\normalsize\itshape}}% +\fi + +% for both journals and conferences +% decided to put in a little rubber above the section, might help somebody +\def\subsubsection{\@startsection{subsubsection}{3}{\parindent}{0ex plus 0.1ex minus 0.1ex}% +{0ex}{\normalfont\normalsize\itshape}}% +\def\paragraph{\@startsection{paragraph}{4}{2\parindent}{0ex plus 0.1ex minus 0.1ex}% +{0ex}{\normalfont\normalsize\itshape}}% + + +% compsoc +\ifCLASSOPTIONcompsoc +\ifCLASSOPTIONconference +% compsoc conference +\def\section{\@startsection{section}{1}{\z@}{1\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}% +{1\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}{\normalfont\large\bfseries}}% +\def\subsection{\@startsection{subsection}{2}{\z@}{1\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}% +{1\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}{\normalfont\sublargesize\bfseries}}% +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{1\baselineskip plus 0.25\baselineskip minus 0.25\baselineskip}% +{0ex}{\normalfont\normalsize\bfseries}}% +\def\paragraph{\@startsection{paragraph}{4}{2\parindent}{0ex plus 0.1ex minus 0.1ex}% +{0ex}{\normalfont\normalsize}}% +\else% compsoc journals +% use negative top separation as compsoc journals do not indent paragraphs after section titles +\def\section{\@startsection{section}{1}{\z@}{-3.5ex plus -2ex minus -1.5ex}% +{0.7ex plus 1ex minus 0ex}{\normalfont\sublargesize\sffamily\bfseries\scshape}}% +% Note that subsection and smaller may not be correct for the Computer Society, +% I have to look up an example. +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.5ex plus -1.5ex minus -1.5ex}% +{0.7ex plus .5ex minus 0ex}{\normalfont\normalsize\sffamily\bfseries}}% +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-2.5ex plus -1ex minus -1ex}% +{0.5ex plus 0.5ex minus 0ex}{\normalfont\normalsize\sffamily\itshape}}% +\def\paragraph{\@startsection{paragraph}{4}{2\parindent}{-0ex plus -0.1ex minus -0.1ex}% +{0ex}{\normalfont\normalsize}}% +\fi\fi + +% transmag +\ifCLASSOPTIONtransmag +\def\subsection{\@startsection{subsection}{2}{0.75\parindent}{3.5ex plus 1.5ex minus 1.5ex}% +{0.7ex plus .5ex minus 0ex}{\normalfont\normalsize\itshape}}% +\def\subsubsection{\@startsection{subsubsection}{3}{1.25\parindent}{0.1ex plus 0.1ex minus 0.1ex}% +{0.1ex}{\normalfont\normalsize\itshape}}% +\fi + + +% V1.8a provide for a raised line Introduction section for use with Computer +% Society papers. We have to remove any spacing glue after the section +% heading and then remove the blank line for the new paragraph after it. +% LaTeX's section handler alters \everypar and we need to propogate those +% changes outside of the \parbox lest there be spacing problems at the top +% of the next section. +\def\IEEEraisesectionheading#1{\noindent\raisebox{1.5\baselineskip}[0pt][0pt]{\parbox[b]{\columnwidth}{#1\unskip\global\everypar=\everypar}}\vspace{-1\baselineskip}\vspace{-\parskip}\par} + + + +%% ENVIRONMENTS +% "box" symbols at end of proofs +\def\IEEEQEDclosed{\mbox{\rule[0pt]{1.3ex}{1.3ex}}} % for a filled box +% V1.6 some journals use an open box instead that will just fit around a closed one +\def\IEEEQEDopen{{\setlength{\fboxsep}{0pt}\setlength{\fboxrule}{0.2pt}\fbox{\rule[0pt]{0pt}{1.3ex}\rule[0pt]{1.3ex}{0pt}}}} +\ifCLASSOPTIONcompsoc +\def\IEEEQED{\IEEEQEDopen} % default to open for compsoc +\else +\def\IEEEQED{\IEEEQEDclosed} % otherwise default to closed +\fi + +%V1.8 flag to indicate if QED symbol is to be shown +\newif\if@IEEEQEDshow \@IEEEQEDshowtrue +\def\IEEEproofindentspace{2\parindent}% V1.8 allow user to change indentation amount if desired +% v1.7 name change to avoid namespace collision with amsthm. Also add support +% for an optional argument. +\def\IEEEproof{\@ifnextchar[{\@IEEEproof}{\@IEEEproof[\IEEEproofname]}} +\def\@IEEEproof[#1]{\@IEEEQEDshowtrue\par\noindent\hspace{\IEEEproofindentspace}{\itshape #1: }} +\def\endIEEEproof{\if@IEEEQEDshow\hspace*{\fill}\nobreakspace\IEEEQED\fi\par} +% qedhere for equation environments, similar to AMS \qedhere +\def\IEEEQEDhereeqn{\global\@IEEEQEDshowfalse\eqno\let\eqno\relax\let\leqno\relax + \let\veqno\relax\hbox{\IEEEQED}} +% IEEE style qedhere for IEEEeqnarray and other environments +\def\IEEEQEDhere{\global\@IEEEQEDshowfalse\IEEEQED} +% command to disable QED at end of IEEEproof +\def\IEEEQEDoff{\global\@IEEEQEDshowfalse} + + +%\itemindent is set to \z@ by list, so define new temporary variable +\newdimen\@IEEEtmpitemindent + +\ifCLASSOPTIONcompsoc +% V1.8a compsoc uses bold theorem titles, a period instead of a colon, vertical spacing, and hanging indentation +% V1.8 allow long theorem names to break across lines. +% Thanks to Miquel Payaro for reporting this. +\def\@begintheorem#1#2{\@IEEEtmpitemindent\itemindent\relax + \topsep 0.2\@IEEEnormalsizeunitybaselineskip plus 0.26\@IEEEnormalsizeunitybaselineskip minus 0.05\@IEEEnormalsizeunitybaselineskip + \rmfamily\trivlist\hangindent\parindent% + \item[]\textit{\bfseries\noindent #1\ #2.} \itemindent\@IEEEtmpitemindent\relax} +\def\@opargbegintheorem#1#2#3{\@IEEEtmpitemindent\itemindent\relax +\topsep 0.2\@IEEEnormalsizeunitybaselineskip plus 0.26\@IEEEnormalsizeunitybaselineskip minus 0.05\@IEEEnormalsizeunitybaselineskip +\rmfamily\trivlist\hangindent\parindent% +% V1.6 The IEEE is back to using () around theorem names which are also in italics +% Thanks to Christian Peel for reporting this. + \item[]\textit{\bfseries\noindent #1\ #2\ (#3).} \itemindent\@IEEEtmpitemindent\relax} +% V1.7 remove bogus \unskip that caused equations in theorems to collide with +% lines below. +\def\@endtheorem{\endtrivlist\vskip 0.25\@IEEEnormalsizeunitybaselineskip plus 0.26\@IEEEnormalsizeunitybaselineskip minus 0.05\@IEEEnormalsizeunitybaselineskip} +\else +% +% noncompsoc +% +% V1.8 allow long theorem names to break across lines. +% Thanks to Miquel Payaro for reporting this. +\def\@begintheorem#1#2{\@IEEEtmpitemindent\itemindent\relax\topsep 0pt\rmfamily\trivlist% + \item[]\textit{\indent #1\ #2:} \itemindent\@IEEEtmpitemindent\relax} +\def\@opargbegintheorem#1#2#3{\@IEEEtmpitemindent\itemindent\relax\topsep 0pt\rmfamily \trivlist% +% V1.6 The IEEE is back to using () around theorem names which are also in italics +% Thanks to Christian Peel for reporting this. + \item[]\textit{\indent #1\ #2\ (#3):} \itemindent\@IEEEtmpitemindent\relax} +% V1.7 remove bogus \unskip that caused equations in theorems to collide with +% lines below. +\def\@endtheorem{\endtrivlist} +\fi + + + +% V1.6 +% display command for the section the theorem is in - so that \thesection +% is not used as this will be in Roman numerals when we want arabic. +% LaTeX2e uses \def\@thmcounter#1{\noexpand\arabic{#1}} for the theorem number +% (second part) display and \def\@thmcountersep{.} as a separator. +% V1.7 intercept calls to the section counter and reroute to \@IEEEthmcounterinsection +% to allow \appendix(ices} to override as needed. +% +% special handler for sections, allows appendix(ices) to override +\gdef\@IEEEthmcounterinsection#1{\arabic{#1}} +% string macro +\edef\@IEEEstringsection{section} + +% redefine the #1#2[#3] form of newtheorem to use a hook to \@IEEEthmcounterinsection +% if section in_counter is used +\def\@xnthm#1#2[#3]{% + \expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@newctr{#1}[#3]% + \edef\@IEEEstringtmp{#3} + \ifx\@IEEEstringtmp\@IEEEstringsection + \expandafter\xdef\csname the#1\endcsname{% + \noexpand\@IEEEthmcounterinsection{#3}\@thmcountersep + \@thmcounter{#1}}% + \else + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@thmcountersep + \@thmcounter{#1}}% + \fi + \global\@namedef{#1}{\@thm{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}}} + + + +%% SET UP THE DEFAULT PAGESTYLE +\pagestyle{headings} +\pagenumbering{arabic} + +% normally the page counter starts at 1 +\setcounter{page}{1} +% however, for peerreview the cover sheet is page 0 or page -1 +% (for duplex printing) +\ifCLASSOPTIONpeerreview + \if@twoside + \setcounter{page}{-1} + \else + \setcounter{page}{0} + \fi +\fi + +% standard book class behavior - let bottom line float up and down as +% needed when single sided +\ifCLASSOPTIONtwoside\else\raggedbottom\fi +% if two column - turn on twocolumn, allow word spacings to stretch more and +% enforce a rigid position for the last lines +\ifCLASSOPTIONtwocolumn +% the peer review option delays invoking twocolumn + \ifCLASSOPTIONpeerreview\else + \twocolumn + \fi +\sloppy +\flushbottom +\fi + + + + +% \APPENDIX and \APPENDICES definitions + +% This is the \@ifmtarg command from the LaTeX ifmtarg package +% by Peter Wilson (CUA) and Donald Arseneau +% \@ifmtarg is used to determine if an argument to a command +% is present or not. +% For instance: +% \@ifmtarg{#1}{\typeout{empty}}{\typeout{has something}} +% \@ifmtarg is used with our redefined \section command if +% \appendices is invoked. +% The command \section will behave slightly differently depending +% on whether the user specifies a title: +% \section{My appendix title} +% or not: +% \section{} +% This way, we can eliminate the blank lines where the title +% would be, and the unneeded : after Appendix in the table of +% contents +\begingroup +\catcode`\Q=3 +\long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil} +\long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4} +\endgroup +% end of \@ifmtarg defs + + +% V1.7 +% command that allows the one time saving of the original definition +% of section to \@IEEEappendixsavesection for \appendix or \appendices +% we don't save \section here as it may be redefined later by other +% packages (hyperref.sty, etc.) +\def\@IEEEsaveoriginalsectiononce{\let\@IEEEappendixsavesection\section +\let\@IEEEsaveoriginalsectiononce\relax} + +% neat trick to grab and process the argument from \section{argument} +% we process differently if the user invoked \section{} with no +% argument (title) +% note we reroute the call to the old \section* +\def\@IEEEprocessthesectionargument#1{% +\@ifmtarg{#1}{% +\@IEEEappendixsavesection*{\appendixname\nobreakspace\thesectiondis}% +\addcontentsline{toc}{section}{\appendixname\nobreakspace\thesection}}{% +\@IEEEappendixsavesection*{\appendixname\nobreakspace\thesectiondis\\* #1}% +\addcontentsline{toc}{section}{\appendixname\nobreakspace\thesection: #1}}} + +% we use this if the user calls \section{} after +% \appendix-- which has no meaning. So, we ignore the +% command and its argument. Then, warn the user. +\def\@IEEEdestroythesectionargument#1{\typeout{** WARNING: Ignoring useless +\protect\section\space in Appendix (line \the\inputlineno).}} + + +% remember \thesection forms will be displayed in \ref calls +% and in the Table of Contents. +% The \sectiondis form is used in the actual heading itself + +% appendix command for one single appendix +% normally has no heading. However, if you want a +% heading, you can do so via the optional argument: +% \appendix[Optional Heading] +\def\appendix{\relax} +\renewcommand{\appendix}[1][]{\@IEEEsaveoriginalsectiononce\par + % v1.6 keep hyperref's identifiers unique + \gdef\theHsection{Appendix.A}% + % v1.6 adjust hyperref's string name for the section + \xdef\Hy@chapapp{appendix}% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{subsubsection}{0}% + \setcounter{paragraph}{0}% + \gdef\thesection{A}% + \gdef\thesectiondis{}% + \gdef\thesubsection{\Alph{subsection}}% + \gdef\@IEEEthmcounterinsection##1{A} + \refstepcounter{section}% update the \ref counter + \@ifmtarg{#1}{\@IEEEappendixsavesection*{\appendixname}% + \addcontentsline{toc}{section}{\appendixname}}{% + \@IEEEappendixsavesection*{\appendixname\nobreakspace\\* #1}% + \addcontentsline{toc}{section}{\appendixname: #1}}% + % redefine \section command for appendix + % leave \section* as is + \def\section{\@ifstar{\@IEEEappendixsavesection*}{% + \@IEEEdestroythesectionargument}}% throw out the argument + % of the normal form +} + + + +% appendices command for multiple appendices +% user then calls \section with an argument (possibly empty) to +% declare the individual appendices +\def\appendices{\@IEEEsaveoriginalsectiononce\par + % v1.6 keep hyperref's identifiers unique + \gdef\theHsection{Appendix.\Alph{section}}% + % v1.6 adjust hyperref's string name for the section + \xdef\Hy@chapapp{appendix}% + \setcounter{section}{-1}% we want \refstepcounter to use section 0 + \setcounter{subsection}{0}% + \setcounter{subsubsection}{0}% + \setcounter{paragraph}{0}% + \ifCLASSOPTIONromanappendices% + \gdef\thesection{\Roman{section}}% + \gdef\thesectiondis{\Roman{section}}% + \@IEEEcompsocconfonly{\gdef\thesectiondis{\Roman{section}.}}% + \gdef\@IEEEthmcounterinsection##1{A\arabic{##1}} + \else% + \gdef\thesection{\Alph{section}}% + \gdef\thesectiondis{\Alph{section}}% + \@IEEEcompsocconfonly{\gdef\thesectiondis{\Alph{section}.}}% + \gdef\@IEEEthmcounterinsection##1{\Alph{##1}} + \fi% + \refstepcounter{section}% update the \ref counter + \setcounter{section}{0}% NEXT \section will be the FIRST appendix + % redefine \section command for appendices + % leave \section* as is + \def\section{\@ifstar{\@IEEEappendixsavesection*}{% process the *-form + \refstepcounter{section}% or is a new section so, + \@IEEEprocessthesectionargument}}% process the argument + % of the normal form +} + + + +% V1.7 compoc uses nonbold drop cap and small caps word style +\ifCLASSOPTIONcompsoc + \def\IEEEPARstartFONTSTYLE{\mdseries} + \def\IEEEPARstartWORDFONTSTYLE{\scshape} + \def\IEEEPARstartWORDCAPSTYLE{\relax} +\fi +% +% +% \IEEEPARstart +% Definition for the big two line drop cap letter at the beginning of the +% first paragraph of journal papers. The first argument is the first letter +% of the first word, the second argument is the remaining letters of the +% first word which will be rendered in upper case. +% In V1.6 this has been completely rewritten to: +% +% 1. no longer have problems when the user begins an environment +% within the paragraph that uses \IEEEPARstart. +% 2. auto-detect and use the current font family +% 3. revise handling of the space at the end of the first word so that +% interword glue will now work as normal. +% 4. produce correctly aligned edges for the (two) indented lines. +% +% We generalize things via control macros - playing with these is fun too. +% +% V1.7 added more control macros to make it easy for IEEEtrantools.sty users +% to change the font style. +% +% the number of lines that are indented to clear it +% may need to increase if using decenders +\providecommand{\IEEEPARstartDROPLINES}{2} +% minimum number of lines left on a page to allow a \@IEEEPARstart +% Does not take into consideration rubber shrink, so it tends to +% be overly cautious +\providecommand{\IEEEPARstartMINPAGELINES}{2} +% V1.7 the height of the drop cap is adjusted to match the height of this text +% in the current font (when \IEEEPARstart is called). +\providecommand{\IEEEPARstartHEIGHTTEXT}{T} +% the depth the letter is lowered below the baseline +% the height (and size) of the letter is determined by the sum +% of this value and the height of the \IEEEPARstartHEIGHTTEXT in the current +% font. It is a good idea to set this value in terms of the baselineskip +% so that it can respond to changes therein. +\providecommand{\IEEEPARstartDROPDEPTH}{1.1\baselineskip} +% V1.7 the font the drop cap will be rendered in, +% can take zero or one argument. +\providecommand{\IEEEPARstartFONTSTYLE}{\bfseries} +% V1.7 any additional, non-font related commands needed to modify +% the drop cap letter, can take zero or one argument. +\providecommand{\IEEEPARstartCAPSTYLE}{\MakeUppercase} +% V1.7 the font that will be used to render the rest of the word, +% can take zero or one argument. +\providecommand{\IEEEPARstartWORDFONTSTYLE}{\relax} +% V1.7 any additional, non-font related commands needed to modify +% the rest of the word, can take zero or one argument. +\providecommand{\IEEEPARstartWORDCAPSTYLE}{\MakeUppercase} +% This is the horizontal separation distance from the drop letter to the main text. +% Lengths that depend on the font (e.g., ex, em, etc.) will be referenced +% to the font that is active when \IEEEPARstart is called. +\providecommand{\IEEEPARstartSEP}{0.15em} +% V1.7 horizontal offset applied to the left of the drop cap. +\providecommand{\IEEEPARstartHOFFSET}{0em} +% V1.7 Italic correction command applied at the end of the drop cap. +\providecommand{\IEEEPARstartITLCORRECT}{\/} + +% width of the letter output, set globally. Can be used in \IEEEPARstartSEP +% or \IEEEPARstartHOFFSET, but not the height lengths. +\newdimen\IEEEPARstartletwidth +\IEEEPARstartletwidth 0pt\relax + +% definition of \IEEEPARstart +% THIS IS A CONTROLLED SPACING AREA, DO NOT ALLOW SPACES WITHIN THESE LINES +% +% The token \@IEEEPARstartfont will be globally defined after the first use +% of \IEEEPARstart and will be a font command which creates the big letter +% The first argument is the first letter of the first word and the second +% argument is the rest of the first word(s). +\def\IEEEPARstart#1#2{\par{% +% if this page does not have enough space, break it and lets start +% on a new one +\@IEEEtranneedspace{\IEEEPARstartMINPAGELINES\baselineskip}{\relax}% +% V1.7 move this up here in case user uses \textbf for \IEEEPARstartFONTSTYLE +% which uses command \leavevmode which causes an unwanted \indent to be issued +\noindent +% calculate the desired height of the big letter +% it extends from the top of \IEEEPARstartHEIGHTTEXT in the current font +% down to \IEEEPARstartDROPDEPTH below the current baseline +\settoheight{\@IEEEtrantmpdimenA}{\IEEEPARstartHEIGHTTEXT}% +\addtolength{\@IEEEtrantmpdimenA}{\IEEEPARstartDROPDEPTH}% +% extract the name of the current font in bold +% and place it in \@IEEEPARstartFONTNAME +\def\@IEEEPARstartGETFIRSTWORD##1 ##2\relax{##1}% +{\IEEEPARstartFONTSTYLE{\selectfont\edef\@IEEEPARstartFONTNAMESPACE{\fontname\font\space}% +\xdef\@IEEEPARstartFONTNAME{\expandafter\@IEEEPARstartGETFIRSTWORD\@IEEEPARstartFONTNAMESPACE\relax}}}% +% define a font based on this name with a point size equal to the desired +% height of the drop letter +\font\@IEEEPARstartsubfont\@IEEEPARstartFONTNAME\space at \@IEEEtrantmpdimenA\relax% +% save this value as a counter (integer) value (sp points) +\@IEEEtrantmpcountA=\@IEEEtrantmpdimenA% +% now get the height of the actual letter produced by this font size +\settoheight{\@IEEEtrantmpdimenB}{\@IEEEPARstartsubfont\IEEEPARstartCAPSTYLE{#1}}% +% If something bogus happens like the first argument is empty or the +% current font is strange, do not allow a zero height. +\ifdim\@IEEEtrantmpdimenB=0pt\relax% +\typeout{** WARNING: IEEEPARstart drop letter has zero height! (line \the\inputlineno)}% +\typeout{ Forcing the drop letter font size to 10pt.}% +\@IEEEtrantmpdimenB=10pt% +\fi% +% and store it as a counter +\@IEEEtrantmpcountB=\@IEEEtrantmpdimenB% +% Since a font size doesn't exactly correspond to the height of the capital +% letters in that font, the actual height of the letter, \@IEEEtrantmpcountB, +% will be less than that desired, \@IEEEtrantmpcountA +% we need to raise the font size, \@IEEEtrantmpdimenA +% by \@IEEEtrantmpcountA / \@IEEEtrantmpcountB +% But, TeX doesn't have floating point division, so we have to use integer +% division. Hence the use of the counters. +% We need to reduce the denominator so that the loss of the remainder will +% have minimal affect on the accuracy of the result +\divide\@IEEEtrantmpcountB by 200% +\divide\@IEEEtrantmpcountA by \@IEEEtrantmpcountB% +% Then reequalize things when we use TeX's ability to multiply by +% floating point values +\@IEEEtrantmpdimenB=0.005\@IEEEtrantmpdimenA% +\multiply\@IEEEtrantmpdimenB by \@IEEEtrantmpcountA% +% \@IEEEPARstartfont is globaly set to the calculated font of the big letter +% We need to carry this out of the local calculation area to to create the +% big letter. +\global\font\@IEEEPARstartfont\@IEEEPARstartFONTNAME\space at \@IEEEtrantmpdimenB% +% Now set \@IEEEtrantmpdimenA to the width of the big letter +% We need to carry this out of the local calculation area to set the +% hanging indent +\settowidth{\global\@IEEEtrantmpdimenA}{\@IEEEPARstartfont +\IEEEPARstartCAPSTYLE{#1\IEEEPARstartITLCORRECT}}}% +% end of the isolated calculation environment +\global\IEEEPARstartletwidth\@IEEEtrantmpdimenA\relax% +% add in the extra clearance we want +\advance\@IEEEtrantmpdimenA by \IEEEPARstartSEP\relax% +% add in the optional offset +\advance\@IEEEtrantmpdimenA by \IEEEPARstartHOFFSET\relax% +% V1.7 don't allow negative offsets to produce negative hanging indents +\@IEEEtrantmpdimenB\@IEEEtrantmpdimenA +\ifnum\@IEEEtrantmpdimenB < 0 \@IEEEtrantmpdimenB 0pt\fi +% \@IEEEtrantmpdimenA has the width of the big letter plus the +% separation space and \@IEEEPARstartfont is the font we need to use +% Now, we make the letter and issue the hanging indent command +% The letter is placed in a box of zero width and height so that other +% text won't be displaced by it. +\hangindent\@IEEEtrantmpdimenB\hangafter=-\IEEEPARstartDROPLINES% +\makebox[0pt][l]{\hspace{-\@IEEEtrantmpdimenA}% +\raisebox{-\IEEEPARstartDROPDEPTH}[0pt][0pt]{\hspace{\IEEEPARstartHOFFSET}% +\@IEEEPARstartfont\IEEEPARstartCAPSTYLE{#1\IEEEPARstartITLCORRECT}% +\hspace{\IEEEPARstartSEP}}}% +{\IEEEPARstartWORDFONTSTYLE{\IEEEPARstartWORDCAPSTYLE{\selectfont#2}}}} + + + + +% determines if the space remaining on a given page is equal to or greater +% than the specified space of argument one +% if not, execute argument two (only if the remaining space is greater than zero) +% and issue a \newpage +% +% example: \@IEEEtranneedspace{2in}{\vfill} +% +% Does not take into consideration rubber shrinkage, so it tends to +% be overly cautious +% Based on an example posted by Donald Arseneau +% Note this macro uses \@IEEEtrantmpdimenB internally for calculations, +% so DO NOT PASS \@IEEEtrantmpdimenB to this routine +% if you need a dimen register, import with \@IEEEtrantmpdimenA instead +\def\@IEEEtranneedspace#1#2{\penalty-100\begingroup%shield temp variable +\@IEEEtrantmpdimenB\pagegoal\advance\@IEEEtrantmpdimenB-\pagetotal% space left +\ifdim #1>\@IEEEtrantmpdimenB\relax% not enough space left +\ifdim\@IEEEtrantmpdimenB>\z@\relax #2\fi% +\newpage% +\fi\endgroup} + + + +% IEEEbiography ENVIRONMENT +% Allows user to enter biography leaving place for picture (adapts to font size) +% As of V1.5, a new optional argument allows you to have a real graphic! +% V1.5 and later also fixes the "colliding biographies" which could happen when a +% biography's text was shorter than the space for the photo. +% MDS 7/2001 +% V1.6 prevent multiple biographies from making multiple TOC entries +\newif\if@IEEEbiographyTOCentrynotmade +\global\@IEEEbiographyTOCentrynotmadetrue + +% biography counter so hyperref can jump directly to the biographies +% and not just the previous section +\newcounter{IEEEbiography} +\setcounter{IEEEbiography}{0} + +% photo area size +\def\@IEEEBIOphotowidth{1.0in} % width of the biography photo area +\def\@IEEEBIOphotodepth{1.25in} % depth (height) of the biography photo area +% area cleared for photo +\def\@IEEEBIOhangwidth{1.14in} % width cleared for the biography photo area +\def\@IEEEBIOhangdepth{1.25in} % depth cleared for the biography photo area + % actual depth will be a multiple of + % \baselineskip, rounded up +\def\@IEEEBIOskipN{4\baselineskip}% nominal value of the vskip above the biography + +\newenvironment{IEEEbiography}[2][]{\normalfont\@IEEEcompsoconly{\sffamily}\footnotesize% +\unitlength 1in\parskip=0pt\par\parindent 1em\interlinepenalty500% +% we need enough space to support the hanging indent +% the nominal value of the spacer +% and one extra line for good measure +\@IEEEtrantmpdimenA=\@IEEEBIOhangdepth% +\advance\@IEEEtrantmpdimenA by \@IEEEBIOskipN% +\advance\@IEEEtrantmpdimenA by 1\baselineskip% +% if this page does not have enough space, break it and lets start +% with a new one +\@IEEEtranneedspace{\@IEEEtrantmpdimenA}{\relax}% +% nominal spacer can strech, not shrink use 1fil so user can out stretch with \vfill +\vskip \@IEEEBIOskipN plus 1fil minus 0\baselineskip% +% the default box for where the photo goes +\def\@IEEEtempbiographybox{{\setlength{\fboxsep}{0pt}\framebox{% +\begin{minipage}[b][\@IEEEBIOphotodepth][c]{\@IEEEBIOphotowidth}\centering PLACE\\ PHOTO\\ HERE \end{minipage}}}}% +% +% detect if the optional argument was supplied, this requires the +% \@ifmtarg command as defined in the appendix section above +% and if so, override the default box with what they want +\@ifmtarg{#1}{\relax}{\def\@IEEEtempbiographybox{\mbox{\begin{minipage}[b][\@IEEEBIOphotodepth][c]{\@IEEEBIOphotowidth}% +\centering% +#1% +\end{minipage}}}}% end if optional argument supplied +% Make an entry into the table of contents only if we have not done so before +\if@IEEEbiographyTOCentrynotmade% +% link labels to the biography counter so hyperref will jump +% to the biography, not the previous section +\setcounter{IEEEbiography}{-1}% +\refstepcounter{IEEEbiography}% +\addcontentsline{toc}{section}{Biographies}% +\global\@IEEEbiographyTOCentrynotmadefalse% +\fi% +% one more biography +\refstepcounter{IEEEbiography}% +% Make an entry for this name into the table of contents +\addcontentsline{toc}{subsection}{#2}% +% V1.6 properly handle if a new paragraph should occur while the +% hanging indent is still active. Do this by redefining \par so +% that it will not start a new paragraph. (But it will appear to the +% user as if it did.) Also, strip any leading pars, newlines, or spaces. +\let\@IEEEBIOORGparCMD=\par% save the original \par command +\edef\par{\hfil\break\indent}% the new \par will not be a "real" \par +\settoheight{\@IEEEtrantmpdimenA}{\@IEEEtempbiographybox}% get height of biography box +\@IEEEtrantmpdimenB=\@IEEEBIOhangdepth% +\@IEEEtrantmpcountA=\@IEEEtrantmpdimenB% countA has the hang depth +\divide\@IEEEtrantmpcountA by \baselineskip% calculates lines needed to produce the hang depth +\advance\@IEEEtrantmpcountA by 1% ensure we overestimate +% set the hanging indent +\hangindent\@IEEEBIOhangwidth% +\hangafter-\@IEEEtrantmpcountA% +% reference the top of the photo area to the top of a capital T +\settoheight{\@IEEEtrantmpdimenB}{\mbox{T}}% +% set the photo box, give it zero width and height so as not to disturb anything +\noindent\makebox[0pt][l]{\hspace{-\@IEEEBIOhangwidth}\raisebox{\@IEEEtrantmpdimenB}[0pt][0pt]{% +\raisebox{-\@IEEEBIOphotodepth}[0pt][0pt]{\@IEEEtempbiographybox}}}% +% now place the author name and begin the bio text +\noindent\textbf{#2\ }\@IEEEgobbleleadPARNLSP}{\relax\let\par=\@IEEEBIOORGparCMD\par% +% 7/2001 V1.5 detect when the biography text is shorter than the photo area +% and pad the unused area - preventing a collision from the next biography entry +% MDS +\ifnum \prevgraf <\@IEEEtrantmpcountA\relax% detect when the biography text is shorter than the photo + \advance\@IEEEtrantmpcountA by -\prevgraf% calculate how many lines we need to pad + \advance\@IEEEtrantmpcountA by -1\relax% we compensate for the fact that we indented an extra line + \@IEEEtrantmpdimenA=\baselineskip% calculate the length of the padding + \multiply\@IEEEtrantmpdimenA by \@IEEEtrantmpcountA% + \noindent\rule{0pt}{\@IEEEtrantmpdimenA}% insert an invisible support strut +\fi% +\par\normalfont} + + + +% V1.6 +% added biography without a photo environment +\newenvironment{IEEEbiographynophoto}[1]{% +% Make an entry into the table of contents only if we have not done so before +\if@IEEEbiographyTOCentrynotmade% +% link labels to the biography counter so hyperref will jump +% to the biography, not the previous section +\setcounter{IEEEbiography}{-1}% +\refstepcounter{IEEEbiography}% +\addcontentsline{toc}{section}{Biographies}% +\global\@IEEEbiographyTOCentrynotmadefalse% +\fi% +% one more biography +\refstepcounter{IEEEbiography}% +% Make an entry for this name into the table of contents +\addcontentsline{toc}{subsection}{#1}% +\normalfont\@IEEEcompsoconly{\sffamily}\footnotesize\interlinepenalty500% +\vskip 4\baselineskip plus 1fil minus 0\baselineskip% +\parskip=0pt\par% +\noindent\textbf{#1\ }\@IEEEgobbleleadPARNLSP}{\relax\par\normalfont} + + +% provide the user with some old font commands +% got this from article.cls +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} + + +% SPECIAL PAPER NOTICE COMMANDS +% +% holds the special notice text +\def\@IEEEspecialpapernotice{\relax} + +% for special papers, like invited papers, the user can do: +% \IEEEspecialpapernotice{(Invited Paper)} before \maketitle +\def\IEEEspecialpapernotice#1{\ifCLASSOPTIONconference% +\def\@IEEEspecialpapernotice{{\sublargesize\textit{#1}\vspace*{1em}}}% +\else% +\def\@IEEEspecialpapernotice{{\\*[1.5ex]\sublargesize\textit{#1}}\vspace*{-2ex}}% +\fi} + + + + +% PUBLISHER ID COMMANDS +% to insert a publisher's ID footer +% V1.6 \IEEEpubid has been changed so that the change in page size and style +% occurs in \maketitle. \IEEEpubid must now be issued prior to \maketitle +% use \IEEEpubidadjcol as before - in the second column of the title page +% These changes allow \maketitle to take the reduced page height into +% consideration when dynamically setting the space between the author +% names and the maintext. +% +% the amount the main text is pulled up to make room for the +% publisher's ID footer +% The IEEE uses about 1.3\baselineskip for journals, +% dynamic title spacing will clean up the fraction +\def\@IEEEpubidpullup{1.3\baselineskip} +\ifCLASSOPTIONtechnote +% for technotes it must be an integer of baselineskip as there can be no +% dynamic title spacing for two column mode technotes (the title is in the +% in first column) and we should maintain an integer number of lines in the +% second column +% There are some examples (such as older issues of "Transactions on +% Information Theory") in which the IEEE really pulls the text off the ID for +% technotes - about 0.55in (or 4\baselineskip). We'll use 2\baselineskip +% and call it even. +\def\@IEEEpubidpullup{2\baselineskip} +\fi + +% V1.7 compsoc does not use a pullup +\ifCLASSOPTIONcompsoc +\def\@IEEEpubidpullup{0pt} +\fi + +% holds the ID text +\def\@IEEEpubid{\relax} + +% flag so \maketitle can tell if \IEEEpubid was called +\newif\if@IEEEusingpubid +\global\@IEEEusingpubidfalse +% issue this command in the page to have the ID at the bottom +% V1.6 use before \maketitle +\def\IEEEpubid#1{\def\@IEEEpubid{#1}\global\@IEEEusingpubidtrue} + + +% command which will pull up (shorten) the column it is executed in +% to make room for the publisher ID. Place in the second column of +% the title page when using \IEEEpubid +% Is smart enough not to do anything when in single column text or +% if the user hasn't called \IEEEpubid +% currently needed in for the second column of a page with the +% publisher ID. If not needed in future releases, please provide this +% command and define it as \relax for backward compatibility +% v1.6b do not allow command to operate if the peer review option has been +% selected because \IEEEpubidadjcol will not be on the cover page. +% V1.7 do nothing if compsoc +\def\IEEEpubidadjcol{\ifCLASSOPTIONcompsoc\else\ifCLASSOPTIONpeerreview\else +\if@twocolumn\if@IEEEusingpubid\enlargethispage{-\@IEEEpubidpullup}\fi\fi\fi\fi} + +% Special thanks to Peter Wilson, Daniel Luecking, and the other +% gurus at comp.text.tex, for helping me to understand how best to +% implement the IEEEpubid command in LaTeX. + + + +%% Lockout some commands under various conditions + +% general purpose bit bucket +\newsavebox{\@IEEEtranrubishbin} + +% flags to prevent multiple warning messages +\newif\if@IEEEWARNthanks +\newif\if@IEEEWARNIEEEPARstart +\newif\if@IEEEWARNIEEEbiography +\newif\if@IEEEWARNIEEEbiographynophoto +\newif\if@IEEEWARNIEEEpubid +\newif\if@IEEEWARNIEEEpubidadjcol +\newif\if@IEEEWARNIEEEmembership +\newif\if@IEEEWARNIEEEaftertitletext +\@IEEEWARNthankstrue +\@IEEEWARNIEEEPARstarttrue +\@IEEEWARNIEEEbiographytrue +\@IEEEWARNIEEEbiographynophototrue +\@IEEEWARNIEEEpubidtrue +\@IEEEWARNIEEEpubidadjcoltrue +\@IEEEWARNIEEEmembershiptrue +\@IEEEWARNIEEEaftertitletexttrue + + +%% Lockout some commands when in various modes, but allow them to be restored if needed +%% +% save commands which might be locked out +% so that the user can later restore them if needed +\let\@IEEESAVECMDthanks\thanks +\let\@IEEESAVECMDIEEEPARstart\IEEEPARstart +\let\@IEEESAVECMDIEEEbiography\IEEEbiography +\let\@IEEESAVECMDendIEEEbiography\endIEEEbiography +\let\@IEEESAVECMDIEEEbiographynophoto\IEEEbiographynophoto +\let\@IEEESAVECMDendIEEEbiographynophoto\endIEEEbiographynophoto +\let\@IEEESAVECMDIEEEpubid\IEEEpubid +\let\@IEEESAVECMDIEEEpubidadjcol\IEEEpubidadjcol +\let\@IEEESAVECMDIEEEmembership\IEEEmembership +\let\@IEEESAVECMDIEEEaftertitletext\IEEEaftertitletext + + +% disable \IEEEPARstart when in draft mode +% This may have originally been done because the pre-V1.6 drop letter +% algorithm had problems with a non-unity baselinestretch +% At any rate, it seems too formal to have a drop letter in a draft +% paper. +\ifCLASSOPTIONdraftcls +\def\IEEEPARstart#1#2{#1#2\if@IEEEWARNIEEEPARstart\typeout{** ATTENTION: \noexpand\IEEEPARstart + is disabled in draft mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEPARstartfalse} +\fi +% and for technotes +\ifCLASSOPTIONtechnote +\def\IEEEPARstart#1#2{#1#2\if@IEEEWARNIEEEPARstart\typeout{** WARNING: \noexpand\IEEEPARstart + is locked out for technotes (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEPARstartfalse} +\fi + + +% lockout unneeded commands when in conference mode +\ifCLASSOPTIONconference +% when locked out, \thanks, \IEEEbiography, \IEEEbiographynophoto, \IEEEpubid, +% \IEEEmembership and \IEEEaftertitletext will all swallow their given text. +% \IEEEPARstart will output a normal character instead +% warn the user about these commands only once to prevent the console screen +% from filling up with redundant messages +\def\thanks#1{\if@IEEEWARNthanks\typeout{** WARNING: \noexpand\thanks + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNthanksfalse} +\def\IEEEPARstart#1#2{#1#2\if@IEEEWARNIEEEPARstart\typeout{** WARNING: \noexpand\IEEEPARstart + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEPARstartfalse} + + +% LaTeX treats environments and commands with optional arguments differently. +% the actual ("internal") command is stored as \\commandname +% (accessed via \csname\string\commandname\endcsname ) +% the "external" command \commandname is a macro with code to determine +% whether or not the optional argument is presented and to provide the +% default if it is absent. So, in order to save and restore such a command +% we would have to save and restore \\commandname as well. But, if LaTeX +% ever changes the way it names the internal names, the trick would break. +% Instead let us just define a new environment so that the internal +% name can be left undisturbed. +\newenvironment{@IEEEbogusbiography}[2][]{\if@IEEEWARNIEEEbiography\typeout{** WARNING: \noexpand\IEEEbiography + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEbiographyfalse% +\setbox\@IEEEtranrubishbin\vbox\bgroup}{\egroup\relax} +% and make biography point to our bogus biography +\let\IEEEbiography=\@IEEEbogusbiography +\let\endIEEEbiography=\end@IEEEbogusbiography + +\renewenvironment{IEEEbiographynophoto}[1]{\if@IEEEWARNIEEEbiographynophoto\typeout{** WARNING: \noexpand\IEEEbiographynophoto + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEbiographynophotofalse% +\setbox\@IEEEtranrubishbin\vbox\bgroup}{\egroup\relax} + +\def\IEEEpubid#1{\if@IEEEWARNIEEEpubid\typeout{** WARNING: \noexpand\IEEEpubid + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEpubidfalse} +\def\IEEEpubidadjcol{\if@IEEEWARNIEEEpubidadjcol\typeout{** WARNING: \noexpand\IEEEpubidadjcol + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEpubidadjcolfalse} +\def\IEEEmembership#1{\if@IEEEWARNIEEEmembership\typeout{** WARNING: \noexpand\IEEEmembership + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEmembershipfalse} +\def\IEEEaftertitletext#1{\if@IEEEWARNIEEEaftertitletext\typeout{** WARNING: \noexpand\IEEEaftertitletext + is locked out when in conference mode (line \the\inputlineno).}\fi\global\@IEEEWARNIEEEaftertitletextfalse} +\fi + + +% provide a way to restore the commands that are locked out +\def\IEEEoverridecommandlockouts{% +\typeout{** ATTENTION: Overriding command lockouts (line \the\inputlineno).}% +\let\thanks\@IEEESAVECMDthanks% +\let\IEEEPARstart\@IEEESAVECMDIEEEPARstart% +\let\IEEEbiography\@IEEESAVECMDIEEEbiography% +\let\endIEEEbiography\@IEEESAVECMDendIEEEbiography% +\let\IEEEbiographynophoto\@IEEESAVECMDIEEEbiographynophoto% +\let\endIEEEbiographynophoto\@IEEESAVECMDendIEEEbiographynophoto% +\let\IEEEpubid\@IEEESAVECMDIEEEpubid% +\let\IEEEpubidadjcol\@IEEESAVECMDIEEEpubidadjcol% +\let\IEEEmembership\@IEEESAVECMDIEEEmembership% +\let\IEEEaftertitletext\@IEEESAVECMDIEEEaftertitletext} + + + +% need a backslash character for typeout output +{\catcode`\|=0 \catcode`\\=12 +|xdef|@IEEEbackslash{\}} + + +% hook to allow easy disabling of all legacy warnings +\def\@IEEElegacywarn#1#2{\typeout{** ATTENTION: \@IEEEbackslash #1 is deprecated (line \the\inputlineno). +Use \@IEEEbackslash #2 instead.}} + + +% provide some legacy IEEEtran commands +\def\IEEEcompsoctitleabstractindextext{\@IEEElegacywarn{IEEEcompsoctitleabstractindextext}{IEEEtitleabstractindextext}\IEEEtitleabstractindextext} +\def\IEEEdisplaynotcompsoctitleabstractindextext{\@IEEElegacywarn{IEEEdisplaynotcompsoctitleabstractindextext}{IEEEdisplaynontitleabstractindextext}\IEEEdisplaynontitleabstractindextext} +% provide some legacy IEEEtran environments + + +% V1.8a no more support for these legacy commands +%\def\authorblockA{\@IEEElegacywarn{authorblockA}{IEEEauthorblockA}\IEEEauthorblockA} +%\def\authorblockN{\@IEEElegacywarn{authorblockN}{IEEEauthorblockN}\IEEEauthorblockN} +%\def\authorrefmark{\@IEEElegacywarn{authorrefmark}{IEEEauthorrefmark}\IEEEauthorrefmark} +%\def\PARstart{\@IEEElegacywarn{PARstart}{IEEEPARstart}\IEEEPARstart} +%\def\pubid{\@IEEElegacywarn{pubid}{IEEEpubid}\IEEEpubid} +%\def\pubidadjcol{\@IEEElegacywarn{pubidadjcol}{IEEEpubidadjcol}\IEEEpubidadjcol} +%\def\specialpapernotice{\@IEEElegacywarn{specialpapernotice}{IEEEspecialpapernotice}\IEEEspecialpapernotice} +% and environments +%\def\keywords{\@IEEElegacywarn{keywords}{IEEEkeywords}\IEEEkeywords} +%\def\endkeywords{\endIEEEkeywords} +% V1.8 no more support for legacy IED list commands +%\let\labelindent\IEEElabelindent +%\def\calcleftmargin{\@IEEElegacywarn{calcleftmargin}{IEEEcalcleftmargin}\IEEEcalcleftmargin} +%\def\setlabelwidth{\@IEEElegacywarn{setlabelwidth}{IEEEsetlabelwidth}\IEEEsetlabelwidth} +%\def\usemathlabelsep{\@IEEElegacywarn{usemathlabelsep}{IEEEusemathlabelsep}\IEEEusemathlabelsep} +%\def\iedlabeljustifyc{\@IEEElegacywarn{iedlabeljustifyc}{IEEEiedlabeljustifyc}\IEEEiedlabeljustifyc} +%\def\iedlabeljustifyl{\@IEEElegacywarn{iedlabeljustifyl}{IEEEiedlabeljustifyl}\IEEEiedlabeljustifyl} +%\def\iedlabeljustifyr{\@IEEElegacywarn{iedlabeljustifyr}{IEEEiedlabeljustifyr}\IEEEiedlabeljustifyr} +% V1.8 no more support for QED and proof stuff +%\def\QED{\@IEEElegacywarn{QED}{IEEEQED}\IEEEQED} +%\def\QEDclosed{\@IEEElegacywarn{QEDclosed}{IEEEQEDclosed}\IEEEQEDclosed} +%\def\QEDopen{\@IEEElegacywarn{QEDopen}{IEEEQEDopen}\IEEEQEDopen} +%\AtBeginDocument{\def\proof{\@IEEElegacywarn{proof}{IEEEproof}\IEEEproof}\def\endproof{\endIEEEproof}} +% V1.8 no longer support biography or biographynophoto +%\def\biography{\@IEEElegacywarn{biography}{IEEEbiography}\IEEEbiography} +%\def\biographynophoto{\@IEEElegacywarn{biographynophoto}{IEEEbiographynophoto}\IEEEbiographynophoto} +%\def\endbiography{\endIEEEbiography} +%\def\endbiographynophoto{\endIEEEbiographynophoto} +% V1.7 and later no longer supports \overrideIEEEmargins +%\def\overrideIEEEmargins{% +%\typeout{** WARNING: \string\overrideIEEEmargins \space no longer supported (line \the\inputlineno).}% +%\typeout{** Use the \string\CLASSINPUTinnersidemargin, \string\CLASSINPUToutersidemargin \space controls instead.}} + +\endinput + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of IEEEtran.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%% +% That's all folks! + diff --git a/README.md b/README.md new file mode 100644 index 0000000..38d6a23 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Latex Templates +Personalised set of latex files and utility scripts. + +## Directory Contents +- An updated set of IEEE bibliography string definitions. +- IEEE journal / conference style class +- PowerPoint/Beamer presentation style class (ngni) +- Imperial College letter style class +- Resume / CV / Name card class functions +- Latex preambles for pre-set formatting of papers, presentations, and other +- TrueType Fonts used here +- Illustrations, Figures, and Style related data + +## How to use these template files +- This repository provides a pre-formatted set of latex files for daily use and allows organises the template/style files in a centralised location. To get started, simply include this project directory to your path. This allows the main.tex source files to be organised in a different folder and we can link any scripts common to several projects. In the root document include the following lines: +``` latex +\makeatletter +\def\input@path{{/home/user_name/MyLatexTemplates/}{../MyLatexTemplates/}} +\makeatother +``` +- Any personal / author details can be edited in the 'personal_details.cls' file which will automatically be sourced by these tex files. +- The 'default_symbols.cls' file is a aggregation of preferred latex commands and can be committed/changed depending on your preferences. +- So far these files provide a bemer class ngnitheme, a letter class impletter, a letter class leene-resume, and a article class ieeetran. + +Example code will be provided soon... diff --git a/Style/IC_black.eps b/Style/IC_black.eps new file mode 100644 index 0000000..451ca8b --- /dev/null +++ b/Style/IC_black.eps @@ -0,0 +1,5210 @@ +%!PS-Adobe-3.1 EPSF-3.0 +%ADO_DSC_Encoding: MacOS Roman +%%Title: IMP_ML_K_PS.eps +%%Creator: Adobe Illustrator(R) 13.0 +%%For: Beth Elzer +%%CreationDate: 6/10/09 +%%BoundingBox: 0 0 361 95 +%%HiResBoundingBox: 0 0 360.9233 94.6885 +%%CropBox: 0 0 360.9233 94.6885 +%%LanguageLevel: 2 +%%DocumentData: Clean7Bit +%ADOBeginClientInjection: DocumentHeader "AI11EPS" +%%AI8_CreatorVersion: 13.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 13.0.0 x406 R agm 4.4378 ct 5.1039 %ADO_ContainsXMP: MainFirst %AI7_Thumbnail: 128 36 8 %%BeginData: 6668 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C457E7DA8FD2CFF7D2752FD0AFFA8F8277DFD0AFFA85259527DA8FD0B %FF2E2727FF522727FD1EFFF82727FD2CFF52F8277DFD09FF7D27F87DFD08 %FF7D27F827F827F8277DFD0AFF52F827FF52F827A8FD1DFF27F852FD2CFF %5227F8A8FD09FFA8F8277DFD07FF7D27F827277D5252F8A8FD0AFF522727 %FF522720FD1EFFF82727FD0FFFA8FD1DFF7DA8FD0AFF7D27F87DFD06FF7D %27F8277DFFFFFFA8A8FD0BFF52F827FF52F827A8FD1DFF27F852FFA87DFF %FF7D527DFFFFA87D527DFFFFFFA87DFFFF7D527DA8FD05FFA87D527DFFFF %FFAF7DA8FF7D53FFFFA8A8FFFFFF847D527DA8FFFFA8F8277DFD06FF52F8 %277DFD09FFA87D527DA8FFFFFF522727FF522727FFFFFFA87D527DA8FD05 %FF7E7D52A8FFA87EFD04FFA8527D7DFFFFF82727FFF8272727F827F85253 %27F827F852FFA8F8272852F827F827A8FFFFFF5227F827F827A8FF5227F8 %7DF827527DF827A8FF2727F827F8277DFF7D27F87DFD05FFA8F82727FD09 %FF5227F827F82759FFFF52F827FF53F827A8FF7D27F827F8277DFFFFFF28 %27F827F852F8277DFFA827F827F8272EFF27F852FF27F827277D2727F827 %527D2727F87DA827F82727A87D27F827FFFF522727A8A852F852FF59F827 %F827F8A87D27F8FFFF2752A87D52F827FFA8F8277DFD05FF7D27F87DFD08 %FF5227F87DA87DF8277DFF272727FF522727FF7E27F87DA87DF827A8FF52 %27F87DA852F827F8A8FF28F852A8A827277DF82727FFF82727FFFFA8F827 %27FFFFA8F82752AFF827F8A9FFFF5227F87DA827F87DFFFFA827F8FF5227 %F852A8A8FF7DF827A8FFA8FFFFFF5227F8A87D27F87DFD05FF7DF8277DFD %07FF7D27F852FFFFFF27F827FF52F827FF52F827FF52F827FFFFFF52F87D %A827F852FFFFFF52F827A87DF827A8FFFF7DF82727F852FF27F853FFFFFF %27F87DFFFFFF27F87DA827F852FFFFFFA8F827537DF827527D7D7DF827A8 %7DF827A8FFFFFF522720A8FFFF8452F827F827A8A8F8277DFD05FF5927F8 %7DFD07FF7DF8277DFFFFFF5227F8A8522727FF522727FF2727277D7D7D27 %2752A8F8277DFFFFFF7D27F8A85227277D7D7E5227F8F82728FFF82752FF %FFFFF82752FFFFFF272752AFF82752FFFFFFA827F8525227F827F827F827 %F8A85227F8FD04FF7DF827A8FF2727F8535227F8A87E27F87DFD05FF7DF8 %2752FD07FF5227F8A8FFFFFF7DF8277D52F827FF52F8277E27F827F827F8 %27F8525227F8A8FFFFFF7DF8277D52F827F827F827F82727F852FF27F859 %FFFFA827F852FFFFFF28F87DA827F87DFD04FF2727527DF8277DAFFD04A8 %FF53F827FD04FF5327F8FF5227F8A8FFA8F827A8A8F8277DFD05FFA827F8 %27A8FD06FF59F827A8FFFFFF7D27F8A8522727FF522727A8272728A9FD04 %A8FF7DF8277DFFFFFF7D27F8A85227F8FD06A8F82727FFF82752FFFFFFF8 %2752FFFFFF272752FFF82727FFFFFF7D27F87D7D27F87DFD06FF5227F8FD %04FF7DF8277E27F852FFFF5227F8A87E27F87DFD06FF2827F852FD06FF7D %27F87DFFFFFF52F827A852F827FF52F827A827F827FD06FF7D27F87DFFFF %FF52F8277D7DF827A8FD05FF27F852FF27F87DFFFFFF27F853FFFFFF52F8 %7DA827F827A8FFFF52F827A8FF272727A8FFFFA8A8FF53F827FD04FF5927 %20A8272727FFA827F827A8A8F8277DFD07FF2727F852A8FFFFA87DFF2727 %52FFFFFF272727FF522727FF522727FF7D27F87DFFFFFFA8FFFF272727FF %FFFF2727F8A8A827F852FFFFFFA8A8F82727FFF82752FFFFFFF82752FFFF %FF272752FFF827F8275252F82752FFFF7EF827F8525227F8FF5227F8FD04 %FF7DF827A852F8272727F827F884A827F87DFD07FFA82727F8272727F827 %A87DF827527D2727F8A8FF52F827FF52F827A9FF2727F8525227F87DFF7D %F827277DF827F8277DFF5227F8275252F85227F852FF27F87DFFFFFF27F8 %7DFFFFFF52277DA827F87D5227F82752FD04FFA82727F827277DFF7DF827 %A9FFFFFF532727FFA852F82752A8272759A827277DFD09FF5227F827F827 %27A8FF7D2727F82727A8FFFF522727FF522727FFFFFF5227F827F852A8FF %FF7DF827F8525327F8A8FFFF7D27F827F8527DA8A8A8FFA8A8A8FFFFFFA8 %A8A8FFFFFFA8FFFFA8F82752FF7DA8A8FD07FF7DA87DFFFFFFA8A8A8FD05 %FFA8A8A8FFA8A8A8FFFFFD06A8FD0BFFA8A87DA8A8FD05FF7DA87EFD04FF %A8A8A8FFAFA8A8FD04FFA8A87DA8FFFFA8FFFFA87DA8FF7DF8277DFFFFFF %A8A87DA8FD15FFA827F87DFD5CFF522727FD1DFFA8F82752FD56FF7E7DFF %FFFF7D27F852FD1DFFA827F87DFD56FF272727522727F852A8FD1DFFA8F8 %2752FD56FF7D2727F8272752A8FD0CFFA8FD13FFA8FD10FF7D2752FD46FF %A8FFA8FD0EFF272752FD23FF5227F8FD57FF27F852FD23FF52F827FD57FF %F82727FD23FF5227F8FD57FF27F852FD0AFFA8A8FD06FFA8FFFFFFA8A8A8 %FD07FFA8FFFF7DF827FD05FFA9A8FD07FFA8FFFFFFA8FD44FFF82727FD07 %FFA852F827F82752FFFFFF5227277D2727F82752FFFFFFA852F827F85352 %27F8FFFFFF7D52F827F8527DFFFFFF2727527DF827F8277DFD41FF27F852 %FD06FFA827F8275253F82752FFFF52F827F8272727F8277DFFFF28F82752 %52F827F827A8FF7D27F8527D52F8277DFFA827F827F8522727F827FD41FF %F82727FD06FF27F827A8FFFF7DF82753FF2727F853FFFF5327F852FF7DF8 %2752FFFF7DF827F8FFA827F852FFFFFF2EF827A8FFF827F87EFFFF2727F8 %A8FD40FF27F852FD05FFA8F82752FFFFFFA827F852FF52F827FD04FF2727 %52FF272727FD04FF52F827FF7DF8277DFFFFFF7D27F87DFF27F852FFFFFF %A8F8277DFD40FFF82727FD05FF7D27F87DFD04FF2727F8FF282727FD04FF %27F852A827F852FD04FF522727FF2727F8A8FFFFFFA8F82752FFF82752FF %FFFF7D27F87DFD40FF27F852FD05FF7DF82752FD04FF52F827FF52F852FD %04FF272752A8F82752FD04FF53F827FF52F827A8FFFFFFA827F852FF27F8 %59FFFFFFA8F8277DFD40FFF82727FD05FF7D27F852FD04FFF82727FF2727 %27FD04FF27F852A827F827FD04FF2727F8FF5227F8A8FFFFFFA8F82752FF %F82752FFFFFF7D27F87DFD40FF27F852FD06FF272727FFFFFF7D27F87DFF %52F852FD04FF272752FF2727F8A8FFFFA827F827FFA8F82752FFFFFF5227 %F8A8FF27F87DFFFFFFA8F8277DFD40FFF82727522E525252A87DF82752FF %A827F827A8FF272727FD04FF27F852FF7DF82727A87D27F827F8FFFF52F8 %277DFF7D27F852FFFFF82752FFFFFF7D27F87DFD40FF27F827F827F827F8 %7DFF7DF827F827F827A8FFFF52F827FD04FF272727FFFF7DF827F8272752 %F827A8FFFF52F827F827F852FFFFA827F852FFFFFFA8F8277DFD40FFFD08 %7DA8FFFFA85252527DA8FFFFFF7D7D7DFD04FFA87DA8FFFFFF84525252FF %A87D7DFD04FF7E5252527EFD04FF7D7D7EFFFFFFA87D7DA8FD3FFFFF %%EndData +%ADOEndClientInjection: DocumentHeader "AI11EPS" +%%Pages: 1 +%%DocumentNeededResources: +%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 +%%+ procset Adobe_CoolType_Utility_T42 1.0 0 +%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 +%%+ procset Adobe_CoolType_Core 2.31 0 +%%+ procset Adobe_AGM_Core 2.0 0 +%%+ procset Adobe_AGM_Utils 1.0 0 +%%DocumentFonts: +%%DocumentNeededFonts: +%%DocumentNeededFeatures: +%%DocumentSuppliedFeatures: +%%DocumentProcessColors: Black +%%DocumentCustomColors: +%%CMYKCustomColor: +%%RGBCustomColor: +%%EndComments + + + + + + +%%BeginDefaults +%%ViewingOrientation: 1 0 0 1 +%%EndDefaults +%%BeginProlog +%%BeginResource: procset Adobe_AGM_Utils 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{currentpacking true setpacking}if +userdict/Adobe_AGM_Utils 73 dict dup begin put +/bdf +{bind def}bind def +/nd{null def}bdf +/xdf +{exch def}bdf +/ldf +{load def}bdf +/ddf +{put}bdf +/xddf +{3 -1 roll put}bdf +/xpt +{exch put}bdf +/ndf +{ + exch dup where{ + pop pop pop + }{ + xdf + }ifelse +}def +/cdndf +{ + exch dup currentdict exch known{ + pop pop + }{ + exch def + }ifelse +}def +/gx +{get exec}bdf +/ps_level + /languagelevel where{ + pop systemdict/languagelevel gx + }{ + 1 + }ifelse +def +/level2 + ps_level 2 ge +def +/level3 + ps_level 3 ge +def +/ps_version + {version cvr}stopped{-1}if +def +/set_gvm +{currentglobal exch setglobal}bdf +/reset_gvm +{setglobal}bdf +/makereadonlyarray +{ + /packedarray where{pop packedarray + }{ + array astore readonly}ifelse +}bdf +/map_reserved_ink_name +{ + dup type/stringtype eq{ + dup/Red eq{ + pop(_Red_) + }{ + dup/Green eq{ + pop(_Green_) + }{ + dup/Blue eq{ + pop(_Blue_) + }{ + dup()cvn eq{ + pop(Process) + }if + }ifelse + }ifelse + }ifelse + }if +}bdf +/AGMUTIL_GSTATE 22 dict def +/get_gstate +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_clr_spc currentcolorspace def + /AGMUTIL_GSTATE_clr_indx 0 def + /AGMUTIL_GSTATE_clr_comps 12 array def + mark currentcolor counttomark + {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop + /AGMUTIL_GSTATE_fnt rootfont def + /AGMUTIL_GSTATE_lw currentlinewidth def + /AGMUTIL_GSTATE_lc currentlinecap def + /AGMUTIL_GSTATE_lj currentlinejoin def + /AGMUTIL_GSTATE_ml currentmiterlimit def + currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf + /AGMUTIL_GSTATE_sa currentstrokeadjust def + /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def + /AGMUTIL_GSTATE_op currentoverprint def + /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def + /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def + currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf + cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf + /AGMUTIL_GSTATE_ht currenthalftone def + /AGMUTIL_GSTATE_flt currentflat def + end +}def +/set_gstate +{ + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_clr_spc setcolorspace + AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor + AGMUTIL_GSTATE_fnt setfont + AGMUTIL_GSTATE_lw setlinewidth + AGMUTIL_GSTATE_lc setlinecap + AGMUTIL_GSTATE_lj setlinejoin + AGMUTIL_GSTATE_ml setmiterlimit + AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash + AGMUTIL_GSTATE_sa setstrokeadjust + AGMUTIL_GSTATE_clr_rnd setcolorrendering + AGMUTIL_GSTATE_op setoverprint + AGMUTIL_GSTATE_bg cvx setblackgeneration + AGMUTIL_GSTATE_ucr cvx setundercolorremoval + AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx + AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer + AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or + { + currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne + { + mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark + }if + }{ + AGMUTIL_GSTATE_ht sethalftone + }ifelse + AGMUTIL_GSTATE_flt setflat + end +}def +/get_gstate_and_matrix +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_ctm matrix currentmatrix def + end + get_gstate +}def +/set_gstate_and_matrix +{ + set_gstate + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_ctm setmatrix + end +}def +/AGMUTIL_str256 256 string def +/AGMUTIL_src256 256 string def +/AGMUTIL_dst64 64 string def +/AGMUTIL_srcLen nd +/AGMUTIL_ndx nd +/AGMUTIL_cpd nd +/capture_cpd{ + //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf +}def +/thold_halftone +{ + level3 + {sethalftone currenthalftone} + { + dup/HalftoneType get 3 eq + { + sethalftone currenthalftone + }{ + begin + Width Height mul{ + Thresholds read{pop}if + }repeat + end + currenthalftone + }ifelse + }ifelse +}def +/rdcmntline +{ + currentfile AGMUTIL_str256 readline pop + (%)anchorsearch{pop}if +}bdf +/filter_cmyk +{ + dup type/filetype ne{ + exch()/SubFileDecode filter + }{ + exch pop + } + ifelse + [ + exch + { + AGMUTIL_src256 readstring pop + dup length/AGMUTIL_srcLen exch def + /AGMUTIL_ndx 0 def + AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ + 1 index exch get + AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put + /AGMUTIL_ndx AGMUTIL_ndx 1 add def + }for + pop + AGMUTIL_dst64 0 AGMUTIL_ndx getinterval + } + bind + /exec cvx + ]cvx +}bdf +/filter_indexed_devn +{ + cvi Names length mul names_index add Lookup exch get +}bdf +/filter_devn +{ + 4 dict begin + /srcStr xdf + /dstStr xdf + dup type/filetype ne{ + 0()/SubFileDecode filter + }if + [ + exch + [ + /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx + currentdict/srcStr get/readstring cvx/pop cvx + /dup cvx/length cvx 0/gt cvx[ + Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx + names_index Names length currentdict/srcStr get length 1 sub{ + 1/index cvx/exch cvx/get cvx + currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx + Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx + }for + currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx + ]cvx/if cvx + /end cvx + ]cvx + bind + /exec cvx + ]cvx + end +}bdf +/AGMUTIL_imagefile nd +/read_image_file +{ + AGMUTIL_imagefile 0 setfileposition + 10 dict begin + /imageDict xdf + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + /imbufIdx 0 def + /origDataSource imageDict/DataSource get def + /origMultipleDataSources imageDict/MultipleDataSources get def + /origDecode imageDict/Decode get def + /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def + imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse + { + /imbufCnt imageDict/DataSource get length def + /imbufs imbufCnt array def + 0 1 imbufCnt 1 sub{ + /imbufIdx xdf + imbufs imbufIdx imbufLen string put + imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put + }for + DeviceN_PS2{ + imageDict begin + /DataSource[DataSource/devn_sep_datasource cvx]cvx def + /MultipleDataSources false def + /Decode[0 1]def + end + }if + }{ + /imbuf imbufLen string def + Indexed_DeviceN level3 not and DeviceN_NoneName or{ + /srcDataStrs[imageDict begin + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi string + }repeat + end]def + imageDict begin + /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def + /Decode[0 1]def + end + }{ + imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put + imageDict/Decode[0 1]put + }ifelse + }ifelse + imageDict exch + load exec + imageDict/DataSource origDataSource put + imageDict/MultipleDataSources origMultipleDataSources put + imageDict/Decode origDecode put + end +}bdf +/write_image_file +{ + begin + {(AGMUTIL_imagefile)(w+)file}stopped{ + false + }{ + Adobe_AGM_Utils/AGMUTIL_imagefile xddf + 2 dict begin + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ + /imbuf imbufLen string def + }if + 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ + pop + MultipleDataSources{ + 0 1 DataSource length 1 sub{ + DataSource type dup + /arraytype eq{ + pop DataSource exch gx + }{ + /filetype eq{ + DataSource exch get imbuf readstring pop + }{ + DataSource exch get + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }for + }{ + DataSource type dup + /arraytype eq{ + pop DataSource exec + }{ + /filetype eq{ + DataSource imbuf readstring pop + }{ + DataSource + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }ifelse + }for + end + true + }ifelse + end +}bdf +/close_image_file +{ + AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile +}def +statusdict/product known userdict/AGMP_current_show known not and{ + /pstr statusdict/product get def + pstr(HP LaserJet 2200)eq + pstr(HP LaserJet 4000 Series)eq or + pstr(HP LaserJet 4050 Series )eq or + pstr(HP LaserJet 8000 Series)eq or + pstr(HP LaserJet 8100 Series)eq or + pstr(HP LaserJet 8150 Series)eq or + pstr(HP LaserJet 5000 Series)eq or + pstr(HP LaserJet 5100 Series)eq or + pstr(HP Color LaserJet 4500)eq or + pstr(HP Color LaserJet 4600)eq or + pstr(HP LaserJet 5Si)eq or + pstr(HP LaserJet 1200 Series)eq or + pstr(HP LaserJet 1300 Series)eq or + pstr(HP LaserJet 4100 Series)eq or + { + userdict/AGMP_current_show/show load put + userdict/show{ + currentcolorspace 0 get + /Pattern eq + {false charpath f} + {AGMP_current_show}ifelse + }put + }if + currentdict/pstr undef +}if +/consumeimagedata +{ + begin + AGMIMG_init_common + currentdict/MultipleDataSources known not + {/MultipleDataSources false def}if + MultipleDataSources + { + DataSource 0 get type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width cvi string def + 1 1 Height cvi + { + pop + 0 1 DataSource length 1 sub + { + DataSource exch get + flushbuffer readstring pop pop + }for + }for + end + }if + dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and + { + Width Height mul cvi + { + 0 1 DataSource length 1 sub + {dup DataSource exch gx length exch 0 ne{pop}if}for + dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + } + { + /DataSource load type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width Decode length 2 idiv mul cvi string def + 1 1 Height{pop DataSource flushbuffer readstring pop pop}for + end + }if + dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and + { + Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul + { + DataSource length dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + }ifelse + end +}bdf +/addprocs +{ + 2{/exec load}repeat + 3 1 roll + [5 1 roll]bind cvx +}def +/modify_halftone_xfer +{ + currenthalftone dup length dict copy begin + currentdict 2 index known{ + 1 index load dup length dict copy begin + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end def + currentdict end sethalftone + }{ + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end sethalftone + pop + }ifelse +}def +/clonearray +{ + dup xcheck exch + dup length array exch + Adobe_AGM_Core/AGMCORE_tmp -1 ddf + { + Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf + dup type/dicttype eq + { + Adobe_AGM_Core/AGMCORE_tmp get + exch + clonedict + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + dup type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_tmp get exch + clonearray + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + exch dup + Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put + }forall + exch{cvx}if +}bdf +/clonedict +{ + dup length dict + begin + { + dup type/dicttype eq + {clonedict}if + dup type/arraytype eq + {clonearray}if + def + }forall + currentdict + end +}bdf +/DeviceN_PS2 +{ + /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and +}bdf +/Indexed_DeviceN +{ + /indexed_colorspace_dict AGMCORE_gget dup null ne{ + dup/CSDBase known{ + /CSDBase get/CSD get_res/Names known + }{ + pop false + }ifelse + }{ + pop false + }ifelse +}bdf +/DeviceN_NoneName +{ + /Names where{ + pop + false Names + { + (None)eq or + }forall + }{ + false + }ifelse +}bdf +/DeviceN_PS2_inRip_seps +{ + /AGMCORE_in_rip_sep where + { + pop dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and + { + /currentcolorspace exch AGMCORE_gput + false + }{ + true + }ifelse + }{ + true + }ifelse + }{ + true + }ifelse +}bdf +/base_colorspace_type +{ + dup type/arraytype eq{0 get}if +}bdf +/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse +{ + /pdfmark_5{cleartomark}bind def +}{ + /pdfmark_5{pdfmark}bind def +}ifelse +/ReadBypdfmark_5 +{ + currentfile exch 0 exch/SubFileDecode filter + /currentdistillerparams where + {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse + {flushfile cleartomark} + {/PUT pdfmark}ifelse +}bdf +/xpdfm +{ + { + dup 0 get/Label eq + { + aload length[exch 1 add 1 roll/PAGELABEL + }{ + aload pop + [{ThisPage}<<5 -2 roll>>/PUT + }ifelse + pdfmark_5 + }forall +}bdf +/ds{ + Adobe_AGM_Utils begin +}bdf +/dt{ + currentdict Adobe_AGM_Utils eq{ + end + }if +}bdf +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_AGM_Core 2.0 0 +%%Version: 2.0 0 +%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Core 209 dict dup begin put +/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def +/AGMCORE_str256 256 string def +/AGMCORE_save nd +/AGMCORE_graphicsave nd +/AGMCORE_c 0 def +/AGMCORE_m 0 def +/AGMCORE_y 0 def +/AGMCORE_k 0 def +/AGMCORE_cmykbuf 4 array def +/AGMCORE_screen[currentscreen]cvx def +/AGMCORE_tmp 0 def +/AGMCORE_&setgray nd +/AGMCORE_&setcolor nd +/AGMCORE_&setcolorspace nd +/AGMCORE_&setcmykcolor nd +/AGMCORE_cyan_plate nd +/AGMCORE_magenta_plate nd +/AGMCORE_yellow_plate nd +/AGMCORE_black_plate nd +/AGMCORE_plate_ndx nd +/AGMCORE_get_ink_data nd +/AGMCORE_is_cmyk_sep nd +/AGMCORE_host_sep nd +/AGMCORE_avoid_L2_sep_space nd +/AGMCORE_distilling nd +/AGMCORE_composite_job nd +/AGMCORE_producing_seps nd +/AGMCORE_ps_level -1 def +/AGMCORE_ps_version -1 def +/AGMCORE_environ_ok nd +/AGMCORE_CSD_cache 0 dict def +/AGMCORE_currentoverprint false def +/AGMCORE_deltaX nd +/AGMCORE_deltaY nd +/AGMCORE_name nd +/AGMCORE_sep_special nd +/AGMCORE_err_strings 4 dict def +/AGMCORE_cur_err nd +/AGMCORE_current_spot_alias false def +/AGMCORE_inverting false def +/AGMCORE_feature_dictCount nd +/AGMCORE_feature_opCount nd +/AGMCORE_feature_ctm nd +/AGMCORE_ConvertToProcess false def +/AGMCORE_Default_CTM matrix def +/AGMCORE_Default_PageSize nd +/AGMCORE_Default_flatness nd +/AGMCORE_currentbg nd +/AGMCORE_currentucr nd +/AGMCORE_pattern_paint_type 0 def +/knockout_unitsq nd +currentglobal true setglobal +[/CSA/Gradient/Procedure] +{ + /Generic/Category findresource dup length dict copy/Category defineresource pop +}forall +setglobal +/AGMCORE_key_known +{ + where{ + /Adobe_AGM_Core_Id known + }{ + false + }ifelse +}ndf +/flushinput +{ + save + 2 dict begin + /CompareBuffer 3 -1 roll def + /readbuffer 256 string def + mark + { + currentfile readbuffer{readline}stopped + {cleartomark mark} + { + not + {pop exit} + if + CompareBuffer eq + {exit} + if + }ifelse + }loop + cleartomark + end + restore +}bdf +/getspotfunction +{ + AGMCORE_screen exch pop exch pop + dup type/dicttype eq{ + dup/HalftoneType get 1 eq{ + /SpotFunction get + }{ + dup/HalftoneType get 2 eq{ + /GraySpotFunction get + }{ + pop + { + abs exch abs 2 copy add 1 gt{ + 1 sub dup mul exch 1 sub dup mul add 1 sub + }{ + dup mul exch dup mul add 1 exch sub + }ifelse + }bind + }ifelse + }ifelse + }if +}def +/np +{newpath}bdf +/clp_npth +{clip np}def +/eoclp_npth +{eoclip np}def +/npth_clp +{np clip}def +/graphic_setup +{ + /AGMCORE_graphicsave save store + concat + 0 setgray + 0 setlinecap + 0 setlinejoin + 1 setlinewidth + []0 setdash + 10 setmiterlimit + np + false setoverprint + false setstrokeadjust + //Adobe_AGM_Core/spot_alias gx + /Adobe_AGM_Image where{ + pop + Adobe_AGM_Image/spot_alias 2 copy known{ + gx + }{ + pop pop + }ifelse + }if + /sep_colorspace_dict null AGMCORE_gput + 100 dict begin + /dictstackcount countdictstack def + /showpage{}def + mark +}def +/graphic_cleanup +{ + cleartomark + dictstackcount 1 countdictstack 1 sub{end}for + end + AGMCORE_graphicsave restore +}def +/compose_error_msg +{ + grestoreall initgraphics + /Helvetica findfont 10 scalefont setfont + /AGMCORE_deltaY 100 def + /AGMCORE_deltaX 310 def + clippath pathbbox np pop pop 36 add exch 36 add exch moveto + 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto + 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath + 0 AGMCORE_&setgray + gsave 1 AGMCORE_&setgray fill grestore + 1 setlinewidth gsave stroke grestore + currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto + /AGMCORE_deltaY 12 def + /AGMCORE_tmp 0 def + AGMCORE_err_strings exch get + { + dup 32 eq + { + pop + AGMCORE_str256 0 AGMCORE_tmp getinterval + stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt + { + currentpoint AGMCORE_deltaY sub exch pop + clippath pathbbox pop pop pop 44 add exch moveto + }if + AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show + 0 1 AGMCORE_str256 length 1 sub + { + AGMCORE_str256 exch 0 put + }for + /AGMCORE_tmp 0 def + }{ + AGMCORE_str256 exch AGMCORE_tmp xpt + /AGMCORE_tmp AGMCORE_tmp 1 add def + }ifelse + }forall +}bdf +/AGMCORE_CMYKDeviceNColorspaces[ + [/Separation/None/DeviceCMYK{0 0 0}] + [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] + [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] + [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] + [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] + [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] + [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] + [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] + [/Separation(Cyan)/DeviceCMYK{0 0 0}] + [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] + [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] + [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] + [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] + [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] + [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] + [/DeviceCMYK] +]def +/ds{ + Adobe_AGM_Core begin + /currentdistillerparams where + { + pop currentdistillerparams/CoreDistVersion get 5000 lt + {<>setdistillerparams}if + }if + /AGMCORE_ps_version xdf + /AGMCORE_ps_level xdf + errordict/AGM_handleerror known not{ + errordict/AGM_handleerror errordict/handleerror get put + errordict/handleerror{ + Adobe_AGM_Core begin + $error/newerror get AGMCORE_cur_err null ne and{ + $error/newerror false put + AGMCORE_cur_err compose_error_msg + }if + $error/newerror true put + end + errordict/AGM_handleerror get exec + }bind put + }if + /AGMCORE_environ_ok + ps_level AGMCORE_ps_level ge + ps_version AGMCORE_ps_version ge and + AGMCORE_ps_level -1 eq or + def + AGMCORE_environ_ok not + {/AGMCORE_cur_err/AGMCORE_bad_environ def}if + /AGMCORE_&setgray systemdict/setgray get def + level2{ + /AGMCORE_&setcolor systemdict/setcolor get def + /AGMCORE_&setcolorspace systemdict/setcolorspace get def + }if + /AGMCORE_currentbg currentblackgeneration def + /AGMCORE_currentucr currentundercolorremoval def + /AGMCORE_Default_flatness currentflat def + /AGMCORE_distilling + /product where{ + pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and + }{ + false + }ifelse + def + /AGMCORE_GSTATE AGMCORE_key_known not{ + /AGMCORE_GSTATE 21 dict def + /AGMCORE_tmpmatrix matrix def + /AGMCORE_gstack 32 array def + /AGMCORE_gstackptr 0 def + /AGMCORE_gstacksaveptr 0 def + /AGMCORE_gstackframekeys 14 def + /AGMCORE_&gsave/gsave ldf + /AGMCORE_&grestore/grestore ldf + /AGMCORE_&grestoreall/grestoreall ldf + /AGMCORE_&save/save ldf + /AGMCORE_&setoverprint/setoverprint ldf + /AGMCORE_gdictcopy{ + begin + {def}forall + end + }def + /AGMCORE_gput{ + AGMCORE_gstack AGMCORE_gstackptr get + 3 1 roll + put + }def + /AGMCORE_gget{ + AGMCORE_gstack AGMCORE_gstackptr get + exch + get + }def + /gsave{ + AGMCORE_&gsave + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /grestore{ + AGMCORE_&grestore + AGMCORE_gstackptr 1 sub + dup AGMCORE_gstacksaveptr lt{1 add}if + dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known + {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse + /AGMCORE_gstackptr exch store + }def + /grestoreall{ + AGMCORE_&grestoreall + /AGMCORE_gstackptr AGMCORE_gstacksaveptr store + }def + /save{ + AGMCORE_&save + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + /AGMCORE_gstacksaveptr AGMCORE_gstackptr store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /setoverprint{ + dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint + }def + 0 1 AGMCORE_gstack length 1 sub{ + AGMCORE_gstack exch AGMCORE_gstackframekeys dict put + }for + }if + level3/AGMCORE_&sysshfill AGMCORE_key_known not and + { + /AGMCORE_&sysshfill systemdict/shfill get def + /AGMCORE_&sysmakepattern systemdict/makepattern get def + /AGMCORE_&usrmakepattern/makepattern load def + }if + /currentcmykcolor[0 0 0 0]AGMCORE_gput + /currentstrokeadjust false AGMCORE_gput + /currentcolorspace[/DeviceGray]AGMCORE_gput + /sep_tint 0 AGMCORE_gput + /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput + /sep_colorspace_dict null AGMCORE_gput + /devicen_colorspace_dict null AGMCORE_gput + /indexed_colorspace_dict null AGMCORE_gput + /currentcolor_intent()AGMCORE_gput + /customcolor_tint 1 AGMCORE_gput + /absolute_colorimetric_crd null AGMCORE_gput + /relative_colorimetric_crd null AGMCORE_gput + /saturation_crd null AGMCORE_gput + /perceptual_crd null AGMCORE_gput + currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf + cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf + << + /MaxPatternItem currentsystemparams/MaxPatternCache get + >> + setuserparams + end +}def +/ps +{ + /setcmykcolor where{ + pop + Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put + }if + Adobe_AGM_Core begin + /setcmykcolor + { + 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput + 1 sub 4 1 roll + 3{ + 3 index add neg dup 0 lt{ + pop 0 + }if + 3 1 roll + }repeat + setrgbcolor pop + }ndf + /currentcmykcolor + { + /currentcmykcolor AGMCORE_gget aload pop + }ndf + /setoverprint + {pop}ndf + /currentoverprint + {false}ndf + /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def + /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def + /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def + /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def + /AGMCORE_plate_ndx + AGMCORE_cyan_plate{ + 0 + }{ + AGMCORE_magenta_plate{ + 1 + }{ + AGMCORE_yellow_plate{ + 2 + }{ + AGMCORE_black_plate{ + 3 + }{ + 4 + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_have_reported_unsupported_color_space false def + /AGMCORE_report_unsupported_color_space + { + AGMCORE_have_reported_unsupported_color_space false eq + { + (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== + Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf + }if + }def + /AGMCORE_composite_job + AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def + /AGMCORE_in_rip_sep + /AGMCORE_in_rip_sep where{ + pop AGMCORE_in_rip_sep + }{ + AGMCORE_distilling + { + false + }{ + userdict/Adobe_AGM_OnHost_Seps known{ + false + }{ + level2{ + currentpagedevice/Separations 2 copy known{ + get + }{ + pop pop false + }ifelse + }{ + false + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def + /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def + /AGM_preserve_spots + /AGM_preserve_spots where{ + pop AGM_preserve_spots + }{ + AGMCORE_distilling AGMCORE_producing_seps or + }ifelse + def + /AGM_is_distiller_preserving_spotimages + { + currentdistillerparams/PreserveOverprintSettings known + { + currentdistillerparams/PreserveOverprintSettings get + { + currentdistillerparams/ColorConversionStrategy known + { + currentdistillerparams/ColorConversionStrategy get + /sRGB ne + }{ + true + }ifelse + }{ + false + }ifelse + }{ + false + }ifelse + }def + /convert_spot_to_process where{pop}{ + /convert_spot_to_process + { + //Adobe_AGM_Core begin + dup map_alias{ + /Name get exch pop + }if + dup dup(None)eq exch(All)eq or + { + pop false + }{ + AGMCORE_host_sep + { + gsave + 1 0 0 0 setcmykcolor currentgray 1 exch sub + 0 1 0 0 setcmykcolor currentgray 1 exch sub + 0 0 1 0 setcmykcolor currentgray 1 exch sub + 0 0 0 1 setcmykcolor currentgray 1 exch sub + add add add 0 eq + { + pop false + }{ + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + }ifelse + grestore + }{ + AGMCORE_distilling + { + pop AGM_is_distiller_preserving_spotimages not + }{ + //Adobe_AGM_Core/AGMCORE_name xddf + false + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq + AGMUTIL_cpd/OverrideSeparations known and + { + AGMUTIL_cpd/OverrideSeparations get + { + /HqnSpots/ProcSet resourcestatus + { + pop pop pop true + }if + }if + }if + { + AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not + }{ + gsave + [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace + false + AGMUTIL_cpd/SeparationColorNames 2 copy known + { + get + {AGMCORE_name eq or}forall + not + }{ + pop pop pop true + }ifelse + grestore + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + }ifelse + /convert_to_process where{pop}{ + /convert_to_process + { + dup length 0 eq + { + pop false + }{ + AGMCORE_host_sep + { + dup true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process and}ifelse + } + forall + { + true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + (Black)eq or and + }forall + not + }{pop false}ifelse + }{ + false exch + { + /PhotoshopDuotoneList where{pop false}{true}ifelse + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process or}ifelse + } + { + convert_spot_to_process or + } + ifelse + } + forall + }ifelse + }ifelse + }def + }ifelse + /AGMCORE_avoid_L2_sep_space + version cvr 2012 lt + level2 and + AGMCORE_producing_seps not and + def + /AGMCORE_is_cmyk_sep + AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or + def + /AGM_avoid_0_cmyk where{ + pop AGM_avoid_0_cmyk + }{ + AGM_preserve_spots + userdict/Adobe_AGM_OnHost_Seps known + userdict/Adobe_AGM_InRip_Seps known or + not and + }ifelse + { + /setcmykcolor[ + { + 4 copy add add add 0 eq currentoverprint and{ + pop 0.0005 + }if + }/exec cvx + /AGMCORE_&setcmykcolor load dup type/operatortype ne{ + /exec cvx + }if + ]cvx def + }if + /AGMCORE_IsSeparationAProcessColor + { + dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or + }def + AGMCORE_host_sep{ + /setcolortransfer + { + AGMCORE_cyan_plate{ + pop pop pop + }{ + AGMCORE_magenta_plate{ + 4 3 roll pop pop pop + }{ + AGMCORE_yellow_plate{ + 4 2 roll pop pop pop + }{ + 4 1 roll pop pop pop + }ifelse + }ifelse + }ifelse + settransfer + } + def + /AGMCORE_get_ink_data + AGMCORE_cyan_plate{ + {pop pop pop} + }{ + AGMCORE_magenta_plate{ + {4 3 roll pop pop pop} + }{ + AGMCORE_yellow_plate{ + {4 2 roll pop pop pop} + }{ + {4 1 roll pop pop pop} + }ifelse + }ifelse + }ifelse + def + /AGMCORE_RemoveProcessColorNames + { + 1 dict begin + /filtername + { + dup/Cyan eq 1 index(Cyan)eq or + {pop(_cyan_)}if + dup/Magenta eq 1 index(Magenta)eq or + {pop(_magenta_)}if + dup/Yellow eq 1 index(Yellow)eq or + {pop(_yellow_)}if + dup/Black eq 1 index(Black)eq or + {pop(_black_)}if + }def + dup type/arraytype eq + {[exch{filtername}forall]} + {filtername}ifelse + end + }def + level3{ + /AGMCORE_IsCurrentColor + { + dup AGMCORE_IsSeparationAProcessColor + { + AGMCORE_plate_ndx 0 eq + {dup(Cyan)eq exch/Cyan eq or}if + AGMCORE_plate_ndx 1 eq + {dup(Magenta)eq exch/Magenta eq or}if + AGMCORE_plate_ndx 2 eq + {dup(Yellow)eq exch/Yellow eq or}if + AGMCORE_plate_ndx 3 eq + {dup(Black)eq exch/Black eq or}if + AGMCORE_plate_ndx 4 eq + {pop false}if + }{ + gsave + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + grestore + }ifelse + }def + /AGMCORE_filter_functiondatasource + { + 5 dict begin + /data_in xdf + data_in type/stringtype eq + { + /ncomp xdf + /comp xdf + /string_out data_in length ncomp idiv string def + 0 ncomp data_in length 1 sub + { + string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put + }for + string_out + }{ + string/string_in xdf + /string_out 1 string def + /component xdf + [ + data_in string_in/readstring cvx + [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx + [/pop cvx()]cvx/ifelse cvx + ]cvx/ReusableStreamDecode filter + }ifelse + end + }def + /AGMCORE_separateShadingFunction + { + 2 dict begin + /paint? xdf + /channel xdf + dup type/dicttype eq + { + begin + FunctionType 0 eq + { + /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def + currentdict/Decode known + {/Decode Decode channel 2 mul 2 getinterval def}if + paint? not + {/Decode[1 1]def}if + }if + FunctionType 2 eq + { + paint? + { + /C0[C0 channel get 1 exch sub]def + /C1[C1 channel get 1 exch sub]def + }{ + /C0[1]def + /C1[1]def + }ifelse + }if + FunctionType 3 eq + { + /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def + }if + currentdict/Range known + {/Range[0 1]def}if + currentdict + end}{ + channel get 0 paint? AGMCORE_separateShadingFunction + }ifelse + end + }def + /AGMCORE_separateShading + { + 3 -1 roll begin + currentdict/Function known + { + currentdict/Background known + {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if + Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf + /ColorSpace[/DeviceGray]def + }{ + ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }{ + ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put + }ifelse + ColorSpace 0 get/Separation eq + { + { + [1/exch cvx/sub cvx]cvx + }{ + [/pop cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll put + pop + }{ + { + [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx + }{ + pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll bind put + }ifelse + ColorSpace 2/DeviceGray put + }ifelse + end + }def + /AGMCORE_separateShadingDict + { + dup/ColorSpace get + dup type/arraytype ne + {[exch]}if + dup 0 get/DeviceCMYK eq + { + exch begin + currentdict + AGMCORE_cyan_plate + {0 true}if + AGMCORE_magenta_plate + {1 true}if + AGMCORE_yellow_plate + {2 true}if + AGMCORE_black_plate + {3 true}if + AGMCORE_plate_ndx 4 eq + {0 false}if + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + currentdict + end exch + }if + dup 0 get/Separation eq + { + exch begin + ColorSpace 1 get dup/None ne exch/All ne and + { + ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /Separation + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + }if + }ifelse + }{ + currentdict ColorSpace 1 get AGMCORE_IsCurrentColor + 0 exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + }if + currentdict + end exch + }if + dup 0 get/DeviceN eq + { + exch begin + ColorSpace 1 get convert_to_process + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /DeviceN + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + /ColorSpace[/DeviceGray]def + }if + }ifelse + }{ + currentdict + false -1 ColorSpace 1 get + { + AGMCORE_IsCurrentColor + { + 1 add + exch pop true exch exit + }if + 1 add + }forall + exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + currentdict + end exch + }if + dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not + { + exch begin + ColorSpace dup type/arraytype eq + {0 get}if + /DeviceGray ne + { + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + ColorSpace 0 get/CIEBasedA eq + { + /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def + }if + ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or + { + /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def + }if + ColorSpace 0 get/CIEBasedDEFG eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }if + currentdict 0 false AGMCORE_separateShading + }if + }if + currentdict + end exch + }if + pop + dup/AGMCORE_ignoreshade known + { + begin + /ColorSpace[/Separation(None)/DeviceGray{}]def + currentdict end + }if + }def + /shfill + { + AGMCORE_separateShadingDict + dup/AGMCORE_ignoreshade known + {pop} + {AGMCORE_&sysshfill}ifelse + }def + /makepattern + { + exch + dup/PatternType get 2 eq + { + clonedict + begin + /Shading Shading AGMCORE_separateShadingDict def + Shading/AGMCORE_ignoreshade known + currentdict end exch + {pop<>}if + exch AGMCORE_&sysmakepattern + }{ + exch AGMCORE_&usrmakepattern + }ifelse + }def + }if + }if + AGMCORE_in_rip_sep{ + /setcustomcolor + { + exch aload pop + dup 7 1 roll inRip_spot_has_ink not { + 4{4 index mul 4 1 roll} + repeat + /DeviceCMYK setcolorspace + 6 -2 roll pop pop + }{ + //Adobe_AGM_Core begin + /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf + end + [/Separation 4 -1 roll/DeviceCMYK + {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} + ] + setcolorspace + }ifelse + setcolor + }ndf + /setseparationgray + { + [/Separation(All)/DeviceGray{}]setcolorspace_opt + 1 exch sub setcolor + }ndf + }{ + /setseparationgray + { + AGMCORE_&setgray + }ndf + }ifelse + /findcmykcustomcolor + { + 5 makereadonlyarray + }ndf + /setcustomcolor + { + exch aload pop pop + 4{4 index mul 4 1 roll}repeat + setcmykcolor pop + }ndf + /has_color + /colorimage where{ + AGMCORE_producing_seps{ + pop true + }{ + systemdict eq + }ifelse + }{ + false + }ifelse + def + /map_index + { + 1 index mul exch getinterval{255 div}forall + }bdf + /map_indexed_devn + { + Lookup Names length 3 -1 roll cvi map_index + }bdf + /n_color_components + { + base_colorspace_type + dup/DeviceGray eq{ + pop 1 + }{ + /DeviceCMYK eq{ + 4 + }{ + 3 + }ifelse + }ifelse + }bdf + level2{ + /mo/moveto ldf + /li/lineto ldf + /cv/curveto ldf + /knockout_unitsq + { + 1 setgray + 0 0 1 1 rectfill + }def + level2/setcolorspace AGMCORE_key_known not and{ + /AGMCORE_&&&setcolorspace/setcolorspace ldf + /AGMCORE_ReplaceMappedColor + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + /AGMCORE_SpotAliasAry2 where{ + begin + dup 0 get dup/Separation eq + { + pop + dup length array copy + dup dup 1 get + current_spot_alias + { + dup map_alias + { + false set_spot_alias + dup 1 exch setsepcolorspace + true set_spot_alias + begin + /sep_colorspace_dict currentdict AGMCORE_gput + pop pop pop + [ + /Separation Name + CSA map_csa + MappedCSA + /sep_colorspace_proc load + ] + dup Name + end + }if + }if + map_reserved_ink_name 1 xpt + }{ + /DeviceN eq + { + dup length array copy + dup dup 1 get[ + exch{ + current_spot_alias{ + dup map_alias{ + /Name get exch pop + }if + }if + map_reserved_ink_name + }forall + ]1 xpt + }if + }ifelse + end + }if + }if + }def + /setcolorspace + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/Indexed eq + { + AGMCORE_distilling + { + /PhotoshopDuotoneList where + { + pop false + }{ + true + }ifelse + }{ + true + }ifelse + { + aload pop 3 -1 roll + AGMCORE_ReplaceMappedColor + 3 1 roll 4 array astore + }if + }{ + AGMCORE_ReplaceMappedColor + }ifelse + }if + DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if + }def + }if + }{ + /adj + { + currentstrokeadjust{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform + }if + }def + /mo{ + adj moveto + }def + /li{ + adj lineto + }def + /cv{ + 6 2 roll adj + 6 2 roll adj + 6 2 roll adj curveto + }def + /knockout_unitsq + { + 1 setgray + 8 8 1[8 0 0 8 0 0]{}image + }def + /currentstrokeadjust{ + /currentstrokeadjust AGMCORE_gget + }def + /setstrokeadjust{ + /currentstrokeadjust exch AGMCORE_gput + }def + /setcolorspace + { + /currentcolorspace exch AGMCORE_gput + }def + /currentcolorspace + { + /currentcolorspace AGMCORE_gget + }def + /setcolor_devicecolor + { + base_colorspace_type + dup/DeviceGray eq{ + pop setgray + }{ + /DeviceCMYK eq{ + setcmykcolor + }{ + setrgbcolor + }ifelse + }ifelse + }def + /setcolor + { + currentcolorspace 0 get + dup/DeviceGray ne{ + dup/DeviceCMYK ne{ + dup/DeviceRGB ne{ + dup/Separation eq{ + pop + currentcolorspace 3 gx + currentcolorspace 2 get + }{ + dup/Indexed eq{ + pop + currentcolorspace 3 get dup type/stringtype eq{ + currentcolorspace 1 get n_color_components + 3 -1 roll map_index + }{ + exec + }ifelse + currentcolorspace 1 get + }{ + /AGMCORE_cur_err/AGMCORE_invalid_color_space def + AGMCORE_invalid_color_space + }ifelse + }ifelse + }if + }if + }if + setcolor_devicecolor + }def + }ifelse + /sop/setoverprint ldf + /lw/setlinewidth ldf + /lc/setlinecap ldf + /lj/setlinejoin ldf + /ml/setmiterlimit ldf + /dsh/setdash ldf + /sadj/setstrokeadjust ldf + /gry/setgray ldf + /rgb/setrgbcolor ldf + /cmyk[ + /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx + /setcmykcolor load dup type/operatortype ne{/exec cvx}if + ]cvx bdf + level3 AGMCORE_host_sep not and{ + /nzopmsc{ + 6 dict begin + /kk exch def + /yy exch def + /mm exch def + /cc exch def + /sum 0 def + cc 0 ne{/sum sum 2#1000 or def cc}if + mm 0 ne{/sum sum 2#0100 or def mm}if + yy 0 ne{/sum sum 2#0010 or def yy}if + kk 0 ne{/sum sum 2#0001 or def kk}if + AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace + sum 0 eq{0}if + end + setcolor + }bdf + }{ + /nzopmsc/cmyk ldf + }ifelse + /sep/setsepcolor ldf + /devn/setdevicencolor ldf + /idx/setindexedcolor ldf + /colr/setcolor ldf + /csacrd/set_csa_crd ldf + /sepcs/setsepcolorspace ldf + /devncs/setdevicencolorspace ldf + /idxcs/setindexedcolorspace ldf + /cp/closepath ldf + /clp/clp_npth ldf + /eclp/eoclp_npth ldf + /f/fill ldf + /ef/eofill ldf + /@/stroke ldf + /nclp/npth_clp ldf + /gset/graphic_setup ldf + /gcln/graphic_cleanup ldf + /ct/concat ldf + /cf/currentfile ldf + /fl/filter ldf + /rs/readstring ldf + /AGMCORE_def_ht currenthalftone def + /clonedict Adobe_AGM_Utils begin/clonedict load end def + /clonearray Adobe_AGM_Utils begin/clonearray load end def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall + /getrampcolor + { + /indx exch def + 0 1 NumComp 1 sub + { + dup + Samples exch get + dup type/stringtype eq{indx get}if + exch + Scaling exch get aload pop + 3 1 roll + mul add + }for + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /sssetbackground{ + aload pop + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /RadialShade + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /r2 xdf + /c2y xdf + /c2x xdf + /r1 xdf + /c1y xdf + /c1x xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + c1x c2x eq + { + c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if + c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if + }ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax xdf + /xMax xdf + /yMin xdf + /xMin xdf + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + /max{2 copy gt{pop}{exch pop}ifelse}bdf + /min{2 copy lt{pop}{exch pop}ifelse}bdf + rampdict begin + 40 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 + { + 0 getrampcolor + c2y r2 add r1 sub 0.0001 lt + { + c1x c1y r1 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + /hires xdf + hires mul + /numpix xdf + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + np + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + }{ + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + }repeat + pop + }ifelse + ext1 + { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + }{ + c2y r1 add r2 sub 0.0001 le + { + c2x c2y r2 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + grestore + grestore + end + end + end + }ifelse + }bdf + /GenStrips + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /y2 xdf + /x2 xdf + /y1 xdf + /x1 xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + x1 x2 eq + { + y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if + x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + rampdict begin + 20 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + mul + /numpix xdf + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + ext0 + { + 0 getrampcolor + xMin xStart lt + { + xMin yMin xMin neg ySpan rectfill + }if + }if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + }repeat + pop + ext1{ + xMax xEnd gt + { + xEnd yMin xMax xEnd sub ySpan rectfill + }if + }if + grestore + grestore + end + end + end + }ifelse + }bdf +}def +/pt +{ + end +}def +/dt{ +}def +/pgsv{ + //Adobe_AGM_Core/AGMCORE_save save put +}def +/pgrs{ + //Adobe_AGM_Core/AGMCORE_save get restore +}def +systemdict/findcolorrendering known{ + /findcolorrendering systemdict/findcolorrendering get def +}if +systemdict/setcolorrendering known{ + /setcolorrendering systemdict/setcolorrendering get def +}if +/test_cmyk_color_plate +{ + gsave + setcmykcolor currentgray 1 ne + grestore +}def +/inRip_spot_has_ink +{ + dup//Adobe_AGM_Core/AGMCORE_name xddf + convert_spot_to_process not +}def +/map255_to_range +{ + 1 index sub + 3 -1 roll 255 div mul add +}def +/set_csa_crd +{ + /sep_colorspace_dict null AGMCORE_gput + begin + CSA get_csa_by_name setcolorspace_opt + set_crd + end +} +def +/map_csa +{ + currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse + {pop}{get_csa_by_name/MappedCSA xdf}ifelse +}def +/setsepcolor +{ + /sep_colorspace_dict AGMCORE_gget begin + dup/sep_tint exch AGMCORE_gput + TintProc + end +}def +/setdevicencolor +{ + /devicen_colorspace_dict AGMCORE_gget begin + Names length copy + Names length 1 sub -1 0 + { + /devicen_tints AGMCORE_gget 3 1 roll xpt + }for + TintProc + end +}def +/sep_colorspace_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + currentdict/Components known{ + Components aload pop + TintMethod/Lab eq{ + 2{AGMCORE_tmp mul NComponents 1 roll}repeat + LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll + }{ + TintMethod/Subtractive eq{ + NComponents{ + AGMCORE_tmp mul NComponents 1 roll + }repeat + }{ + NComponents{ + 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll + }repeat + }ifelse + }ifelse + }{ + ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get + aload pop + }ifelse + end +}def +/sep_colorspace_gray_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get + end +}def +/sep_proc_name +{ + dup 0 get + dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ + pop[/DeviceGray] + /sep_colorspace_gray_proc + }{ + /sep_colorspace_proc + }ifelse +}def +/setsepcolorspace +{ + current_spot_alias{ + dup begin + Name map_alias{ + exch pop + }if + end + }if + dup/sep_colorspace_dict exch AGMCORE_gput + begin + CSA map_csa + /AGMCORE_sep_special Name dup()eq exch(All)eq or store + AGMCORE_avoid_L2_sep_space{ + [/Indexed MappedCSA sep_proc_name 255 exch + {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx + ]setcolorspace_opt + /TintProc{ + 255 mul round cvi setcolor + }bdf + }{ + MappedCSA 0 get/DeviceCMYK eq + currentdict/Components known and + AGMCORE_sep_special not and{ + /TintProc[ + Components aload pop Name findcmykcustomcolor + /exch cvx/setcustomcolor cvx + ]cvx bdf + }{ + AGMCORE_host_sep Name(All)eq and{ + /TintProc{ + 1 exch sub setseparationgray + }bdf + }{ + AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and + AGMCORE_host_sep or + Name()eq and{ + /TintProc[ + MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ + cvx/setcmykcolor cvx + }{ + cvx/setgray cvx + }ifelse + ]cvx bdf + }{ + AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ + /TintProc[ + /dup cvx + MappedCSA sep_proc_name cvx exch + 0 get/DeviceGray eq{ + 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx + }if + /Name cvx/findcmykcustomcolor cvx/exch cvx + AGMCORE_host_sep{ + AGMCORE_is_cmyk_sep + /Name cvx + /AGMCORE_IsSeparationAProcessColor load/exec cvx + /not cvx/and cvx + }{ + Name inRip_spot_has_ink not + }ifelse + [ + /pop cvx 1 + ]cvx/if cvx + /setcustomcolor cvx + ]cvx bdf + }{ + /TintProc{setcolor}bdf + [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt + }ifelse + }ifelse + }ifelse + }ifelse + }ifelse + set_crd + setsepcolor + end +}def +/additive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 + 0 1 numarrays 1 sub + { + 1 exch add/index cvx + c1/get cvx/mul cvx + }for + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/subtractive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 1 + 0 1 numarrays 1 sub + { + 1 3 3 -1 roll add/index cvx + c1/get cvx/sub cvx/mul cvx + }for + /sub cvx + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/exec_tint_transform +{ + /TintProc[ + /TintTransform cvx/setcolor cvx + ]cvx bdf + MappedCSA setcolorspace_opt +}bdf +/devn_makecustomcolor +{ + 2 dict begin + /names_index xdf + /Names xdf + 1 1 1 1 Names names_index get findcmykcustomcolor + /devicen_tints AGMCORE_gget names_index get setcustomcolor + Names length{pop}repeat + end +}bdf +/setdevicencolorspace +{ + dup/AliasedColorants known{false}{true}ifelse + current_spot_alias and{ + 7 dict begin + /names_index 0 def + dup/names_len exch/Names get length def + /new_names names_len array def + /new_LookupTables names_len array def + /alias_cnt 0 def + dup/Names get + { + dup map_alias{ + exch pop + dup/ColorLookup known{ + dup begin + new_LookupTables names_index ColorLookup put + end + }{ + dup/Components known{ + dup begin + new_LookupTables names_index Components put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + new_names names_index 3 -1 roll/Name get put + /alias_cnt alias_cnt 1 add def + }{ + /name xdf + new_names names_index name put + dup/LookupTables known{ + dup begin + new_LookupTables names_index LookupTables names_index get put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + /names_index names_index 1 add def + }forall + alias_cnt 0 gt{ + /AliasedColorants true def + /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def + 0 1 names_len 1 sub{ + /names_index xdf + new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ + /AliasedColorants false def + exit + }{ + new_LookupTables names_index get 0 get null eq{ + dup/Names get names_index get/name xdf + name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq + or or or not{ + /AliasedColorants false def + exit + }if + }if + }ifelse + }for + lut_entry_len 1 eq{ + /AliasedColorants false def + }if + AliasedColorants{ + dup begin + /Names new_names def + /LookupTables new_LookupTables def + /AliasedColorants true def + /NComponents lut_entry_len def + /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def + /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def + currentdict/TTTablesIdx known not{ + /TTTablesIdx -1 def + }if + end + }if + }if + end + }if + dup/devicen_colorspace_dict exch AGMCORE_gput + begin + currentdict/AliasedColorants known{ + AliasedColorants + }{ + false + }ifelse + dup not{ + CSA map_csa + }if + /TintTransform load type/nulltype eq or{ + /TintTransform[ + 0 1 Names length 1 sub + { + /TTTablesIdx TTTablesIdx 1 add def + dup LookupTables exch get dup 0 get null eq + { + 1 index + Names exch get + dup(Cyan)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0 0 0 + } + { + dup(Magenta)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0/exch cvx 0 0 + }{ + (Yellow)eq + { + exch + LookupTables length exch sub + /index cvx + 0 0 3 -1/roll cvx 0 + }{ + exch + LookupTables length exch sub + /index cvx + 0 0 0 4 -1/roll cvx + }ifelse + }ifelse + }ifelse + 5 -1/roll cvx/astore cvx + }{ + dup length 1 sub + LookupTables length 4 -1 roll sub 1 add + /index cvx/mul cvx/round cvx/cvi cvx/get cvx + }ifelse + Names length TTTablesIdx add 1 add 1/roll cvx + }for + Names length[/pop cvx]cvx/repeat cvx + NComponents Names length + TintMethod/Subtractive eq + { + subtractive_blend + }{ + additive_blend + }ifelse + ]cvx bdf + }if + AGMCORE_host_sep{ + Names convert_to_process{ + exec_tint_transform + } + { + currentdict/AliasedColorants known{ + AliasedColorants not + }{ + false + }ifelse + 5 dict begin + /AvoidAliasedColorants xdf + /painted? false def + /names_index 0 def + /names_len Names length def + AvoidAliasedColorants{ + /currentspotalias current_spot_alias def + false set_spot_alias + }if + Names{ + AGMCORE_is_cmyk_sep{ + dup(Cyan)eq AGMCORE_cyan_plate and exch + dup(Magenta)eq AGMCORE_magenta_plate and exch + dup(Yellow)eq AGMCORE_yellow_plate and exch + (Black)eq AGMCORE_black_plate and or or or{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + }if + painted?{exit}if + }{ + 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + exit + }if + }ifelse + /names_index names_index 1 add def + }forall + AvoidAliasedColorants{ + currentspotalias set_spot_alias + }if + painted?{ + /devicen_colorspace_dict AGMCORE_gget/names_index names_index put + }{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx + 0 0 0 0/setcmykcolor cvx + ]cvx ddf + }ifelse + end + }ifelse + } + { + AGMCORE_in_rip_sep{ + Names convert_to_process not + }{ + level3 + }ifelse + { + [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt + /TintProc level3 not AGMCORE_in_rip_sep and{ + [ + Names/length cvx[/pop cvx]cvx/repeat cvx + ]cvx bdf + }{ + {setcolor}bdf + }ifelse + }{ + exec_tint_transform + }ifelse + }ifelse + set_crd + /AliasedColorants false def + end +}def +/setindexedcolorspace +{ + dup/indexed_colorspace_dict exch AGMCORE_gput + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + currentdict devncs + }{ + 1 currentdict sepcs + }ifelse + AGMCORE_host_sep{ + 4 dict begin + /compCnt/Names where{pop Names length}{1}ifelse def + /NewLookup HiVal 1 add string def + 0 1 HiVal{ + /tableIndex xdf + Lookup dup type/stringtype eq{ + compCnt tableIndex map_index + }{ + exec + }ifelse + /Names where{ + pop setdevicencolor + }{ + setsepcolor + }ifelse + currentgray + tableIndex exch + 255 mul cvi + NewLookup 3 1 roll put + }for + [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt + end + }{ + level3 + { + currentdict/Names known{ + [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt + }{ + [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt + }ifelse + }{ + [/Indexed MappedCSA HiVal + [ + currentdict/Names known{ + Lookup dup type/stringtype eq + {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} + {/exec cvx}ifelse + /TintTransform load/exec cvx + }{ + Lookup dup type/stringtype eq + {/exch cvx/get cvx 255/div cvx} + {/exec cvx}ifelse + CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx + }ifelse + ]cvx + ]setcolorspace_opt + }ifelse + }ifelse + end + set_crd + } + { + CSA map_csa + AGMCORE_host_sep level2 not and{ + 0 0 0 0 setcmykcolor + }{ + [/Indexed MappedCSA + level2 not has_color not and{ + dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ + pop[/DeviceGray] + }if + HiVal GrayLookup + }{ + HiVal + currentdict/RangeArray known{ + { + /indexed_colorspace_dict AGMCORE_gget begin + Lookup exch + dup HiVal gt{ + pop HiVal + }if + NComponents mul NComponents getinterval{}forall + NComponents 1 sub -1 0{ + RangeArray exch 2 mul 2 getinterval aload pop map255_to_range + NComponents 1 roll + }for + end + }bind + }{ + Lookup + }ifelse + }ifelse + ]setcolorspace_opt + set_crd + }ifelse + }ifelse + end +}def +/setindexedcolor +{ + AGMCORE_host_sep{ + /indexed_colorspace_dict AGMCORE_gget + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + map_indexed_devn + devn + } + { + Lookup 1 3 -1 roll map_index + sep + }ifelse + end + }{ + Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll + map_index + MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse + }ifelse + end + }{ + level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ + /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin + map_indexed_devn + devn + end + } + { + setcolor + }ifelse + }ifelse +}def +/ignoreimagedata +{ + currentoverprint not{ + gsave + dup clonedict begin + 1 setgray + /Decode[0 1]def + /DataSourcedef + /MultipleDataSources false def + /BitsPerComponent 8 def + currentdict end + systemdict/image gx + grestore + }if + consumeimagedata +}def +/add_res +{ + dup/CSD eq{ + pop + //Adobe_AGM_Core begin + /AGMCORE_CSD_cache load 3 1 roll put + end + }{ + defineresource pop + }ifelse +}def +/del_res +{ + { + aload pop exch + dup/CSD eq{ + pop + {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall + }{ + exch + {1 index undefineresource}forall + pop + }ifelse + }forall +}def +/get_res +{ + dup/CSD eq{ + pop + dup type dup/nametype eq exch/stringtype eq or{ + AGMCORE_CSD_cache exch get + }if + }{ + findresource + }ifelse +}def +/get_csa_by_name +{ + dup type dup/nametype eq exch/stringtype eq or{ + /CSA get_res + }if +}def +/paintproc_buf_init +{ + /count get 0 0 put +}def +/paintproc_buf_next +{ + dup/count get dup 0 get + dup 3 1 roll + 1 add 0 xpt + get +}def +/cachepaintproc_compress +{ + 5 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + /string_size 16000 def + /readbuffer string_size string def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + /LZWFilter + { + exch + dup length 0 eq{ + pop + }{ + ppdict dup length 1 sub 3 -1 roll put + }ifelse + {string_size}{0}ifelse string + }/LZWEncode filter def + { + ReadFilter readbuffer readstring + exch LZWFilter exch writestring + not{exit}if + }loop + LZWFilter closefile + ppdict + end +}def +/cachepaintproc +{ + 2 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + { + ReadFilter 16000 string readstring exch + ppdict dup length 1 sub 3 -1 roll put + not{exit}if + }loop + ppdict dup dup length 1 sub()put + end +}def +/make_pattern +{ + exch clonedict exch + dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform + exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub + exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub + matrix translate exch matrix concatmatrix + 1 index begin + BBox 0 get XStep div cvi XStep mul/xshift exch neg def + BBox 1 get YStep div cvi YStep mul/yshift exch neg def + BBox 0 get xshift add + BBox 1 get yshift add + BBox 2 get xshift add + BBox 3 get yshift add + 4 array astore + /BBox exch def + [xshift yshift/translate load null/exec load]dup + 3/PaintProc load put cvx/PaintProc exch def + end + gsave 0 setgray + makepattern + grestore +}def +/set_pattern +{ + dup/PatternType get 1 eq{ + dup/PaintType get 1 eq{ + currentoverprint sop[/DeviceGray]setcolorspace 0 setgray + }if + }if + setpattern +}def +/setcolorspace_opt +{ + dup currentcolorspace eq{pop}{setcolorspace}ifelse +}def +/updatecolorrendering +{ + currentcolorrendering/RenderingIntent known{ + currentcolorrendering/RenderingIntent get + } + { + Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/Saturation eq + { + /saturation_crd AGMCORE_gget dup null eq + } + { + /perceptual_crd AGMCORE_gget dup null eq + }ifelse + }ifelse + }ifelse + { + pop null + } + { + /RenderingIntent known{null}{Intent}ifelse + }ifelse + }ifelse + Intent ne{ + Intent/ColorRendering{findresource}stopped + { + pop pop systemdict/findcolorrendering known + { + Intent findcolorrendering + { + /ColorRendering findresource true exch + } + { + /ColorRendering findresource + product(Xerox Phaser 5400)ne + exch + }ifelse + dup Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd exch AGMCORE_gput + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd exch AGMCORE_gput + } + { + Intent/Saturation eq + { + /saturation_crd exch AGMCORE_gput + } + { + Intent/Perceptual eq + { + /perceptual_crd exch AGMCORE_gput + } + { + pop + }ifelse + }ifelse + }ifelse + }ifelse + 1 index{exch}{pop}ifelse + } + {false}ifelse + } + {true}ifelse + { + dup begin + currentdict/TransformPQR known{ + currentdict/TransformPQR get aload pop + 3{{}eq 3 1 roll}repeat or or + } + {true}ifelse + currentdict/MatrixPQR known{ + currentdict/MatrixPQR get aload pop + 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq + and and and and and and and and + } + {true}ifelse + end + or + { + clonedict begin + /TransformPQR[ + {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div + 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind + {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div + 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind + {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div + 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind + ]def + /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def + /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def + currentdict end + }if + setcolorrendering_opt + }if + }if +}def +/set_crd +{ + AGMCORE_host_sep not level2 and{ + currentdict/ColorRendering known{ + ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if + }{ + currentdict/Intent known{ + updatecolorrendering + }if + }ifelse + currentcolorspace dup type/arraytype eq + {0 get}if + /DeviceRGB eq + { + currentdict/UCR known + {/UCR}{/AGMCORE_currentucr}ifelse + load setundercolorremoval + currentdict/BG known + {/BG}{/AGMCORE_currentbg}ifelse + load setblackgeneration + }if + }if +}def +/set_ucrbg +{ + dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration + dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval +}def +/setcolorrendering_opt +{ + dup currentcolorrendering eq{ + pop + }{ + clonedict + begin + /Intent Intent def + currentdict + end + setcolorrendering + }ifelse +}def +/cpaint_gcomp +{ + convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not + { + (%end_cpaint_gcomp)flushinput + }if +}def +/cpaint_gsep +{ + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get + { + (%end_cpaint_gsep)flushinput + }if +}def +/cpaint_gend +{np}def +/T1_path +{ + currentfile token pop currentfile token pop mo + { + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 exch rlineto + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 rlineto + }loop +}def +/T1_gsave + level3 + {/clipsave} + {/gsave}ifelse + load def +/T1_grestore + level3 + {/cliprestore} + {/grestore}ifelse + load def +/set_spot_alias_ary +{ + dup inherit_aliases + //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf +}def +/set_spot_normalization_ary +{ + dup inherit_aliases + dup length + /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if + array + //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf + /AGMCORE_SpotAliasAry where{ + pop + AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval + AGMCORE_SpotAliasAry length + }{0}ifelse + AGMCORE_SpotAliasAry2 3 1 roll exch putinterval + true set_spot_alias +}def +/inherit_aliases +{ + {dup/Name get map_alias{/CSD put}{pop}ifelse}forall +}def +/set_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias 3 -1 roll put + }{ + pop + }ifelse +}def +/current_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias get + }{ + false + }ifelse +}def +/map_alias +{ + /AGMCORE_SpotAliasAry2 where{ + begin + /AGMCORE_name xdf + false + AGMCORE_SpotAliasAry2{ + dup/Name get AGMCORE_name eq{ + /CSD get/CSD get_res + exch pop true + exit + }{ + pop + }ifelse + }forall + end + }{ + pop false + }ifelse +}bdf +/spot_alias +{ + true set_spot_alias + /AGMCORE_&setcustomcolor AGMCORE_key_known not{ + //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put + }if + /customcolor_tint 1 AGMCORE_gput + //Adobe_AGM_Core begin + /setcustomcolor + { + //Adobe_AGM_Core begin + dup/customcolor_tint exch AGMCORE_gput + 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not + current_spot_alias and{1 index 4 get map_alias}{false}ifelse + { + false set_spot_alias + /sep_colorspace_dict AGMCORE_gget null ne + 3 1 roll 2 index{ + exch pop/sep_tint AGMCORE_gget exch + }if + mark 3 1 roll + setsepcolorspace + counttomark 0 ne{ + setsepcolor + }if + pop + not{/sep_tint 1.0 AGMCORE_gput}if + pop + true set_spot_alias + }{ + AGMCORE_&setcustomcolor + }ifelse + end + }bdf + end +}def +/begin_feature +{ + Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put + count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put + {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if +}def +/end_feature +{ + 2 dict begin + /spd/setpagedevice load def + /setpagedevice{get_gstate spd set_gstate}def + stopped{$error/newerror false put}if + end + count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse + countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse + {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if +}def +/set_negative +{ + //Adobe_AGM_Core begin + /AGMCORE_inverting exch def + level2{ + currentpagedevice/NegativePrint known AGMCORE_distilling not and{ + currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ + true begin_feature true{ + <>setpagedevice + }end_feature + }if + /AGMCORE_inverting false def + }if + }if + AGMCORE_inverting{ + [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer + AGMCORE_distilling{ + erasepage + }{ + gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse + /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore + }ifelse + }if + end +}def +/lw_save_restore_override{ + /md where{ + pop + md begin + initializepage + /initializepage{}def + /pmSVsetup{}def + /endp{}def + /pse{}def + /psb{}def + /orig_showpage where + {pop} + {/orig_showpage/showpage load def} + ifelse + /showpage{orig_showpage gR}def + end + }if +}def +/pscript_showpage_override{ + /NTPSOct95 where + { + begin + showpage + save + /showpage/restore load def + /restore{exch pop}def + end + }if +}def +/driver_media_override +{ + /md where{ + pop + md/initializepage known{ + md/initializepage{}put + }if + md/rC known{ + md/rC{4{pop}repeat}put + }if + }if + /mysetup where{ + /mysetup[1 0 0 1 0 0]put + }if + Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put + level2 + {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if +}def +/driver_check_media_override +{ + /PrepsDict where + {pop} + { + Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne + Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and + Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and + }if + { + Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix + }if + }ifelse +}def +AGMCORE_err_strings begin + /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def + /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def + /AGMCORE_invalid_color_space(This job contains an invalid color space. )def +end +/set_def_ht +{AGMCORE_def_ht sethalftone}def +/set_def_flat +{AGMCORE_Default_flatness setflat}def +end +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Image 71 dict dup begin put +/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def +/nd{ + null def +}bind def +/AGMIMG_&image nd +/AGMIMG_&colorimage nd +/AGMIMG_&imagemask nd +/AGMIMG_mbuf()def +/AGMIMG_ybuf()def +/AGMIMG_kbuf()def +/AGMIMG_c 0 def +/AGMIMG_m 0 def +/AGMIMG_y 0 def +/AGMIMG_k 0 def +/AGMIMG_tmp nd +/AGMIMG_imagestring0 nd +/AGMIMG_imagestring1 nd +/AGMIMG_imagestring2 nd +/AGMIMG_imagestring3 nd +/AGMIMG_imagestring4 nd +/AGMIMG_imagestring5 nd +/AGMIMG_cnt nd +/AGMIMG_fsave nd +/AGMIMG_colorAry nd +/AGMIMG_override nd +/AGMIMG_name nd +/AGMIMG_maskSource nd +/AGMIMG_flushfilters nd +/invert_image_samples nd +/knockout_image_samples nd +/img nd +/sepimg nd +/devnimg nd +/idximg nd +/ds +{ + Adobe_AGM_Core begin + Adobe_AGM_Image begin + /AGMIMG_&image systemdict/image get def + /AGMIMG_&imagemask systemdict/imagemask get def + /colorimage where{ + pop + /AGMIMG_&colorimage/colorimage ldf + }if + end + end +}def +/ps +{ + Adobe_AGM_Image begin + /AGMIMG_ccimage_exists{/customcolorimage where + { + pop + /Adobe_AGM_OnHost_Seps where + { + pop false + }{ + /Adobe_AGM_InRip_Seps where + { + pop false + }{ + true + }ifelse + }ifelse + }{ + false + }ifelse + }bdf + level2{ + /invert_image_samples + { + Adobe_AGM_Image/AGMIMG_tmp Decode length ddf + /Decode[Decode 1 get Decode 0 get]def + }def + /knockout_image_samples + { + Operator/imagemask ne{ + /Decode[1 1]def + }if + }def + }{ + /invert_image_samples + { + {1 exch sub}currenttransfer addprocs settransfer + }def + /knockout_image_samples + { + {pop 1}currenttransfer addprocs settransfer + }def + }ifelse + /img/imageormask ldf + /sepimg/sep_imageormask ldf + /devnimg/devn_imageormask ldf + /idximg/indexed_imageormask ldf + /_ctype 7 def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall +}def +/pt +{ + end +}def +/dt +{ +}def +/AGMIMG_flushfilters +{ + dup type/arraytype ne + {1 array astore}if + dup 0 get currentfile ne + {dup 0 get flushfile}if + { + dup type/filetype eq + { + dup status 1 index currentfile ne and + {closefile} + {pop} + ifelse + }{pop}ifelse + }forall +}def +/AGMIMG_init_common +{ + currentdict/T known{/ImageType/T ldf currentdict/T undef}if + currentdict/W known{/Width/W ldf currentdict/W undef}if + currentdict/H known{/Height/H ldf currentdict/H undef}if + currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if + currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if + currentdict/D known{/Decode/D ldf currentdict/D undef}if + currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if + currentdict/O known{ + /Operator/O load 1 eq{ + /imagemask + }{ + /O load 2 eq{ + /image + }{ + /colorimage + }ifelse + }ifelse + def + currentdict/O undef + }if + currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if + currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if + currentdict/I known{/Interpolate/I ldf currentdict/I undef}if + currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if + /DataSource load xcheck not{ + DataSource type/arraytype eq{ + DataSource 0 get type/filetype eq{ + /_Filters DataSource def + currentdict/MultipleDataSources known not{ + /DataSource DataSource dup length 1 sub get def + }if + }if + }if + currentdict/MultipleDataSources known not{ + /MultipleDataSources DataSource type/arraytype eq{ + DataSource length 1 gt + } + {false}ifelse def + }if + }if + /NComponents Decode length 2 div def + currentdict/SkipImageProc known not{/SkipImageProc{false}def}if +}bdf +/imageormask_sys +{ + begin + AGMIMG_init_common + save mark + level2{ + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + AGMIMG_&imagemask + }{ + BitsPerComponent ImageMatrix/DataSource load + AGMIMG_&image + }ifelse + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + cleartomark restore + end +}def +/overprint_plate +{ + currentoverprint{ + 0 get dup type/nametype eq{ + dup/DeviceGray eq{ + pop AGMCORE_black_plate not + }{ + /DeviceCMYK eq{ + AGMCORE_is_cmyk_sep not + }if + }ifelse + }{ + false exch + { + AGMOHS_sepink eq or + }forall + not + }ifelse + }{ + pop false + }ifelse +}def +/process_mask +{ + level3{ + dup begin + /ImageType 1 def + end + 4 dict begin + /DataDict exch def + /ImageType 3 def + /InterleaveType 3 def + /MaskDict 9 dict begin + /ImageType 1 def + /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def + /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def + /ImageMatrix[Width 0 0 Height neg 0 Height]def + /NComponents 1 def + /BitsPerComponent 1 def + /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def + /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def + currentdict end def + currentdict end + }if +}def +/use_mask +{ + dup/Mask known {dup/Mask get}{false}ifelse +}def +/imageormask +{ + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + } + { + save mark + level2 AGMCORE_host_sep not and{ + currentdict + Operator/imagemask eq DeviceN_PS2 not and{ + imagemask + }{ + AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ + [/Separation/Black/DeviceGray{}]setcolorspace + /Decode[Decode 1 get Decode 0 get]def + }if + use_mask{ + process_mask image + }{ + DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and + { + Names convert_to_process not{ + 2 dict begin + /imageDict xdf + /names_index 0 def + gsave + imageDict write_image_file{ + Names{ + dup(None)ne{ + [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace + Operator imageDict read_image_file + names_index 0 eq{true setoverprint}if + /names_index names_index 1 add def + }{ + pop + }ifelse + }forall + close_image_file + }if + grestore + end + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + /Adobe_AGM_OnHost_Seps where{ + pop imagemask + }{ + currentgray 1 ne{ + currentdict imageormask_sys + }{ + currentoverprint not{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }ifelse + }{ + BitsPerComponent ImageMatrix + MultipleDataSources{ + 0 1 NComponents 1 sub{ + DataSource exch get + }for + }{ + /DataSource load + }ifelse + Operator/colorimage eq{ + AGMCORE_host_sep{ + MultipleDataSources level2 or NComponents 4 eq and{ + AGMCORE_is_cmyk_sep{ + MultipleDataSources{ + /DataSource DataSource 0 get xcheck + { + [ + DataSource 0 get/exec cvx + DataSource 1 get/exec cvx + DataSource 2 get/exec cvx + DataSource 3 get/exec cvx + /AGMCORE_get_ink_data cvx + ]cvx + }{ + DataSource aload pop AGMCORE_get_ink_data + }ifelse def + }{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + /DataSource load + filter_cmyk 0()/SubFileDecode filter def + }ifelse + /Decode[Decode 0 get Decode 1 get]def + /MultipleDataSources false def + /NComponents 1 def + /Operator/image def + invert_image_samples + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }{ + MultipleDataSources NComponents AGMIMG_&colorimage + }ifelse + }{ + true NComponents colorimage + }ifelse + }{ + Operator/image eq{ + AGMCORE_host_sep{ + /DoImage true def + currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse + { + AGMCORE_black_plate not Operator/imagemask ne and{ + /DoImage false def + currentdict ignoreimagedata + }if + }if + 1 AGMCORE_&setgray + DoImage + {currentdict imageormask_sys}if + }{ + use_mask{ + process_mask image + }{ + image + }ifelse + }ifelse + }{ + Operator/knockout eq{ + pop pop pop pop pop + currentcolorspace overprint_plate not{ + knockout_unitsq + }if + }if + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/sep_imageormask +{ + /sep_colorspace_dict AGMCORE_gget begin + CSA map_csa + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_avoid_L2_sep_space{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + }if + AGMIMG_ccimage_exists + MappedCSA 0 get/DeviceCMYK eq and + currentdict/Components known and + Name()ne and + Name(All)ne and + Operator/image eq and + AGMCORE_producing_seps not and + level2 not and + { + Width Height BitsPerComponent ImageMatrix + [ + /DataSource load/exec cvx + { + 0 1 2 index length 1 sub{ + 1 index exch + 2 copy get 255 xor put + }for + }/exec cvx + ]cvx bind + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Name findcmykcustomcolor + customcolorimage + }{ + AGMCORE_producing_seps not{ + level2{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ + [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + currentdict imageormask + }{ + currentdict + Operator/imagemask eq{ + imageormask + }{ + sep_imageormask_lev1 + }ifelse + }ifelse + }{ + AGMCORE_host_sep{ + Operator/knockout eq{ + currentdict/ImageMatrix get concat + knockout_unitsq + }{ + currentgray 1 ne{ + AGMCORE_is_cmyk_sep Name(All)ne and{ + level2{ + Name AGMCORE_IsSeparationAProcessColor + { + Operator/imagemask eq{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor + }if + }{ + invert_image_samples + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + [/Separation Name[/DeviceGray] + { + sep_colorspace_proc AGMCORE_get_ink_data + 1 exch sub + }bind + ]AGMCORE_&setcolorspace + /sep_tint AGMCORE_gget AGMCORE_&setcolor + }if + }ifelse + currentdict imageormask_sys + }{ + currentdict + Operator/imagemask eq{ + imageormask_sys + }{ + sep_image_lev1_sep + }ifelse + }ifelse + }{ + Operator/imagemask ne{ + invert_image_samples + }if + currentdict imageormask_sys + }ifelse + }{ + currentoverprint not Name(All)eq or Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + currentcolorspace 0 get/Separation ne{ + [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + }if + currentoverprint + MappedCSA 0 get/DeviceCMYK eq and + Name AGMCORE_IsSeparationAProcessColor not and + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse + Name(All)ne and{ + imageormask_l2_overprint + }{ + currentdict imageormask + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end +}def +/colorSpaceElemCnt +{ + mark currentcolor counttomark dup 2 add 1 roll cleartomark +}bdf +/devn_sep_datasource +{ + 1 dict begin + /dataSource xdf + [ + 0 1 dataSource length 1 sub{ + dup currentdict/dataSource get/exch cvx/get cvx/exec cvx + /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx + }for + ]cvx bind + end +}bdf +/devn_alt_datasource +{ + 11 dict begin + /convProc xdf + /origcolorSpaceElemCnt xdf + /origMultipleDataSources xdf + /origBitsPerComponent xdf + /origDecode xdf + /origDataSource xdf + /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def + /DataSource origMultipleDataSources + { + [ + BitsPerComponent 8 idiv origDecode length 2 idiv mul string + 0 1 origDecode length 2 idiv 1 sub + { + dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch + origDataSource exch get 0()/SubFileDecode filter + BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx + }for + ]bind cvx + }{origDataSource}ifelse 0()/SubFileDecode filter def + [ + origcolorSpaceElemCnt string + 0 2 origDecode length 2 sub + { + dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div + 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx + }for + /convProc load/exec cvx + origcolorSpaceElemCnt 1 sub -1 0 + { + /dup cvx 2/add cvx/index cvx + 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx + }for + ]bind cvx 0()/SubFileDecode filter + end +}bdf +/devn_imageormask +{ + /devicen_colorspace_dict AGMCORE_gget begin + CSA map_csa + 2 dict begin + dup + /srcDataStrs[3 -1 roll begin + AGMIMG_init_common + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi + { + dup 65535 gt{1 add 2 div cvi}{exit}ifelse + }loop + string + }repeat + end]def + /dstDataStr srcDataStrs 0 get length string def + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_producing_seps not{ + level3 not{ + Operator/imagemask ne{ + /DataSource[[ + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def + /MultipleDataSources true def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + }if + }if + currentdict imageormask + }{ + AGMCORE_host_sep{ + Names convert_to_process{ + CSA get_csa_by_name 0 get/DeviceCMYK eq{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + filter_cmyk 0()/SubFileDecode filter def + /MultipleDataSources false def + /Decode[1 0]def + /DeviceGray setcolorspace + currentdict imageormask_sys + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate{ + /DataSource + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + /MultipleDataSources false def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + currentdict imageormask_sys + }{ + gsave + knockout_unitsq + grestore + currentdict consumeimagedata + }ifelse + }ifelse + } + { + /devicen_colorspace_dict AGMCORE_gget/names_index known{ + Operator/imagemask ne{ + MultipleDataSources{ + /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def + /MultipleDataSources false def + }{ + /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def + }ifelse + invert_image_samples + }if + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + currentdict imageormask + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end + end +}def +/imageormask_l2_overprint +{ + currentdict + currentcmykcolor add add add 0 eq{ + currentdict consumeimagedata + }{ + level3{ + currentcmykcolor + /AGMIMG_k xdf + /AGMIMG_y xdf + /AGMIMG_m xdf + /AGMIMG_c xdf + Operator/imagemask eq{ + [/DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ]/DeviceCMYK{}]setcolorspace + AGMIMG_c 0 ne{AGMIMG_c}if + AGMIMG_m 0 ne{AGMIMG_m}if + AGMIMG_y 0 ne{AGMIMG_y}if + AGMIMG_k 0 ne{AGMIMG_k}if + setcolor + }{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + [/Indexed + [ + /DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ] + /DeviceCMYK{ + AGMIMG_k 0 eq{0}if + AGMIMG_y 0 eq{0 exch}if + AGMIMG_m 0 eq{0 3 1 roll}if + AGMIMG_c 0 eq{0 4 1 roll}if + } + ] + 255 + { + 255 div + mark exch + dup dup dup + AGMIMG_k 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_y 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_m 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_c 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + counttomark 1 add -1 roll pop + } + ]setcolorspace + }ifelse + imageormask_sys + }{ + write_image_file{ + currentcmykcolor + 0 ne{ + [/Separation/Black/DeviceGray{}]setcolorspace + gsave + /Black + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Yellow/DeviceGray{}]setcolorspace + gsave + /Yellow + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Magenta/DeviceGray{}]setcolorspace + gsave + /Magenta + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Cyan/DeviceGray{}]setcolorspace + gsave + /Cyan + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + close_image_file + }{ + imageormask + }ifelse + }ifelse + }ifelse +}def +/indexed_imageormask +{ + begin + AGMIMG_init_common + save mark + currentdict + AGMCORE_host_sep{ + Operator/knockout eq{ + /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ + /CSA get get_csa_by_name + }{ + /Names get + }ifelse + overprint_plate not{ + knockout_unitsq + }if + }{ + Indexed_DeviceN{ + /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ + indexed_image_lev2_sep + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }{ + AGMCORE_is_cmyk_sep{ + Operator/imagemask eq{ + imageormask_sys + }{ + level2{ + indexed_image_lev2_sep + }{ + indexed_image_lev1_sep + }ifelse + }ifelse + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + level2{ + Indexed_DeviceN{ + /indexed_colorspace_dict AGMCORE_gget begin + }{ + /indexed_colorspace_dict AGMCORE_gget dup null ne + { + begin + currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse + get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and + AGMCORE_in_rip_sep and{ + [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] + setcolorspace + }if + end + } + {pop}ifelse + }ifelse + imageormask + Indexed_DeviceN{ + end + }if + }{ + Operator/imagemask eq{ + imageormask + }{ + indexed_imageormask_lev1 + }ifelse + }ifelse + }ifelse + cleartomark restore + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/indexed_image_lev2_sep +{ + /indexed_colorspace_dict AGMCORE_gget begin + begin + Indexed_DeviceN not{ + currentcolorspace + dup 1/DeviceGray put + dup 3 + currentcolorspace 2 get 1 add string + 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub + { + dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put + }for + put setcolorspace + }if + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + end end +}def + /OPIimage + { + dup type/dicttype ne{ + 10 dict begin + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /ImageType 1 def + /Decode[0 1 def] + currentdict + end + }if + dup begin + /NComponents 1 cdndf + /MultipleDataSources false cdndf + /SkipImageProc{false}cdndf + /Decode[ + 0 + currentcolorspace 0 get/Indexed eq{ + 2 BitsPerComponent exp 1 sub + }{ + 1 + }ifelse + ]cdndf + /Operator/image cdndf + end + /sep_colorspace_dict AGMCORE_gget null eq{ + imageormask + }{ + gsave + dup begin invert_image_samples end + sep_imageormask + grestore + }ifelse + }def +/cachemask_level2 +{ + 3 dict begin + /LZWEncode filter/WriteFilter xdf + /readBuffer 256 string def + /ReadFilter + currentfile + 0(%EndMask)/SubFileDecode filter + /ASCII85Decode filter + /RunLengthDecode filter + def + { + ReadFilter readBuffer readstring exch + WriteFilter exch writestring + not{exit}if + }loop + WriteFilter closefile + end +}def +/spot_alias +{ + /mapto_sep_imageormask + { + dup type/dicttype ne{ + 12 dict begin + /ImageType 1 def + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /MultipleDataSources false def + }{ + begin + }ifelse + /Decode[/customcolor_tint AGMCORE_gget 0]def + /Operator/image def + /SkipImageProc{false}def + currentdict + end + sep_imageormask + }bdf + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_colorAry xddf + /customcolor_tint AGMCORE_gget + << + /Name AGMIMG_colorAry 4 get + /CSA[/DeviceCMYK] + /TintMethod/Subtractive + /TintProc null + /MappedCSA null + /NComponents 4 + /Components[AGMIMG_colorAry aload pop pop] + >> + setsepcolorspace + mapto_sep_imageormask + }ndf + Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_override false put + current_spot_alias{dup 4 get map_alias}{false}ifelse + { + false set_spot_alias + /customcolor_tint AGMCORE_gget exch setsepcolorspace + pop + mapto_sep_imageormask + true set_spot_alias + }{ + //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec + }ifelse + }bdf +}def +/snap_to_device +{ + 6 dict begin + matrix currentmatrix + dup 0 get 0 eq 1 index 3 get 0 eq and + 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop + { + 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def + 0 0 transform + AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + itransform/AGMIMG_llY exch def/AGMIMG_llX exch def + 1 1 transform + AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + itransform/AGMIMG_urY exch def/AGMIMG_urX exch def + [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat + }{ + }ifelse + end +}def +level2 not{ + /colorbuf + { + 0 1 2 index length 1 sub{ + dup 2 index exch get + 255 exch sub + 2 index + 3 1 roll + put + }for + }def + /tint_image_to_color + { + begin + Width Height BitsPerComponent ImageMatrix + /DataSource load + end + Adobe_AGM_Image begin + /AGMIMG_mbuf 0 string def + /AGMIMG_ybuf 0 string def + /AGMIMG_kbuf 0 string def + { + colorbuf dup length AGMIMG_mbuf length ne + { + dup length dup dup + /AGMIMG_mbuf exch string def + /AGMIMG_ybuf exch string def + /AGMIMG_kbuf exch string def + }if + dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop + } + addprocs + {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage + end + }def + /sep_imageormask_lev1 + { + begin + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + { + 255 mul round cvi GrayLookup exch get + }currenttransfer addprocs settransfer + currentdict imageormask + }{ + /sep_colorspace_dict AGMCORE_gget/Components known{ + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ + {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer + currentdict imageormask + }{ + currentcolortransfer + {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }{ + MappedCSA 0 get/DeviceGray eq{ + {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer + currentdict imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + /sep_image_lev1_sep + { + begin + /sep_colorspace_dict AGMCORE_gget/Components known{ + Components aload pop + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + {AGMIMG_c mul 1 exch sub} + {AGMIMG_m mul 1 exch sub} + {AGMIMG_y mul 1 exch sub} + {AGMIMG_k mul 1 exch sub} + }{ + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} + }ifelse + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end + }def + /indexed_imageormask_lev1 + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + currentdict + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceGray eq{ + {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }ifelse + }ifelse + }ifelse + end end + }def + /indexed_image_lev1_sep + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end end + }def +}if +end +systemdict/setpacking known +{setpacking}if +%%EndResource +currentdict Adobe_AGM_Utils eq {end} if +%%EndProlog +%%BeginSetup +Adobe_AGM_Utils begin +2 2010 Adobe_AGM_Core/ds gx +Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx +currentdict Adobe_AGM_Utils eq {end} if +%%EndSetup +%%Page: (Page 1) 1 +%%EndPageComments +%%BeginPageSetup +%ADOBeginClientInjection: PageSetup Start "AI11EPS" +%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 +%ADOEndClientInjection: PageSetup Start "AI11EPS" +Adobe_AGM_Utils begin +Adobe_AGM_Core/ps gx +Adobe_AGM_Utils/capture_cpd gx +Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx +%ADOBeginClientInjection: PageSetup End "AI11EPS" +/currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 + + + + application/postscript + + + Adobe Illustrator CS3 + 2009-06-10T09:19:59-04:00 + 2009-06-10T09:19:59-04:00 + 2009-06-10T09:19:59-04:00 + + + + 256 + 68 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgARAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AC/8AOOP5heedc/M62sNY 16+1Cya1uHa2uJ3kjLKlVPFjTbFX1nirsVdirsVdirsVdirsVdirsVSDz/Y69f8AknW7Ly/KYdZu LSVLFw3BvUK9Ff8AZZhsG7HeoxV5F/zjH5O/MzQLrWpPM8VzZaVMkawWd2/JnuA1TKi1biAmxP7V R1psq98xV2KvjS//APWrF/8AAhh/4muKvsvFWM/mJ5/0TyL5an1zVSWVSIrS1QgSTzsCVjSvToST 2AJxV80WXnb/AJyA/N7VriLy5dSaXpsJ/efU5DZ28Ab7IkuF/fOxp0qT4KBiqcv+Uf8Azk15Y4ah o/mVtTlUgvawX80lSD+1FerHE4/H2xV9NaTHqMel2cepypPqKQxi9mjXgjzBR6jKvZS1aDFUVirB Pz0/8lH5n/5gz/xNcVfPH5Lf+SZ/NT/mDj/5MzYqyn/nC7/psf8At2/9jWKS+mcUOxV2KuxV2Kux V2Kviv8A5xX/APJuWv8AzB3X/EMUlCflf5m/OXzX5pTQNI816gJ72F1muby6nnSCFaNJKquz0ei8 VIFd9iK1xVEfmRoX5n/lL5k0+4/xRdXbXyNNa6gkswDtGwEscscjOGpyUkGoIIxQzWPyD+dn5n+V R5yvfNBtWuo3n0vQoTLDEyJUJQRsqIX4/CSGNKVOKrP+caPzQ8z3tzq/lXVL6a9tl06a806aZ2eW B4aKUWRjy4MHqB2I2pU4qWC/lh5z/OTzF5nHl7SPM19LdavA9u1xfXU86W0QZZZbiMSM4WRUiKhg K/EQKE1xSyb80vy7/Mj8rY7PzTpnnC+1KF5RFdXZeWKRJ3qw5xtJMskcnE15Hrsa1xQ9Q0v/AJyE jb8kpfO11bpJrdpL+jZLMfDHJfEAo3WoRkYSMPmBirz38uvJP5h/nHbXvmjzD5uvbCxWZ7e0hty3 EyKAzcIleOONF5AbCrfRiqZ/k55+83+VfzUufyx806k+qWZlktbO5nZnaOZFMkRR3q/CZNuBJoSK d6qvPP8AlZP5qw/mlqFjo2s6jf3MmoX1lp2my3U0kAeZpYIqQu5i/dFw6chxBUdhir0jyj+X35we TtG886z5i1q4jgTQb2W29G8ab1LwwO6ygk843g415ChqRQkVxVv/AJxR81ebdev/ADNHq2tXuotD b25tTfTzXSxOzSDkqyOfAVoRXFSv1b8m/wAxdUivNb/ML8x10Yh5BbIshFqgDEKxrLbRRBgK8VFa dTXbFWK/kV+ZvmvRvzLt/J97rLa7od7PJZLIZWuIg6hvSmtnf4grFRt0oelcVS2//wDWrF/8CGH/ AImuKvsvFXyd/wA5i6xdyeb9E0Ysfqdtp/1xUrsZLiaSNiR7LbimKQ98/Jjy7ZaB+WPl60tkVWuL OK9unAFXnukEshJH2qcuIPgBihmuKvmT86fzj846v56X8vPI9y9iVuUsLi7gYxzTXbsFZBKPiijj Y0JWhqDvTFVPzr+S35geRfK0vm3RPOt/d6lpqCbUoQ8sYaOv7x4z6j8glalXG4qfbFUbZfm9c+f/ AMhfONvq3AeYNKtFF06AIs8UjjhMEGymqkOBtX50xVh/5Lf+SZ/NT/mDj/5MzYqjv+cZPNVn5T8q fmJ5ivFMkGnQ6dJ6QNC7k3SRxgnpzdlWvvikr/Ien/mL+eWs6nqeseZrnSdGsGULbWZZY1kkqUji iVkUcVHxO1W6deyhG+U/NnnD8q/zhi8hazrEut+X72aCCOS4ZjwF3T0Zo+bOY+LtR1rxO58Diqv+ fP5vebdR87J+Xnku6ltCs0VndT2zGOae7mIHpLKKMiJyCmlKmtdsVVNf/KH80vy78p3fmbRPOtze 3Vpbu2rWH71YzCVIleJmkepiU8gxVW25Ag7Yqgf+cbvzH136z5r1PzRrd/qWnaTpn1tku7mW4C+m 9W9NZXYcmAoMVKC8q335kfnv5u1BJ9en0Ly7YKs0ltZlhHGrsRDEEVo/Ukbix5uexp2GKq82vec/ yP8AzPsdEvdcuNa8qX4inkS5LMPq8ztG7qrM/pyxMpPwn4tq9dlWMf8AOK//AJNy1/5g7r/iGKSi f+cS/wDyaj/9s25/4nFipZl/zmj/ANMd/wBvL/sVxUPaPyb/APJV+Vf+2bb/APEBih8x/wDOOoA/ NDWwOn6L1H/iSYqVn/OKWpWVn+ayRXJUPfWFxbWpY0/e1SXb3KRMMUl7j/zlRqVna/lNdWszKJ7+ 6tobZD9oskgmYgV7JGa4ofPlt5a1Vv8AnHG91YI31T/EcFxQ1p6MVs9sZQPAzThK+2KWSfkX+Tvl jz95ZubqbX7+y1OyuDFc2Nq8YVUZQ0UnFlJo/wAQr4qcUPV/LH/OMPlby/5o0/X4db1G4vbCZbmN JjDRzH2YhA1OxxV41+UyI/8Azk+gdQwGp6uQCK7rDdEH6CK4pfU35of+S082/wDbF1D/AKhZMUPl j8gfNs/lHyx+YPmG3jWW5sbGzNuj1K+rLM8UZYDqoeQE+2KlPfyS8gxfm1far5q8/ajc6sllMsMd m0zIGdl5sWKkFIwtAqpx/DFWJ+Tn0Jv+cjrH9ARpFoqay0enrFUoYYyyIyk1NGC8hXxxVMb/AP8A WrF/8CGH/ia4q+y8VfNP/OYPky8mGkecLaMyW9vGdO1BgP7sFzJbse/Es7rXoDTxxVmX/ON/5paP 5g8mWHlu5uEh1/RoVtfqzkK01vEOMMkQP2uMYCsBuCK9CMVewzTQwRtLNIsUS/akchVHbcnbFXxZ piny9/zk5TVmpw8wS8pZarUXcrGKViTtUTK9ScVfVf5sahaaf+Wfmi5uyoh/Rl1FRujPPE0Uaf7N 3C/Tir5F/KvTrxvIn5kakAws4tIjtnP7JlluFdfmQsTffipZH+S3/kmfzU/5g4/+TM2Ksc/L3TLv UPye/M5LUFntxo1zIgqaxwzzvJ9CoC30YpTP8g/yw8t+fo9Vtb3W73TdTsmSSO2tHRRJA4IL0ZST xYUNOlRih67bf84meUbfUra+fXtTmnglSSP1TCeRjPMLulf2cVeN3k6eX/8AnJua51YhII/MbTyP J0SG5n9SNzXsqSq2KvrD809Vs9K/LjzJeXbhIhp1zEtTTlJNGYo0Fe7O4AxV8kfk1p11qHlb8x7W 1QyTtofNIx1b0pRIQB3NENMVLX5C/l95e886vqWk6lrF3pd7HDHPYx2jonrKpYTA8walKqQB2rik vZp/+cQ/KEpD3HmHVJCKKGkaA9TsKlPHFC/8n/8AnHTXPInnSHzBeava3kMcE0JghSRWJlWgNW22 xVV/Jn/nHvW/IPnBtdvdWtr2E2stt6MKSK1ZGQg1banwYqnn57fk3qn5k/oP6hqEFh+ivrXqeurt z+s+jTjw8PROKs78jeX5/Lnk/R9CnlWebTbWK2kmQEKxjWhIB3piryjyB/zj9feRvMOq+ZJtZivo 5rG7hFskDRkGajV5F26cfDCrwT8jfy+i88+aL/S/r82l3lppz32nahBXlDcw3MCoxAKkikjdGB71 2wJev3X/ADjR+YnmXVrWXzx5yGoWFr8KFDNNMErUqglCIham7b/Tih7tB5O8tweVF8qJYx/oEW5t PqR3UxEb1J35Enly61364q8GvP8AnFfzVouvNqXkPzWdOjPL0zM00FxGjH+7MsHL1F+ar8sVZf8A lz+SHmzRvNsHm3zX5vudY1S2SSKK3VpJIykq8WV5JyzFN68VVdwDXFUv8l/849635f8AzbHnibVr aa0F1fXP1REkElLyOZFFT8NV9YVxV695t0aXXPKmtaLDIsMuqWFzZRyuCVRriFogzAb0BauKvIvy 1/5xwl8vaT5m0jX9Rhv7LzFax2p+rK6PGY2Zg457VVmBX3GKsa0L/nFXzppmoXVrF5x+p+X7393f Cy9aOe4gB2SSKoj3BI3ZgPA9MVTCw/5xd1HRPzBsvMWg6rbRaXp15Bc21lOJWlMcRUsjuKjk9Dv7 4qmlz/zj1rcv5xDz4NWthZjU49Q+plJPV4IwPDl9mu2Kvc8VQ+o6dYalYz2GoW6XVlcoY7i3lUMj o2xDA4q+e/Nv/OIdpLfNe+T9abTgWLpZXas6xnqPTnQ8wAenJWPviqXR/wDOK/5h6lJFB5h85LLY RkUVXubpgB/IkxjUe2+KvQvzO/5x60fzrZ2VwmoSWnmSxt47ZtWdQ/1pYlCg3KLw+OorzWlK9CKU VYff/wDOPv5weYbW00fzR55judCtmBESiWZ/h2UlWWLmwHQu5pir0eX8ndIsPyq1HyJ5dYWv16Iq 99cfG0kzFS0svECpIWlAKAdMVYr5D/IHWvLXkXzh5bn1W2nn8yQLDBPGkgSIqki1cHc/3nbFU0/I /wDJS+/L6HzBBqt7banDrS2yenGjBQsImDq4fqGE+KsP8xf84qahaeYP0x+X/mA6MeZeKCZpUeAn qIriGrlfAMtadScVTjyn+Q3n1fM2m+YfOPni61GfSZ1ntLaF5ZVqvUc7g0VWHwsFj3BO+Kpr+dH/ ADj/AKf+YFymsafeLpmvxxiJ5HQvBcIv2RLx+JWXswrttTpRVg2sfkZ5ztvJ9/cefvOcl/oPl+xn ubDS4ZJWjMsMLeiHeULspooAUkjYEYqln/OG1pM+veZLrgTbpaQRO/bnJIzKv0hDipZN53/5xW+s a82u+RtYGiXDy+uLOTmiQyE1LW80PxxjwXjt2NNsVV9H/wCcffzGvdasNR85+fLm7j0yeO5tYbaS aVhJE3JWVp6JGajr6bYq91h1Cwnf04bmKWQ78EdWNB7A4qr4q7FXYqh9Rikm0+6hjHKSSGREXYVZ lIA3xV87/wDON35R/mH5O88X2p+ZNJ+o2M2mS20c31i2mrK1xA4XjDLI32Y2NaUxS+kMUOxV2KpJ 5r87eVvKVnDeeYr9NPtriT0YZHWRwz8S3H92rnoDiqK8v+YdG8xaRb6xo1yt5pt1z9C5UMob03aN tnCts6EdMVTHFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8c/Mvy3+fi+cJdf8AImsQnTZI YoU0iR0HH0weRMdwphJZmJ5Bg3btirAfMXkn/nKXz9Amj+YxBp+ks6tKnrWkcLEGoaQWrTSuFIrx O1e2Kvbvyo/LLS/y98sjSbST6zeTv6+o3xUKZZaAbDfiigUVa/iTirM8Vdir4r/5xX/8m5a/8wd1 /wAQxSX2pihbLLFFG0srrHGgLO7EKoA6kk9MVSCP8xfy+kuRax+Z9Je5LcBAt9bGQt4cQ9a4qyEE EVG4PQ4qlln5p8s3t79Rs9Xsrm9qw+qw3EUktUqW+BWLfDTfbFUFL+YfkCG5NrL5m0qO6B4mB762 WQN4cS9a4qn6OjorowZGAKsDUEHcEEYqlesebPK2iOiazrNjpjyCsa3lzDblh4qJGWuKvC/+cs9W 0rVfy/0K80u8gv7R9TIW4tpEmjJFu/R0LLirPf8AnGv/AMkr5c/6Pf8AqPnxVmur+cPKWjTCDWNb sNNmYVWK7uoYGIPcLIynFUVpOuaLrFubjSNQttRtwaGa0mjnQHw5RlhirWqa9oWk+l+ldRtdP9bl 6P1qaOHnwpy4+oy1pyFaeOKoa/8AOHlLT7aC6v8AW7C0tblQ9tPPdQxRyKejIzsAw9xiqI0fzBoO tQtPo2pWupQIeLy2c8c6A+BaNmA6Yqj8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir4r/5x X/8AJuWv/MHdf8QxSX2pih8g/n9588xecvzHHkHTZmi0q1vItPhtlJUT3kjLGzy0+1xkbio7Ur1O KvTtY/5xR8gN5QkstMWdPMUUJMGrPM5Ms6ioEkJb0QjNt8IBA74qwb/nFf8AM7WovMI8ianO9xp9 zFI2lpKSWt5oFMjxLXcRtGrHj2I26nFXmXlLyxqHmn825PL9leSWB1C8vI7q6iJDLbD1HnG1PtRq VodjWhxV6j+dP/OOPlTyp5Dn8xeXri8+saY0X1qK5dZRLFLKsRb4UTiys4O21K7YqjvyZ/NS+0H8 hPMWoXUn1qfy5P6GlpKSaC6CLbxnxVZnY0H7O2wxVh35Hflsv5reY9Z17zheXF5bWZjNwfUKyXFx PyIUvuVRFQ7LTsBtirf/ADkR+T2m+Qk0++8vzTroWpSsk1jNIZBFcxrVGUnqGQt9qpG+9DirLdP/ ADFvfJH/ADiz5en0t/T1jU5ryzspepiBvLl5JgCKEqq0HuQcVQH/ADj9+S/l/wA8aTfebvOfraoZ 7l4LeB55U5lFBkmlkjZZGJZqD4u29cVY1+Zuhaj+Sn5mWl55QvZYbK6hS7topGLAqHKy203T1Eqv fsfEVxVkH/OU+v23mLy3+Xeu2ylIdStr25WM7lDItoxQ+6nbFITn8sf+cbPLnmbyRp+veaNRvri/ 1K2RrRIJVVLa3ApCq81kLEIB1+EdKbVxQ8+/LJNU8gf85AW+gRXLSRrqL6TdFdlnhlJRGZa+6vTs cVfa2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV8P8A/ONms6RpH5o217q19b6dZra3Ktc3 cqQRBmSgBeQqtT23xSX11/ytD8tP+pt0X/uIWv8A1UxQ+SvzNil8pfnwvmGYC406bUrXX7C5j+KO 4tnlS4rGw2YAhlqPDFL691Xzx5a07yjL5skvopNFS3NzDco44ygiqJGe7ufhC9a7YofKX/OLnl/U tX/NZNeWMi00iK4uLqYCiepcxPAkffdvVZgPBTil35C/+tDD/jNqf/JuXFD6I/5yD/8AJOeZf+MM P/UTFir53/LXQLrXPyD/ADBtbRGkuYLi1u4403LC2pLIKd/3atSnfFWRf84hectL0/UdZ8t306QT al6Nxp5kIUSSRckkjBPViGUqPY4qUZ/zl75z0e7j0fyvZTx3N7azPeXwjYN6PwenGjEHZm5MSvUU HjioSPXvLF7qv/OKflTU7RDKdEurye5Rd6W8t5cRu9P8luFfap7Yq9E/5xK816deeRZvLpnVdS0y 5lkFsxUO0E9HDqOrAPyB8NvEYq80/wCcq/Mdnr35gado2lP9cl0u3FvKITzrdTycjEvGtWA4A++3 UYqFT/nIvy9P5d8ifljolxT6zY2d5HcgGoE3G0aQA9wHJxSH0X+Tf/kq/Kv/AGzbf/iAxQ+Zb/8A 9asX/wACGH/ia4q+y8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir4r/AOsWv+/n/wCnbFXf 9Ytf9/P/ANO2KvefzE/5Ux/yrPRP8YV/RX1KH9Bcq/pHj6KcfS9Pflx48/2K/a2xV832/wDyoP6+ vr/4q/Q/qNxr9R60HXj9Fab0xV9c/lP/AMq3/wAJQ/4A9D9D8v3vp19b1qfF9Z5/vfU/1+1KfDTF Xkv5V/8AKkv+VuD/AA5+mv8AE3qXv+9no/VeXCT1vs/F05ccVevfm3/hv/lXetf4m+s/oP04/rv1 Lj9Y4+snH0+fw/bp9GKsP/5x2/5Vp+htZ/wP+kfqf1iP69+lPT5c+B48PT248etcVeK/mr/0Lj/i W5/RX6V+seo31v8AQ/1f6hz/AG/S+sb/AGv99/B4Yqj1/wChW/8AAtv/AMdfn9cX61T0v0n6npPx 9Sv7r0acv7ratK74q+gPyi/wd/yq7TP8O+v/AIY4XXo/pLh6vD6zL63rU+Djz5/7HFXzZ+YH/QuX +IJP8O/pr1+bep+h/S+p135ej9Y/ef8AAfBTptirOf8AnH//AKF9/TsH6H+u/wCK6f6J+nPT58+P x/VvR/ccvCvx06d8VZT/AM5If8qs/wCdd/x5+k/+Pz9G/ov0/wDij1vV9T/Ycae+KvSPy6/Qn+Bd C/QXrfof6nF9Q+tU9b0ePwepx25U60xV4rdf8qS/5Xuvqfpr/GX6XjpT0fqX1vkvH/L9OtK98VfR mKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV/9k= + + + + + + uuid:E31ACE223257DE11A0F08ED6CBC828CA + uuid:E41ACE223257DE11A0F08ED6CBC828CA + + uuid:EB35FED36A7F11DBBFC999F43516EBD7 + uuid:EB35FED26A7F11DBBFC999F43516EBD7 + + + + + 297.000002 + 209.999994 + Millimeters + + 1 + False + False + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 +%ADOEndClientInjection: PageSetup End "AI11EPS" +%%EndPageSetup +1 -1 scale 0 -94.6885 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 94.6885 li +360.923 94.6885 li +360.923 0 li +cp +clp +[1 0 0 1 0 0 ]ct +0 39.8398 mo +0 1.89844 li +7.44043 1.89844 li +7.44043 39.8398 li +0 39.8398 li +cp +false sop +/0 +[/DeviceCMYK] /CSA add_res +0 0 0 1 cmyk +f +18.3574 15.9355 mo +18.4629 15.9355 li +20.2573 13.4961 23.6851 12.0879 26.8003 12.0879 cv +30.1206 12.0879 32.9683 13.4434 34.5542 15.9355 cv +36.7729 13.7695 40.2007 12.1426 43.3159 12.0879 cv +49.271 12.0332 52.3901 15.7754 52.4956 22.0059 cv +52.4956 39.7852 li +45.4741 39.7852 li +45.4741 23.3086 li +45.4741 20.166 44.4194 16.9141 40.9409 16.9141 cv +37.564 16.9141 35.4546 18.9707 35.4546 23.6855 cv +35.4546 39.8398 li +28.4351 39.8398 li +28.4351 23.3086 li +28.4351 19.5156 26.8003 16.9141 23.7925 16.9141 cv +20.4663 16.9141 18.4121 19.2422 18.4121 23.8496 cv +18.4121 39.8398 li +11.3926 39.8398 li +11.3926 12.7383 li +18.3574 12.7383 li +18.3574 15.9355 li +cp +f +63.3882 12.7383 mo +56.3745 12.7383 li +56.3745 53.3926 li +63.3882 53.3926 li +63.3882 36.4785 li +65.3433 38.8672 68.0815 40.4883 71.2983 40.4883 cv +78.8452 40.4883 83.5938 32.8496 83.5938 25.6934 cv +83.5938 19.7305 80.2202 12.0879 71.937 12.0879 cv +68.771 12.0879 65.3433 13.7148 63.4937 16.4766 cv +63.3882 16.4766 li +63.3882 12.7383 li +cp +70.1421 16.4258 mo +74.1479 16.4258 76.1538 21.0879 76.1538 25.748 cv +76.1538 30.5176 74.5737 36.1543 69.8804 36.1543 cv +66.0796 36.1543 63.3882 32.3066 63.3882 26.6152 cv +63.3882 20.3809 65.7104 16.4258 70.1421 16.4258 cv +cp +f +110.641 26.9375 mo +111.162 18.8633 107.732 12.0879 99.5039 12.0879 cv +91.959 12.0879 86.0508 17.4004 86.0508 25.748 cv +86.0508 34.6934 92.0098 40.4883 99.9785 40.4883 cv +102.984 40.4883 106.73 39.6211 110.318 37.4551 cv +108.313 33.6621 li +106.574 34.9063 103.826 35.832 101.244 35.832 cv +96.8652 35.832 93.3848 32.0352 93.5449 26.9375 cv +110.641 26.9375 li +cp +93.6484 23.0352 mo +93.5957 19.4102 95.3867 16.0996 99.3984 16.0996 cv +102.879 16.0996 104.305 18.918 104.039 23.0352 cv +93.6484 23.0352 li +cp +f +120.99 17.5078 mo +121.096 17.5078 li +122.518 15.3945 li +123.361 14.2539 124.893 12.0879 127.055 12.0879 cv +128.639 12.0879 130.324 12.957 131.805 14.5254 cv +129.168 19.5156 li +128.008 18.918 127.268 18.5918 125.844 18.5918 cv +123.418 18.5918 121.041 20.5977 121.041 26.4512 cv +121.041 39.8398 li +114.023 39.8398 li +114.023 12.7383 li +120.99 12.7383 li +120.99 17.5078 li +cp +f +133.367 4.61133 mo +133.367 2.54688 135.055 0.4375 137.43 0.4375 cv +139.855 0.4375 141.756 2.49609 141.756 4.61133 cv +141.756 6.93945 140.117 9.16016 137.531 9.16016 cv +135.055 9.16016 133.367 6.93945 133.367 4.61133 cv +cp +141.066 12.7383 mo +141.066 39.8398 li +134.053 39.8398 li +134.053 12.7383 li +141.066 12.7383 li +cp +f +160.02 35.8828 mo +160.02 37.3457 160.176 38.918 160.701 39.8398 cv +168.143 39.8398 li +167.297 37.9414 167.033 35.3945 167.033 33.2266 cv +167.033 22.1719 li +167.033 13.7148 161.074 12.0879 156.219 12.0879 cv +152.58 12.0879 149.363 13.0098 146.088 15.7754 cv +148.355 19.1895 li +150.205 17.5625 152.316 16.4258 155.326 16.4258 cv +157.594 16.4258 159.754 17.998 160.123 20.4902 cv +153.896 22.3867 li +147.775 24.1738 144.137 27.1016 144.137 32.2539 cv +144.137 37.2363 147.564 40.4883 151.68 40.4883 cv +154.107 40.4883 156.486 38.8105 158.438 37.2363 cv +160.02 35.8828 li +cp +160.123 24.1211 mo +160.65 32.0859 157.014 35.666 154.217 35.666 cv +152.529 35.666 151.047 34.041 151.047 31.6543 cv +151.047 28.5664 152.791 26.5078 156.219 25.4199 cv +160.123 24.1211 li +cp +f +171.414 39.8398 mo +171.414 0 li +178.427 0 li +178.427 39.8398 li +171.414 39.8398 li +cp +f +224.733 8.78125 mo +222.934 7.80469 219.93 6.66797 217.077 6.66797 cv +209.483 6.66797 203.999 12.1426 203.999 20.7617 cv +203.999 29.7598 210.067 35.0703 217.29 35.0703 cv +220.141 35.0703 222.778 34.2559 224.733 33.1719 cv +226.79 37.8887 li +224.522 39.2441 220.565 40.4883 216.975 40.4883 cv +204.151 40.4883 196.081 31.8164 196.081 20.6543 cv +196.081 10.3008 204.104 1.24805 217.077 1.24805 cv +220.932 1.24805 224.522 2.6582 227.049 4.17578 cv +224.733 8.78125 li +cp +f +240.711 40.4883 mo +248.999 40.4883 254.583 34.3672 254.583 25.9648 cv +254.583 17.1836 247.834 12.0879 240.711 12.0879 cv +233.639 12.0879 226.889 17.1836 226.889 25.9648 cv +226.889 34.3672 232.481 40.4883 240.711 40.4883 cv +cp +240.711 36.4785 mo +235.698 36.4785 234.329 30.7344 234.329 25.9648 cv +234.329 21.4668 235.909 16.0996 240.711 16.0996 cv +245.618 16.0996 247.145 21.4668 247.145 25.9648 cv +247.145 30.7344 245.829 36.4785 240.711 36.4785 cv +cp +f +257.608 39.8398 mo +257.608 0 li +264.629 0 li +264.629 39.8398 li +257.608 39.8398 li +cp +f +269.051 39.8398 mo +269.051 0 li +276.065 0 li +276.065 39.8398 li +269.051 39.8398 li +cp +f +303.567 26.9375 mo +304.096 18.8633 300.667 12.0879 292.436 12.0879 cv +284.893 12.0879 278.977 17.4004 278.977 25.748 cv +278.977 34.6934 284.94 40.4883 292.911 40.4883 cv +295.915 40.4883 299.661 39.6211 303.252 37.4551 cv +301.247 33.6621 li +299.508 34.9063 296.76 35.832 294.176 35.832 cv +289.799 35.832 286.313 32.0352 286.473 26.9375 cv +303.567 26.9375 li +cp +286.583 23.0352 mo +286.524 19.4102 288.319 16.0996 292.327 16.0996 cv +295.813 16.0996 297.235 18.918 296.973 23.0352 cv +286.583 23.0352 li +cp +f +360.872 26.9375 mo +361.397 18.8633 357.971 12.0879 349.741 12.0879 cv +342.194 12.0879 336.286 17.4004 336.286 25.748 cv +336.286 34.6934 342.245 40.4883 350.215 40.4883 cv +353.223 40.4883 356.969 39.6211 360.555 37.4551 cv +358.551 33.6621 li +356.809 34.9063 354.067 35.832 351.481 35.832 cv +347.1 35.832 343.624 32.0352 343.778 26.9375 cv +360.872 26.9375 li +cp +343.883 23.0352 mo +343.833 19.4102 345.624 16.0996 349.635 16.0996 cv +353.114 16.0996 354.543 18.918 354.278 23.0352 cv +343.883 23.0352 li +cp +f +333.37 12.7383 mo +326.352 12.7383 li +326.352 16.0449 li +326.249 16.0449 li +324.772 13.6055 321.604 12.0879 318.385 12.0879 cv +311.209 12.0879 306.145 18.918 306.145 25.9648 cv +306.145 34.6367 310.737 40.4883 317.754 40.4883 cv +321.766 40.4883 324.506 38.2129 326.249 35.9355 cv +326.352 35.9355 li +326.352 39.5137 li +326.352 45.8008 322.766 48.7285 318.12 48.7285 cv +314.534 48.7285 311.526 48.0234 308.944 46.3984 cv +307.569 50.8418 li +310.684 52.4668 314.696 53.3926 318.649 53.3926 cv +326.512 53.3926 333.37 49.4336 333.37 37.4023 cv +333.37 12.7383 li +cp +319.969 16.4258 mo +324.192 16.4258 326.352 20.8164 326.352 25.5313 cv +326.352 30.9512 324.346 36.1543 319.649 36.1543 cv +315.588 36.1543 313.586 31.0586 313.586 25.8008 cv +313.586 20.5449 315.432 16.4258 319.969 16.4258 cv +cp +f +0 56.1045 mo +7.49414 56.1045 li +7.49414 88.9443 li +23.2656 88.9443 li +23.2656 94.04 li +0 94.04 li +0 56.1045 li +cp +f +64.4346 70.1377 mo +66.938 67.5361 70.4297 66.2881 73.9292 66.2881 cv +80.4248 66.2881 83.5361 69.7588 83.5361 76.5869 cv +83.5361 94.04 li +76.4854 94.04 li +76.4854 77.4014 li +76.4854 73.6094 74.7632 71.1162 70.9316 71.1162 cv +67.3188 71.1162 64.4893 73.4434 64.4893 77.8877 cv +64.4893 94.04 li +57.437 94.04 li +57.437 66.9424 li +64.4346 66.9424 li +64.4346 70.1377 li +cp +f +108.516 94.04 mo +115.568 94.04 li +115.568 54.2061 li +108.516 54.2061 li +108.516 70.0869 li +108.404 70.0869 li +106.739 67.6982 103.521 66.2881 99.9121 66.2881 cv +92.4678 66.2881 87.25 73.1191 87.25 80.165 cv +87.25 88.835 92.0791 94.6885 99.3555 94.6885 cv +103.687 94.6885 106.573 92.4131 108.404 90.1357 cv +108.516 90.1357 li +108.516 94.04 li +cp +101.797 70.6299 mo +106.241 70.6299 108.516 75.0195 108.516 79.7314 cv +108.516 85.1543 106.409 90.3545 101.463 90.3545 cv +97.1895 90.3545 95.0801 85.2598 95.0801 80.0029 cv +95.0801 74.7461 97.0254 70.6299 101.797 70.6299 cv +cp +f +133.893 94.6885 mo +142.609 94.6885 148.493 88.5635 148.493 80.165 cv +148.493 71.3877 141.389 66.2881 133.893 66.2881 cv +126.451 66.2881 119.344 71.3877 119.344 80.165 cv +119.344 88.5635 125.231 94.6885 133.893 94.6885 cv +cp +133.893 90.6768 mo +128.621 90.6768 127.172 84.9336 127.172 80.165 cv +127.172 75.668 128.836 70.3018 133.893 70.3018 cv +139.06 70.3018 140.666 75.668 140.666 80.165 cv +140.666 84.9336 139.282 90.6768 133.893 90.6768 cv +cp +f +159.324 70.1377 mo +161.824 67.5361 165.321 66.2881 168.817 66.2881 cv +175.314 66.2881 178.426 69.7588 178.426 76.5869 cv +178.426 94.04 li +171.375 94.04 li +171.375 77.4014 li +171.375 73.6094 169.653 71.1162 165.819 71.1162 cv +162.213 71.1162 159.379 73.4434 159.379 77.8877 cv +159.379 94.04 li +152.327 94.04 li +152.327 66.9424 li +159.324 66.9424 li +159.324 70.1377 li +cp +f +38.8838 94.6885 mo +47.5996 94.6885 53.4854 88.5635 53.4854 80.165 cv +53.4854 71.3877 46.377 66.2881 38.8838 66.2881 cv +31.4414 66.2881 24.335 71.3877 24.335 80.165 cv +24.335 88.5635 30.2192 94.6885 38.8838 94.6885 cv +cp +38.8838 90.6768 mo +33.6035 90.6768 32.1641 84.9336 32.1641 80.165 cv +32.1641 75.668 33.8281 70.3018 38.8838 70.3018 cv +44.0474 70.3018 45.6582 75.668 45.6582 80.165 cv +45.6582 84.9336 44.2661 90.6768 38.8838 90.6768 cv +cp +f +%ADOBeginClientInjection: EndPageContent "AI11EPS" +userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse +%ADOEndClientInjection: EndPageContent "AI11EPS" +grestore +grestore +pgrs +%%PageTrailer +%ADOBeginClientInjection: PageTrailer Start "AI11EPS" +[/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 +%ADOEndClientInjection: PageTrailer Start "AI11EPS" +[ +[/CSA [/0 ]] +] del_res +Adobe_AGM_Image/pt gx +Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx +currentdict Adobe_AGM_Utils eq {end} if +%%Trailer +Adobe_AGM_Image/dt get exec +Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec +%%EOF +%AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.0 %%For: (Beth Elzer) () %%Title: (IMP_ML_K_PS.eps) %%CreationDate: 6/10/09 9:20 AM %AI9_DataStream %Gb!!kfs4qnOXBo-I#!-FM"66:Qj;MGRppT4o=O?;]6]9n%L7odCj'l`$At#$kNNLtp_$\EiMT]D\gTU5C?NURO@\Gk`)g;ooC8^h %hnApVVf+cuT3jg9jMq5s6ZM'.VY'5UYQ".*It%:T\]s`s$ak?LWF9fGH1O1Z0B2Sh=rEsGr:oEPVmda3s6e@V2fF3DnaYZ:O.Un! %otr`W?bcEocb=_qO84j?hS"F9lJne?f:O/]F%7o+rqO`6n(rQg:Hq#@le>4MIRpUQ3<#&Trg+^6s68pS+8ESSr/VrV]`76.\%`l1 %^A[IAT>n'aUgMV9npg]=mH;f*b%"74k4AA;s8N&$Eu@gQh`q%"It%9mG<^QUo_S0kO!"AaYGCVO]RBY8rThdJH,V6-kP6:no"*_Hr4N"(h:o^BqVaB:hn8jUq;[NcQIZ!&h&AZ/Mbfsps6fn+$ZB`e\b5ZXH[[#N %0(SmhrosC9:]L"Eh.KmSMgt*A_/DMdp\+R %^G4/TA#/#%.)13'MS>C[8tf:\mm;M&X&>lr.Bd'OcebWqn'n4q5P0*ee>d_-7K5f+;ldr/CA%?m?Tp[%D]U""c)XqN_3-/Ze&A\KoA),YiU?fLf755U6:VH1&NqO:[9R]o]c*Nb.sVDbe*qO?%F9ZX]M-Mj3\U(u)5eEVQat;pA9=8#p'<82&%//)dGNH;m%CF`IO@3Hs&(@N+*Lbj,2^iFk\pX$NFn1k_:iGfe-_sDn++0i?N/$ij^\]UbFT)ZUk`%L8*G/gG5::R=#d>R %A-#Jip4^(DpQPU?lUaH'l#W2BjgbmY,@H\KT%Lh`0jfkirQ:J`48qVI$pYJ%k_JI\-S^T4_NEHmt0QYPe4i>PWRD.t=)f&UmK%7t8^rb0TiSrZ1;4kqV;rD125S]m:P#pNlb9'`$/^IUlDmuHn@pXT\"h\)s%U1dT$Tik^0`bsWR9>goDCgBP-=@.NTOT.Yso\$=a61!e'C.?I[Fi?r=WYb %3G?#@Qm[mRORHoq?I/b",T2':T"f.UZPe102Ir21kBs/r\lRIJG8,m\oTIeW5[-D?@o;V0:fC]5,348'cuCVU+_BSnO\QH`onaj8;I)Z;Uh9_k$(1]*NP=S=2u#dgWQqi01;b=K3K %&O!;hLcl(30Q[3;MhPo`[r[TXh-kIpWVD<(M&(bKmDH/(4%WpY:LfF_[>]^g4JPM15l2[20Dh9CB2$lN,7EZ!9>TDpfCdm.)o9.f %S"SC[`d4EUd7e,B`uUdoa'[Rsj,7!m8"[C%I,HQs$L)cADAe./KK1&e"?;f"#9F*D1G1r&'WeELoD1*gK$O+K[XO(^4Qh:#em4WK %81/M^8:H1kU-HUfS.s5GL\h:H+&8YrT3>DobAl-T[o9"@E2@"$l[6^+%V0t?0g=@8Q\%SPaXt8mhW4UW^=15\f&fc6p:9X5mE,s* %dg/"$;-l-=.d(lEU[@oek?XFBbKBc8-SaOo79. %pC!HNoB$+'0k\8UEB1@VcJTP!kkn+'lZ]uT`VAY**t@DV:9QcfntDiN7).c8g)eFT87.iL/qd$Ar`'"qlB[^-V6B/ %.V#Q_41h(lS8FC^PD]gW:"noYK(NV,]'aFu1Zi"/2SPXY*;(,p(jZ80-SU8PuSIUk(UXqbC9D1?u+(I:<]W7ApAFH'RdT5dCUiBt*i\;iQ^\;a%mN(,TYUj6Fk#IN>]V^mTS4 %]1GoOb>uoekPNfZ-76uC[C,h,:sR"iBOI%99g)"R],/V(VC"m)C&LX'f"IAf+DG.5oVQTY'fZ'u5@Ijn"j:hkf7$\oPd1$gB\-sI %Z-EWDnB/Z0CXH>!nOgZ:IU"FhQck7mjs%Ag:5S3Fgr7CVX[f)$D^Q'.C3c6&ZG1ZJV1N@P#"jG!,-jVA,4\=9ktWJ% %M]I^3Ainre8iTus$$-h!NffuSg$EhYWKk2$Gu'o-B53lVPVWLd.?:H,]1Opk4-OI'Ggmh\(_iM'^^_["rR;dKc2VS>R%5*]pt:0&G%,d0W%6(=m!Ko?^M$mX4s`!rH4cEFt\n/XrSjM)a#5#GSR8&UI;pZ^`8O+3>MfmiU3 %IfK-5:HqAmN.:ie5CFNRhgM0ee?aYahm>WImeorA=9%O6a.IhU`t.'WI.e((^AI]/D]aH&qX^=$^3TbP_fn?El9SkLj+D_6TXT,0 %^D5DmfC+1`eJJ,[_^>dUrorCNs8'Le^A0lT\qfaQjZc!,]%5:O."13&&$A,Z%7l?OH##,ei7ePXT8+*^KD#*l`'4.8oD.eKs.<'BjRH(U3bWd[Z2hT, %?AC)XA"ft/!iOK#AL?-MmFh73Mu()>RUeau[]Fndd_a)L9I,;2h?L`:o^"V\dVkh",SS]o1cOS4=@NMs9X/6r %i.Pq5_SBSSg2l^8fIfQFZnYDC;guO5'HOF%9aIS)^p.m?pcapm"V3-lYf)(jC99[9-h(e*X%EYNhq3$_rOL6Kairju8IYPkVd"d@ %caCfPXXlN>5,aRkJ*?c#8R]+,BSrJD#.]tWnXN@,^]Q54T!=7VbR#Z7[Fu?tS1ciSj![$)#G,=KR@a8+U1i]lRLFI%H6@.S8r+oF0`.O'e`;t&N=K3ni.=DC1\Fq0p)9K;$67+e%i]q"#<`q!#sD-QHOTp!=2DIM2^85)ImbJ\+d!:E1ZE@b$i*1s\p3X=LeLU>aMS%[-@:MKJE'UU4Fd-el(+>umUO!"Ok:XFoZ@/o1fsTS)b@ %(1=:>;:\t$!ttqGS0qZ<'Y%O-!_.B!(i:T*NUqm93*2m#+o?ut:V"bK!:pXoaEMH/lQ.'W"3-9ODEWQ<$F:W;5W<./!<&glm6D>n %CsZ"/>)2d:EONQ`+KG2X^_!iO(8X638SQUTF$`P&V_Nc!M^`+F_JO8S)o*%`gl3OC_8fcVWW1(LZAIlBu)hY_o/hJ!KFm[ZgYp3fLpXF$`AjXV4SC'A` %JCd)fg-ljiS+;,8Z*4ndJ5h:J*3bVo\W0-QThc];@tS7r-fDF*+!+m7n<@Uu*`E;&atXjg?tu7VSF$`,C1GZO;!PK3kEJmYfL:jB %;7#9H^t2A2RY5)nE)pQ25W87p3KbWc]3FS6#a/)7I/ZdWgYC:/EsX]krd*bk\F0>;+NKh!a(Ec %6;cd^P]8Z\W3WF";eOOZY40l]Obp)91_Aa7Ms$Fh!p>"jdH+7h*s@R()k-2ETq(*U6Z*")_6#p %!R@\F7\_U$^eVFYM?5I1+Q5s...lMR&rDoB*>tCX-=VuF3T($6=ZJm)<]L]kpI>o^O:ji6,/CqR6.7M-;o/"JV!Z%Y@Uodb("1XK %2o%k;XH+K"7Zd\+OfH()-Cifk/fhiTe`FusnT,>J0n<"2,O,aK:$=QE^5;ePJBQ6:&mq/".qtEom!oC/ek;Gj0'\H]Ii!!BmY,iK2dS;84LE$AUgW$t+oOaMA+SJ39loJ#jXHPgOjq%nsm!$5k6Vg#IlTepHUI/)B>P`B8M@,J:&UZR-7LY##O)H#nXL\!.-W`:_#e^dsOf^0jLIH)eoEqVHt(0U:f2D7PRK=2RkM3>P3%N:cVDfO7s[]r[fFsGo[HF %B``GpNs08+!O2nG^5ptK]YDsIDZ"U]7Zj*G6p$gE;!\#*G][\ro>#(ebLBGt]G>o:^od/oI^iip&Hr:oI2,3[SNpPTBFW.0T%;r? %DDpNgVA,LFR'H)k81>ts1LGjl0o5)[8a<^\Z)Y.9a8efKGDbur5PAF"Op7:E%e8?1"-5jjPf4OH6/A;)b_SMI*XWh-no7qs_3A@YJ(3:C*0h8'WEptdD %,U.<:N"N?QgXd!\=jACuTsEQM'h:4mC,Gj#F.u]5WJ_W$i$L;uk94O`6'q\S#sjqRN]ZVN+@,$[a[HH^_m9dmE<&W92dmmU+DCmP %c\7E6.n8:K*A!"!#A^\@lF%fI,igY0kZ*6FdXemCbQ,,JqT/a7B)#Dl\.63m+osiKE2_W$DR0c^B%/?n0R-G_#9H'';`b2S2R!2t %-SdDH!ZX7]l`^lXpE1p7d(sgV[:-UJ#:X-e:AmQ_LmD>lmoZQ)1HL*_f;Y]Ie#"4rC'o*&^aiUoboDuC^8O^K[0OFV!FE\mW68DT %Jc+19)r;Q6EgE'U(U9_`[[Bqm@N..k(nsDf'rPP4r&cDtSRPIKp.`BMa/67Bj"dmBcFs>O#t3,0+R+)h#;ZCJEShHmF>eC;8DjiB %I^$n6P5%m#!toJU%U$pt/aD"6(VC6tEFW8W]IVL[U'sd[MZ[(Z'@GKLa+9:@M<]Sm)Bb/K_%4WE%=H\9S$AhZgZI3!3\@Z]+>cR2 %D@Y!(!SN)8N:iFO,f%"LBc]Oj(fg6]0gW8J)d;I0\saj %r5P#WUZN"-5Hop.9WLYu.aB!&dobsB@)off:Gk0MSKY;@rk&9%4+i>qF2D%D;nHQ\eDN3Ck1(V@Z>N.oZ&=U%asFJc %1C.A0*;.q:WnjfYn;RQNYt_MJ6D(&)!Yqh]ch"O8=eKIFb.u-sC>iUUY7B3FiPb.q^d^X$=G(?GJ8qm7-I.JL*:!a:G$qFh[56b] %C+B\8c+[8c.BhV6_4Mj[Lpk5/)3bH;CY1e25eAs^1+VUTk+L:)S,=d&[pp3Zr8DH/i;5Q0:YBk]jgMaYkgpRrT>!Qk1pbT./g-@8 %!HYL)qh`k>48%r][nor[G@Ulo]O5IXERKDL%nLqK_8cH3NT\qT%+h@o'kla0iP9c;l'OOS8gs"+B))XQ3h;:>=j]=c*qjME#B!Cn&:#//C9_FTf*3qSS:H>n//kT6J&"k0:/6ee+6$)Y7C$1*.uR@WBT/;%c,h][-Nt;"6eR(H %1qN`"c!dd0^6@53r+(F(*3:[mHOm,WMk#O'aK1#4Jq3,2b2Pms%8dn&=*1Z>=ur$A50X'oUF^:^B":\s0:$LqgAF[]F0h(KU_R^_ %+=J`g=s?U!M+WTIBKD,J#'&0b2jh+7S0<[t2%>ZX^=+*mn(HqsB]JCYm+"5#X2Ql3(j=p-Z"47.$]?ARi@IUbGnQ6OnTGQeSI %J3#@t12(oW!2nR1g;`buOh@)/6G6uh22D^naY`3BeJSoGYY0fGkaCmZZ&.E%n&g/k!Wb:^S\.tlW,#"4=6V=SaHCf$8WXesEUnE^ %j=I$=I?8hAY_Q^[!d#H6X_png?5D-Q4P'Zp'8r76&9&)tCGq`8Mj`O$%)C9,9]8j:bV0f)?_g&kOX$LucH<(94Q0i0i %'6MUGS's2`4FhKU8;cV*Z7Z8^&Ol"[U5GsfM9=SnOcPgAT^MI/Q`q+U;VD._@$j$Fp5@D*h)Ghl5S(g %^s:G#c&!Bm4neE1<`usg*gXV.WOfH)]6H92ca9'B8/SFgXBfb$;$id'ilCt&.G?B%U@LDO"GU*r+^AmNg3#Ga0Kbb_P %!c?IP)9ZZN<_#Fp>tZ`;QiT+UlBgS6Z<&_"t$'Au\I^ghEpErsUL?t_>%34(8uP[mM@+lHl %%B#bc>f>7AEgp&`O<]iZK&Dke*U^4"3?L!^5S!G/nBjbl@,eqZeO`"o__^;+$uFi^3JTX+U#gNWJ]UVl4]AdJf+au]5:9I[R@*X3 %a!1LnZUH5#i/kc898baNf1f[dZe5IW_f#!]Jf>tM:'%:jd6X^^@Z#:)mceHedZRgb4BRkNcA]FcGfI'a:-&^3XS]db!u>I %VAF?):^+*-#N3hCB&*q;+QGj]l)*D*bg7mQ?$L"hcpW>F_U8L-,Kih*h9LWpYfS449H=8-E13o+_U`eOK12fK*gYES/V0M73"6BbVRfYfkNGP/?10Qm+ku\\TDp@o_/?>Y# %fD)6$@VQ-fn_:bgYo]qnY%_V\q#d2s>h=Xd)o1SOM@qaSTXTT'cUR#n?R6fOc,-3V.CI/$>beV=doA+HE.c2b"2k6\56E;j]]iK& %N&.&o`6dHDQRa2g3EGsm$$>g*6o@Nl4BZrAHn[N)+c:>AD@/i;S6\=ZFHN96RA?R*1kb+Tji.D6D=]0A@_MV,[]qm;1XIu"@0VP# %*\0LG[tsAC;&>-YL!c,j]o3cV2`.O)^qhurlVRb:j'7L$q&nL5,a8bc[g:r*aY(WCfn%Z'Pt8\e)l1.`@2h36@@+(b4h9`$KNd;8 %YE>n0OB9Om-BqT0T.W9AN)k4n:-D``0NhdiqM^_JS&Gf&%\dtAN4CIp=`iSZpl%35j?2Obm=m#lmXHD(@pn#&V#`$4*jTh%N/ %FfP'E+Nl6#Q[%0i#W"L4Z,ZOuJ?3sm#ZtVoJur>ZF;:*0 %[re9HKPG6G>e'sK\f`Fce?YP*_tdIoK)j>?iXma8a\"OeWk`Lr1.@J%mk$JM0A5(R %%S2hkoBPY)P+O!eMLa.`l0N'qGi#bPgRE_)FmJZNMom@c1s@Qm&6jhGe-I#rZO'>hE"#--^8rV$%,85:U,_2QL"%:5gd:*#qs]$]Fl+ %@2X1&(J/;DhD1U%D;aKrjR %poU>_pqRcrCi8[l0(E)94FshU\OHSoPaau'1"dcHlEW)X+5hc10>E>DoYj^fX`";P\T\I[U&eVdPB=o4ZN[7La*8u$M1u4Ort-_3&I-pql&l=9b`DUQu.Zi3n2rfXb!2ER]G0do:*Q3gsa+O%(&u<]qWM3 %],]D<'*jbn8l2It\-=Xt)&dVl^)F_`o9R1XPcsn."O,OBcR6;=]b[C\6>m>i'eYs>:=%O6*3c/XAOtr$l/oSl&D5II;AFJuG%W94 %bBBfghNY&H`('@mfHicM+J;Z^g#=b;hJ[M?-7Z'>0rCgp27"f, %J4$HF/#tX;@m1eZ:k %&q[m7;Q1GcQRi1mFW`;lYRpucMlP0b!7fN=2$=<)]^S2N=R!&f>r@[-Su>Pj)k`7J3Fu8@cqN[+SEa %O4XqdQrOV2FuX.$[%ht3P#DB>85XGF!22VUdTsWqVNr(D?ArI;eLD-?j@RE%N"11r-o%*')A??n-_D!@8cDQ?7rg0eROpZ?V4IrR %F,k>*dD1ARK.j6HMWE^#oU2`)R.F^,&uUb,()\Q_).`03G^phV3UHK2QO_@#8u;5r**4eVn-gl"]c\tK]Ai;0Itc-K\a]f8Q_/t^ %GW[H;&g6DCpB*D8K4VX%K%Uf\B3[L*>Ep+7]M:_38Ng:>[&_B;-P>;o@]fkn>b>H2e,V],TrZI-o(7UH.CG@$cW.Jm@qQca2E(fc %/2F>%1!"L9GX_R!:5UJ30Jo<')&:@iWbl]Z25]Wp8#lnAVii5CLeB'EGVd@MT7UqIERXj7ZRlj]:4B'%Qgej>ZX^uW7 %"bTY&.5%N.Bka3^,oY^;W5oJp0_TDRX6edYD$(qJ4@P'cJ86p5k+bs0Fs0_[1:)3C>TkWMZ$0,#mVZXc3s_e=@lDSkMKpIXb=nV! %k^j-'^u^m/Y;9f];/IN=`dKBR_Qch_3dVkG0nNmVdU$]M;U:$?YB$4c- %,=gL[6-c_:39P$?R&'P$1>AHB7(]$jbS*R%L15hG8B@B)8du5Y02@'!S!WK8,Z-pI[=`E#Qc?nYSkA*BD2((W=95F`A1;0n'YqZ2 %6>AF_,It=O.kDu>]?[@N,F]([V:`HOdOg(FN*1C8K?A!Kah6sJB(^V9#S?[UVg6$,:^Hj9Tr;^+akE5,$/qI91\n'rOC+YK_l,"f$'&ERGq'b5k@S*DDORg"EhW.c;d;b:-_bV#me.%$dV3G'87A&]>J4F %ip8tI++i((5Y'D+m)6MfV&Zgd"jho46:Ymp;UA@64OL+KX-J.;K?5667g]>uZ`,qCHmFAF,Os!@Sr'SqoYZW'k6-NV1Qsd&Y\FMX %Ak.Wl@\#!Z?K1&7D-ftc4]FI-$OX/V))1[!AP::AOpn5`WCEF-Xi6i!9qGCUP(7p%7I-;K'ra>qCEalT@joE!,9VmX=etq:AenVu %+tsuD=V=>E$BEZ?R61O]Pt\]B.\sW/[IYRfYL6R?WgP<3>Su'[\GW@HW1$'i7J.W8$2-M2\9M+FHmioHXU_[r3\cm,*@Q=P3%1aM %Jjuia&hba+g.[W6D,j$+/`[uSK?oL#h %W*"Xeg&XnD1.-_K*W,DUYU&gl6?`RN*U\NB!+Yui].KP$-f<89S7OE)W*Y-SP$V__h9hU9Z';WTb\/Pc:RT#`9?cDl'HicE&Hbsd %Jf[kS3k;_VYtf>fC'PS.`ZiGCi7RGhU1t8bU>\d[64pUoD4uPt]@!i%)V?DAlqVOTl++ao*cY24PjWJEM6n"]9*UjP@FnFE$laXO %]'LH"o#c9>7VIYb#;-FGeRQ!q1\E]#^EsAM^@]'pQbKbBqB`("cul=N.(Frh_I"=j)s=H^u!VWrMXk5Q&F&*raoD*WO)YZG6A-h4[=3 %0.NN`%]-N1_i#W1os9E[^TF0r\H6GOd/J+i;pe;pnRm"2.g2L$p-#./2U@@tBp4a/r)Fi;(>Hb,IMTpK4XF%GLVKc$>V.Z[Q%W&f %''!Tl77H"iGA,(^BRPDM6$5)0V-9);#:FdH5> %d*1$qPWG%'E39D@]ibN]GCL)MmKGQ`l(/X]$)<&XS3DC4H(<2K7$d7#TA(d7q)&rMP!%5ksc:Rq)!qbJg %TX!QIMGcrJ0_kG0#Zc<\/_+FQ[9_jlNG;(A7Y3?O90r-]+*YWFcfI%7Oi^OkDadJ %F]PU9,V`L`i-DYHXr`/EEPd4au3D%R=#['r\s"2_^@/S?6Y$6j[!JC,Af;7(7[L*+b+^1pemh1'(!'d('o+ %4';2Q(NA)2XS0$-$bkfLd^n^;CcUhu2YP3ZN[n5sIifI7(\iTJ1/n'N'XAd4dg:!#[YKhsYr;?\#]6*?[eaQN,=kSpCadb/%Q-X] %;8b*9Wlr[5.pd@7X7[;IQiY_//d;f"r^OR^fs-:P"V[s3QlX%8>eD:(9SEWun;X"cB.H7%8K2dO?+j7%$5)P43),`'XrkkEk]ktIRV)=]!c^*LM"$f]fcZ`*8\U-G%[tiGi%50T5?U/QH/@ed@R,"e*3%" %bbSaP=#*PSY:2m6%`b,mZorHAj1.=q]/+rq%VM@F,XuuU25j];VT#EM6Zm)n3e8bM<1J_Iim=`uUJc9@3,9poA:l%BN,g[rXpR9' %`mU0;"`52+-^]ZQ/7HO+0/sQ`_DW/6A"._rDEIF&N5%q4%'AM_)9SSsUbUQRQ5TZG`i4'e,Il!'n#Yf@EQpGW"B/Z>g\55k=Z16) %a+Z5,,ksqto4T#L;'dML_La53bV93Q/f#@#)tlhQ^SYdTJu^.>SW?(E@!f?1$$GCi;,qY-CgPUK.NYc,S#Q?#!*@TdVT)MS[a(Nt %*H2cHX+-"8c#'t.fmVh'3QgO@SO[tK+RUtJ*TPhYW%0qkDsrR:/VS"TkoSYt89@MJ4!`ZM %pi^GUgN_T2Q$mTHjHcS/\F3c%Xn90jm7PR1[k$!uTNG"2jR\/Ue9.dHF2pT*o,2->s(QD^;?cW9MqLn6:R5J?XgihGDRepb<;_VM %.spSi=>([+\u]b&$5!a"(S*.f"Um`gbt?aqbH75FLaAQM3E/k1$uMo]1NA&?H)ecp19+L+&M9c2P;4<>:a]0m@3p#R'npr;/?XoCSu9$@#@MlUFj %qpfRi=U<5%8sQj`257WtqNjUZ"rrJ&iS>BkNEhC8DKQEdQS;`_TuMdKW#F*<]/RKigs+*lgIDU/ %7L5[6@]3#CBXtFP#J;):]N`0`HPUcQ]SGodA%[Jpcb)EMbL,M'C8p%LeoDK/&MMsQ70.@Ph64RB[lJ@X_Dk[oJiOq8RE6eGQLbh- %eRpn#hCS$2WJ/T938q2=_ufpBIf7G%EN"IUG<.Ph)l<\%QaS5cX$++g5\su:aeA*$MHZUGs+8=!,##gNY"/fpfeTQh9PqrQ\#f/C %mXZ.a<8A1iO$RY?:/Yn:,IHK>3+KXSXCK<,!!.@Iu*pqZ^umdS4EbJ"n0iV!C#uoap:uZ@&uk,-dFMP %dR@KuY,RUk\,-PlkCS7`89;Vu(9_rU@(Te#S\7q;R5id=gGUOmNM#'a[;P$1gBd4"FE]'log[^o+F"26Sn!X.fl-+j7u07$]q`Lf %%PFe6:IeEOho;_$A/&C8qhZ70*nh/ONs;OMTj#4[Sm1D7>Pe:bapJh.k4OD#XiY0I:"HF,S>CM#l]_YTWP<;7'D#;*" %U(PH]O`qQ#l\_=+h8@MRO*>QWh4J53M3a]+k006WrL+c,a`(`m#!3N(dIhb#iachY$QUbM+\gF\p^JsTCf:JG?FMBg\pMpDd"2XGp,teis2#N()V2R0aP^-+_%KB1h`gY6t]^qNbU%_6@3?k:<=fqKF %jlDKGHGB!kdP]/,bj!Q]?,H80CdMZMcYOA\l';o-r$/`sS`T0)VGWi; %204r9oR"MfW.Wt0WAB#"4_Bk:gP+r.GWnW7al-N#@\8Z@\)]t0Vu*i6pO-5324S`lQM'Z"EsIV-N,SIQ\rZ%A?'CP^BjBDGY<0j7 %gI/>qb1S,tl+"Em)7<86\tiQ$P;-+Lh%RkiP]gU3rNdMC7s*b5s0n0NN`=[(_c%`"@U#Z_<.*a`Y@KI&(.^\$5Q'=.(PF#['\?,2"q3-Mi4`6aGhN/ %fD;GI,YNOrqMHnPhiunRF.QpP?5N(?k"d1+Dt23iHaut7,M^IL92Pd?0!WK%Hf],[bQX%]*/$;^q'75k,k)#?piT-c%2mJD*"mK4 %nENJNf9q/[>cI^+m_MObXMqK[,5dIA:'Cs"bLZ@Xb<2rpIg1Ap4F.:].UO/@_hgn#q>MUg+llVbj"3"$J_!2Z0gmj-DECj.8bW7QZf7&VgB4Z/#m<=UKOXCb%m1ZB+^`)`\#m%G5'EdYPnY6hU.H)Ssg,N8*JPpZS"pF1IG@h;K0Vb@h %6,Aus["-ab^4eU\_V@Jtb8N#!^!@&3LBF(9HAm%1m=0#<1U?[,g[RQBVpee]jc9)M!32g3@8lqe%o"#'1@M#*'U%5@F@_L^HT),'OCKsX2**2C,sWk)c5rJbMhc@@1O"m"@_@!,`b/(htoVD\oZkWB?CDDC$137mCYhMFm9.j;E/en)'r4fk&3bIl8$1P`(n]^gWBB1/Crf#(ha %j'(PjofL7Fn&PAXDYF\!Kc6)eG3Tt<%J^kdagc=2osU4_G'B*:!1pYDXBSQ'6>j"G?X&,r6i?Zgb4\As(49aJWErcfl6;!g&^G#b %)H5.)*;Om@Fh&f9a5n2EL+0%5.@(a9Zl7TK>-YkYi3'-4U(hSs82RFD=j)AAOa&i0b'm298ff4T)If\?2W.tk?.s=am&s3>r,P#F %2>Y3I$)W'bT1so)T#(UPJtg)]CG,_,\[=6A3-TP*8Oe%-Ch[#]ZV-JZA\5[Lra%9d^7u(E[WoLRJS`TMV1bt]\t?EkWh#44]J[mg %kH!e.lK(#fJ(@;Ohsm-g?fq..4"pjQY;R-[ltT>Yq5&Xk9.?%YAG.=jgf'./ukUK1'14e[)'he11$ko`<6'g&N!L %8g'@-+DhqcRUPE6'%^*BKkQgkKpB<1=g(>HJWE;UE6ZL<]2T5^@\L.HOppub>q1I2?=T7*do)k(Z4hF^p++:WeDmG!p*nflhO:@% %cq7-A5?\NfhPM%#2G[^4_Ef78L4f\X/#RXHS?dB&912c%.M%`!_rp32P@P+iJRcP;mrZo=I0MH`jS_+F?kiiC\IOg+&Dkq*a9RP'W!2_)9=Y8(>;LA.X04 %M5/a1UT*V?"T-YWS%4=c5kG)f$Hd?C>'[aR\WC9$f5"H\5Pn`s#*?s %;4`)*8sukI;=[?.)W>=VImI/J`7(qLf@\h189^'V=d\Zf@o1^Y]=XnlbnBHHG)M\?i:%?mg]\44EQ3?cL]V25JaVgJ=/eV73@O-C6FF5T\FHOeS$g=d.dNo7W9`]2O#SZP`@MN=g:H$m%`Gdhoopq%2[4\Y#pa?bFqsc`'Rc6Y/#Kd'?V^Y0'hoX'oVSdWF(BQ02J %0CPo<,/:V=9H.;_-:OI4G$CMOT/7mSXR+I+8/9e]R_MR_Kfns,o!1-#AOaIP(2U0T6/:/j+B5%($esABAA2qK1:2I)gm_&2k=]%H %U!9A01oB#lYtiX9'I_^3cI %3[**]^H-8MBt=!:*gb[deSH[C9/@sl6Is-_AQZh[]=V@YXPaJeh;ICH6VQg!ED1.8[p'3sS;+`KS4[lK9c=k.nU?9adX*S;Re.0\ %*]Il:m_,s9!"UTicjX5!g!J?:&hd5]\=`6WmV-]bIlp7shNKGBc1C8W2+mt0)g$"HC!'Ss=48>U1G&H[:qj#sin.FlH!N!jN8&_^ %;XY$sS['6BqbC&d3p(;H@WSg'$j$)*7P$smNN2NR__$`$R=d1-.1g60+TdZ>Zs+j(e`$][FgJ3\"nKs %]>sktDnd^m%Fphh6=4t!bf_S6"S%u@!lSknd7UB:eNU)^n!CY,fAXF\j$%U:WEk;>f=U?_@eM&C56uu,ZlLUu&WfAQlJ0Ls%&M8@^O04H& %N)474lCL! %(2aQ%]s7BE]6)$Z`Rr/B:+3k?]=U45grDFW45tgI:;[-=bX];jOQ=XhMHo2LOGk"!klD]@%i"4H3FiIYX0duY7Qe5/oIUuaZQOG] %XSb6m#V5I:=/XDBKXm"[2#X=#rM2_nS=Y8jCLLZ(&>a+sETX^?#.uVjFrdF5W;s1\LL%,dno5J++m,/NnC9Y!/#mdWN55#P(RJ24 %h9H,O'#gj>r53(nm[@;eb,?[UWQ:+@0VIdg(ODC;"Wo$oB\`F_VSU#Sb^3G!*]B]WJ5>*'C/o8^K:A@mj_<4$rM'$_E'b?bK-q^b %HhIVl\`Ko:\F>5_-bPd61obJA&`p&rVRQdeWEi#Ncfh$)*cAI=K!(%Er:36dTFVKPZm`a`mFS$c(uG5j!h%6D;,i(q)oG['Q#8O\ %Y>k,5h@_h#fgO^-4o3at0+r]\>6[j29DjYgikF^FgrTUD'!8<-O$LhKNk5qdLic#0Fb@,,\_6]F^NA&8(uF]"(YI2jQ#2rG*Yes2NdCmmX@7d)K+hr9@K2UCN!%9Hs7%qmDZ?%Rtl6F*t*],G5+r<74mrMRTK?$o0o+<2?*RYc((K&!fA)AQ8QlWZ&6hrK%2_Rqk+I3d[Pc-2lo#bNa,cYqjh@$M=rFOJNshnog3*lj!U3NTU2@-d48jnCpT[Qo%ZV9 %LQLsq8uJj'g\'Fr3RQAu]u&UEA9lo+nrYi8EJ*.gR(J?8HGp`th-sFf%n%S`eZSM_1P1t"NYIum?eBC\$b(E:dgj6=)nb(]U$Z`8 %GCE%+(M^h":#1.q3_G( %7fpe3Xd0Bi^T)>+HIKYgqaKB14.^6;B@Q1_6+4qP*;1^epWsg,6'f]\L*"S$#[L^hTkAB?8BXQlNWEte#jN?T&%Ri9S[W6Cah_+1 %0/o=PElA(-8'&oNN77"SQ))(*+2Q9H;CDBEpXeb*$,X/,IfRt-&,;4`3*2jhBhKSZ*^=OC[A(dSQM['d*$EcmC$"kN>mj.DZfmO; %6"#%HA=+*7J9;&pl0(*t"'5tqWC8RCUJbg8K^YM%XpmE"AMV_ljRClS+J0$+F%kLIM`FgeUm(Kh2Dec,n5pW,Qui>g5!$!9O=M.l %S]L"Dc)`'XHpRjQ6T*&D=[X?uVs5\e:I4"Aen9qaAf3`ji]GRDd)/6+Z]_,7,mAhhLmo;X0/:p*Ql2k9S%@#r^U!`+PuuZ!:__B` %K$$_i/tPPl2oCKUdB'j"i>ZIBr#RSp!,p4^773KE5-,^-!M$E?&[1IQNLdmY-t:%L$N(@6sTQP5O3IWb_?:%.?Z''+87a=8:U %f'+0Q]TMP%h&R"%\7_J?*!@fe,#6RP@Uu:[7sOPmJFKP0',-mYl9[Yd&E#^:O*?@DFW?n_bNrb,Ng^`J9 %mCYH-(7I;j?=(`s)%!'J0R.g+kg?dnSe`W`bP))lRBPie8!RirN[,l3)-o1Fi"Z@:8P!`T-d-Y3:r'"Qf#S8b^b>j^8iQIR0KTs, %k(md)^J#9$*6E-+"#b`93*IUbkng2)O]?oX\JTMIngV'^uEde%B?Jr[UY/7>+dj87%JdV$YO%0dM('NZr8.#C=- %h,9\E8cpVGJ0#"nA$G/3?U=K+:!;]` %4(smXiPu:qE-I`OAo%7q"pG7jS8jJ*Vo>q'K,bl.?meI#q$E2 %Zf3r$cEN1,3hIgCS6`ge_\j%NlQJTSb)VQ.+1Qh4JnlFV2/oBa$)5fXAi+VH.L%b#03Ql2:2$i$Laq`4ro#t`EXL1b*$Q0=%ie<< %lE2Ytu'^=qdP48ruis4tDEJ,/Tm %p!_[a*kX`4*N\\h06BFs`WBUcm.cLk7H)1O=F1bTH\-/@E%\.Rh%$"2!AC!kcrhDp'!W&#$:?QZc#\tRPrRLu&,N"S(5$rY5/M0W %rXR:?FsM>Um3kVjJPd*B(sL8W#.),nT+CpN5!fXc*NEk+@84C/8N#_t41lWc%(tO"&Vn-HhBp8+?%+[TM^U>@o$bC#GPt]QLm'/&?S?Xrs_3!YY %PaD/-K/pi"J<&o=G6#P#?+B;@J99[@qULg8#(%g^.rD>M(p2X@!K*_s5Y!8m%#dRDeILe'n=jb=*PIqo]glie %S]r*1Lo;iNq4te=G__,.8a.&?!\(6\k<'\'T1EqYi^NI"u.R2PF[UA.^+bh3hnA]F2:,P %mk<]_5*.&?X6j#N'NY=u"N6DV-YO;j=V\=j>C_97J<#(-fiWg%c$ik,!%0=K.p!-eU-.n#?G4Q`ht9;@N^A:*cFm2Ro!/$>5VXU> %;,dORh?9..0)U?XMJ,k<61ug)@O@S(%htRmn[BN&+,)s95CY%7:c`tQ]$Ci65dZBjY7)NoGU<:kkAmji-SL;)-jPi-QhJId7&Rn,3N@b %[bVmhah"fIW]\AJ;W:KlFK=tO[Q##,@b!0:dC;jP2(%[+Ti>eR%6c6C*-QB-`@AI?qgd^(LteR)^:Yk%(XTu@=?R]Wp^!NJPB"=L %S_=-*`XJma'p$WD4Yq_5\[6o&JAqo4Z) %7-MM%A&STGq2B>!F@%]WGhAd7&/C$srT"CR+m0N#*6;,A %W6+AB>*T4F#"ppJJ-f0#f'jj[D4'./37^X;U]liIr[U\cA]/%3$0e11lG('E1l)d3uR(qBfP^EGoEh35L0g9tO#i7-2CmRVZD,l?kM'c %5,!Ko5)^UQ%B%;@!q%4T$u+B0>b\0+9eE1Dp;XoWBG&[Ebd&;:edLFoXfK(Q!K`L9a&0k3=pM6'Zid'#4iksKneieq&_*2'Jc.1@O?b0370S?(]'`mHkM?;To&Bh%FJr%Yo %G=@&r/TO^(RUgkc0aj4E4JbE'l>hTE_')=9k+!a;^nIKl0!"V<$#a-en2PFJ-+_+S1cl!&g*7&pMi#RbHrGC*\NW)'oGFB=diIW* %"gNos8.,U`Uc];:Xq"iP2@W[cNW>AOiklN:;e&Z@'_Uep1`"L@ZKg[WI4+ZUH?Zs/e4eZ8Y4X5gKt\YVE=F?DsC%3THjHFL@K)l#Og %XC0=)'4;J[gmXea8u<'h&aH#^g(f5T]/1AfgbR52-nlG3cc:/cYU9M=Q2]qKi\YaRRqO5R'Fg5[ %L550/P^#1@Ptqe,6Ts'3jb^GL3cVGuKi9m/20AohgARF?I&p9h`*?q#T0VB %]0j&p1Opj.E`/?#!*lHm0f*ODC=UeP!ebIr=JIP!D/R.5<^@Nq)Gik!CRHsq5EuWBk'db*V*1/"bKrYW(hlsf9U4SbX/]3LW+Q,VSk&(Sq?E)"6H86u"`$]>X`.`liraPfCn %K1kL@?tW@tSdJ%>3J\*FEgj7mkPugDCRp.[e.NTB9VQE7VCZ\R$_bc^A?u\(rZT'h6&m*h!:8+tq3VXTROtA%8DBZI@0ZEhj_A@7 %+^'mO?sUT?r.V/QbYF_t3+2j#Mj!.LetYHi'm=D$>Cir"d)Lo4JU&OkP#,*pH,K^igq9qbS88X5(^3g\Dq5[*d9%,08761K!H/4\ %/@&6*&QP\hYYYB_37,=:O7`(/)@)K?+9;WI'(6UdJBZ/+F>3Z.>tI(U_$W'5C'6Da-87$u>Y48jo13[Y=J2LS%SGXdB3.p-.CW"] %t71n%.X]t0@A$=Ou4\8:"l!ie0'QOD3(e!;&_K7mQhf+ZFpk'`/f %7R43k#cNXMF]rk#6\g;$_l%>B/IjtEBY"u%4:&H_#rQK';O;nG%Vj)UlY)YTQ.%rgBr`9:g)g90M&;3Vm>&6/$A %WHb)JJ^Kusb<%TO. %,=J'],";kdC]lit@:i(n^%mgXBW3*uGQC&k'`+Z.l %C3G]I[/_OY'3ojtW)F2hN9amTNNMf3>j7p6`0,fb\Llh1E(oh<'Smrcp!]HB+#Q/[Pa/*`J^&3i6%B4iC*G&eTK>%=-Je$cldA`V %MC*&mMD3cr2Zeo7;NB>6,VX\aQc@F27"Na(Dhr^Pm!l(cC$J[>pQ=7JJK&dpEHDc %4OX=m(mAPCO05WWi.ttV3jK:%"7WZ#XGoi/Lj_9?nH^_7aBU`AP[pm8=tB87$"r&eS_U=@d(s8g(sh%P^a*HmRfq/M7HLuH"MH28 %r1)'ZeXo1[V(+g9CsWMC(7[i(QRG\daOsnO(2t`q0f=b;J-Jqb?FFBrlO4hOC63cf/Z"%?KAkH&k?&sWgt$8q,"Xn=&^;V_Eu4#` %AeN8W]gc$_(+]Xrc`Clm9J8pLUK;kj2U(L8aAeL>IMVAs!@^;B61Cam3jDR$ %^g's2JI"V?m0.U#P1PGBNY/uI[&t&j)M+_[-&>4q"Xd%I!qre'6J.?M_I9BHG!sNL;^E[)@npF&=p,*O<65ZIJ4LBNJM+*JKNYs" %$)\Y_k[LaKc=l3AB5ca'2]UeO0(0_dOR,%0E\Kh1n9"=L+I]t>=:3m\.=,M+\MA76l:=H34`/\&=kYN7a]"'A%uJ^=\L5I$88UBc %6B7R;_cI^;c7EV)$CH3FZES.sYtJ(""^8-h@r;@<>;JG3.@[)h$K$[$6Z$<:'k(ZVm]D:G>>:N[(dK[rZ,+AkVZ.CEq'HbR.9uOo %llD9g7lNTDX=@Kk&q3Il8cg^1CQF$ee8XuPt/XAO.%."9!;Jhd6]n/,"4MsJ.KB34ps(MZeR%i]oF*_k)XRb[3&/S$e[sdS3 %FVAWXfiga%_^8EU$%*@[0)rh,T4H+e@9MH&uiJ\@,]?Sb!dKs:C=7"*7mVQ[$uYUL_MS1Du3;6n=m2Xik.8E %T+pXu\F@/M@Kt2!%Q"3K]Lq:WI1HD'Ak(7O@.s=2/h8)SK1[o'nO>d2K`!pU %H)$`;%1>hc@fhg&cc_2dd&nbsk0kN"R#sQ]\>i`\/UMR>e`8&+V>70S1q9P@L(fsr[0*W.o\DJh?0,+]ka(^3:NgNB;+$e7J7h>> %d);*gnJ[\70GPBHZGjI+_gZ)hebI[I(13#V6T"))h\W %.:FI-Tg7s!DQ:ee"0pj=PHcl$5m.eG.O0^-VF>u"GU"OkGUN_s$'Zp"=2g*RY_gKW5;O[P3`Tf/ELQg0V4qZsYX"q0eRj0FEZm,G %Kr4GT&4;R;,_sc[8HXWHi]-+_^i3YC-/h6?k33/Fg/tU2=3])X\$flo_4ef_R\5k?@(fal@R=N)J\B)"8LIr)QBo=.W'HA`ah%E" %?Te/O(n2rgiBlP-T>PUi]8Agc/&K*A%i/ni)7O8&Y&'Q"KYn''!\FY %76nS+qktN+gm"$5`2'nhMQ6f3-\4:-=/BJSMWq6q!mO5QIC$_!+.'@Z'nS@iegtL5%SMMk0kpqIF]]]oY-V+c4*#`m>s^-_e35<`/nYnK9b:8D6)bWmZ/"J1)N]N@k@k__MVCJY-I(de?l#bS7P8FW'd!!:q+Xd?_T%iN %`>U7XfZPa0BPgb4OWb2\CQH7b:MEhqF!P/Wb/Ud-ZtWDX3I9I*7d2WQZX]_7B6l`??C?Q@mo8#J6D+ioZDidmB'\7l&un!4Era %?.GS6<4?=cjl<_0fgR0El5_3pi!V9``:Sr.@HEB+O=fk#8ZojmJt$'uT[F;Ub$SA*%&t$&&:Ma$Fr\Rd;,q+AlDOtg1?;Poo&>uC %e\l0`4=VM+VB0h[fWn$%f_Xq*M8[abd/WV"nWXk %3PiL-.U='6!;bKP"6h'oPZTm4iUR:h_)B<`GD+=*[9VK,&"_T[B5[*A0Fubj%j.+r)"2<>jgs2H1nkk21,E%W*2:[lZn74iU1E2t>G))/*R(jTG\`<$bNs:NdCc?FRkG26NP/Ml_;S=K-qD(':"DDN9Wn %fbq^.q4EON$fDu__SF:i:)_"!L`A:;3&&5Q\Qkj24pBj%edp&8/5\0dD?/:eZ.WYr+Q"c05ufpu('[TN+jf>..es]VpSDCp+Q,ln %4IiSj\;HS^?(&j$($YDQ"ECruF\=:%-!Vhk %!@r,0R>b:Yq!nV#_+lK9K@h2=^t:f^H>hLhDG_*@fq8[&(!`6O#iAmLJ3;tJ=:B1X;7sEj@,;r5i\]CjNJ55`i7ShK(Q_g_@io]G %^Xu6_g>%.5)+t3/EqY1pVb&\igZic*:?be%l6[AZIgS_/qpX@qGC$`&H6?Dr0]SUfXo">""X`Dp9H0_;hg.[l6^kGChpb.qF=eMeGQM?o[0oAemAmB_WMacRQjIp.BR %H0>3II@NP]#)e?McC'#WY]r'/=sTWaC[7I4W!.Bs2dY4V2Zji?+Z,<@g#d!;]if1JtYT %0VY-=*:Hic/78XFC4.gS'i>!fRMI/@+;B*l^uLqf7"u#[:1\%%dg';\$^0bXXd93+5n^k?N>IM.C524o/Cj1[@(bEQJ)2g)4 %#H9^R]'<52P+RFCnoDF,MUuF8!RqPB3V*dnOM&kGn`,5_YEEP>lcqMKq,-:bZ5.(]A4fDA^b"`IEqbE,1:>!Z$dRH50kFF%P$[-VH%ocun:\h"4bl,didYf!(2W%,TG\1ki5 %gMpkl^oF:HEsGXI)E95/&A"qC]JaFW6]/ar@HP[u"gVP`H/#e4Y;HQ[o?n\S8mDf60"1frWef*Xrk0PW?J(MCFc4;i$U/@cH(72*B(32r@=R+=DlBI*];-1/i$] %)itaCV`BP7//%U6M^/TLFS0oIn^"kq%XN%1bSu/Q%,ffR8KH\G"cl_#OaKncPgKN0b3QWd;O%kmmXcI5VNXT@,!]7Am\(M83h*Q.Am1?F39\(sD!e\"jJHuo\A(j?20r0i+Es7`qbA-r=!e5#8S_T2hfLX:Nfue,a#$d] %0jj$;:sYJLV6.-EQD%@@,fuMg+tsrgMfYoCD;Y2%q\2_Bi$\f@M5DK$$QC%ZR8_VHQYPGW-g85egtOZooq^LsM5g]U3nr@H=o,n_ %h-scEraAQ\b1]!.ZtOQPJI.#5;r[+,Ri+m$KamJs(5IT&Pi'PudO#'!KAMXfBUah]1k"-02Ueg1Au,6>>#1#CHS5t4,@%9%`gS5FX(GTj@UCk*715Q/ %.C=TZpPhOA(J['X89iqR.9(EG-TKDWqK=Z"MI'X.i:#>.A3Qmk:IWfY!r9N5`^N5eXB[,,/L.gqaZ^9ZTj^S=B"0oPCc:h>0edq+ %,[EdP$28oP>cE+\pcqgMpI0uXaq[@1/=.6uWAV+b#SEK'a,oG8+q8g\D#9)',?oUP/NV%Ko9/XehEnb;R4Yh33s[lLCh?J7B(0L2 %#oU?]"8(+Fes^KL^u2RO.W2O*Z"ZiX+A=@k^UV2Goq>A'/=5U-4j7;/9oK2N"df8,e9mDR?^!<#"`!\58SXP$V\qp?\_VApG8eFu %N/W3OQT:p5_aWsIfcb0IaTIm\IIVD!4.3e6KR%XeniSp-P:np9KPmdo9:C+iDYm2UHSX]a8L3Ij_6$\\>m(;`mS5Q/Ath-`25^h$I34HE3#R7lh,rfpt3^UoZl1Y^](tD %kC<4NL"Dd]5"]8>;pk:F%TsbkZ^1J'EdWF4lC@lGT=g:FJ<#7g_7+n=(_?9/.p)X.I+9$d.)dFP/"K6U>QWua[^c1SJ(*@dl0E]Y-5W><`#'ZXiVUIr,L]r^&^:Uh3t`'1Za?tjk6+; %jo2O15RM;pd!U1`G>#B6GA!\[7'Ru//&h^i.C>g/]c[hFNUdu=(\a/0lhp6X8Gpn0/[E_B3g$QGV7bZY=1Xp^AA0l&%oaqH,O9`@cM+n)!,jc8]A7[%@n0!mK"L#DG$l//8U'*EdjKPbXer6SkI)uTUD$a:WF93&qEDPSJfqj\ %QDg@o_[UIGVbXGmb*uG:9:?a5ItBW/QaJ@5N?U$u.lD+s/=.9^f9#WQ^Hu6ZSO(\*glj'(l"p$@^*5u^Z*"In;'=b'8AOrq8hO>b %g(WG2@/$IFfeV718f$9JS-Ri#oj@7%hiU"4Q_jE>!)r9Dh"9i'G#7a&n*CWofMGKAp%C"B2So#LmN>8eUJ%5L"^2*G`Dbb#U9V9i,+qCgWp./Z!;uE^RUK91,KYP]O8r.LSOP/fa3Vl;.GlLXVb39W]PQb9e%Ip$d_hAk2H9DKZci&M),LpKR+S,! %5'CLU.`I.8GR3Ib>!;MNnc9$O3XV,lgBNMR*'1ccgYFc(pM7+Eha92\r9c+#,Ln'o%&b&\Lr$-X:D\X4/UFj[`n`:A_=`dqBcngZ[_;?/U@G2M6o>SGa3)oCCVeS/-WWG\PBlQaT;5c.Wqs*eGOV %^I=p5'0`(omSNZX;tk1A[Ns%=fGEn(kSF>aiI.6jMu?%]_LSc],hW=qABr,BI=la-A0=*&6.Wgf3FDDhMJdjpp+O&q@uZ2W!'h(S$K %g:qUm=\X?RSCj6la(nZG<.7[A&NR+"Lio=n-aL`%Eb@0ZRuY#fNS"P1I"%+)IZd9MES+UKu0+/C" %rTi1nXn%r%EPHjq5sssn\>BSh>l_2^[.5T9m+5LDE$kJNdb-7(ZkFGEC(_]@Iif+]NMi+cC6^\*:h%S %h=WPlRkd"(nY[PR\t1jeir!gMM,C %+n%>XPB-TlO]nS#L>9*&QH@B7+\(=H^5E?"9PbR\P]fP^D^?6UhI!t9Q-NZeQaS?$m]`ld9Fh&Jr;[IQ=V8LDnuV@p4H4ZW(k'qW %#,lb'L7EXZXmL7pR-&HlrO8*gG"^V-T"Bu*WlHdM-h$C205e>oL;W5%iQ%l1.FJq^QedBY^,8'RRj*a-]KImn>$hCgjtELDj7)GN %go]>e)MaK7[*<3(Sd)&/0(VOs61J2RGF+h>N1V/QCUeZ*d25a6i!,mb;3Ja@.nj%!b1Y3RMjQNG'0nGLLt@P4S;J %Kkd]oW?MEofOZc!?+L-\+sOKVQVQaJ9+c4-6]N@nS(Hr;DeAe,>Mac%/WXe[q8@R'C[FgmMZr%aKM8^e$!S@ek1JBA:/BjO]:O0+ %f,'7:]L<$NDFmDhP0\72i?9K1M+jpeLNXe3Sd>(,7pqN@Xeh2n9qNARPiF/F9!W$kE%Vl@CtY=%Xa-,!]CjXkDV+_s=1g6J2ct:A %j;38.CWWberqYq5QYuWp_L$^Aq8J*5uf9e@]\p(LG^# %Cq84L\%Cp;#m4FN>g%gBqeJ%qACmfkR1*4Su^,@$<5fn@kI'U+WinH&ZA6WO:Y%R!S!?)+S/O;cRa5f^r1b`:K)%JQI %B=0&-fkqIZ"XjD]qN5e_WY8+7E&@[`A2;taQ!-NF(?!2Dcd6sHpij@2G!"Mr]gl)uo`IFn]k,2&[b\5+h3OAJoV5SYJ)VAhka]@O %D%1oURj,H-']:,D]Zfb!F;d^D/q]U3%\lp>2,;]5:\k\UGu0#X6F?TX>]$dMeL%9SJ/_J@I#63*g6=Lg)&/]Zc(5m:dO<)5GADT< %+7=?ubq9B0q=XVK^V/aJ*Rim7(QG";7WCOoG8f7RHYUn]0TnBVnMd/3mO,KJ!JK.=_RRd.0e_^$T(t;_I('s%bBCA5Tdg/cURKhj %p)d0:lf39kCsTPh$Q1@F[-giG#kE!$?'TCW>,J[[Zju>5YM1HE18=I/rQ/3D')"!H9dbtc#%qokgs5Xs=U(AOq%"ER;ADK=Eo\Yg %[DIjg7%(E4DKAZ/b]u1*C)VFSZn2f].m_UoE#aT!:;3]M=D/dgQr+an^l5bI)D.JDm!Xu=6".I+k'jd %j]B`aTm<*gK[/C&;bb3N:Kr$bZ1WJiF=)+j*P9X22upNGHJn+XcVoZF5X"=b?W=)`;S@GEKQ4pqOc@fi#Y9ZP %O&HL;?'k>Ff/:3Fm+ZAs]7\u-[3tB+H^8"Vo(hZ)oA6_IBh44#'mi#-$T_@.VY]b;2uKKca]RX[GRe4E5i"Uu\HSJ)KDYOWHG!LH.lYa8h=#YKq;;ZemqWG>sT6\VA2p?'KQ$`+oCEUK4BuY'] %J$QW+OB(ZDm:_!98dpg:IuXcF$]/cG#.Et#RVoeg*4r8)ZJd\Yi#9\4m@qa)&%JHg"%](:U>f\&,&d3"i,.4!&k-OCri6Zi13N[j1pLVa85L3X="(@=63, %$-PftF#-\S+>S)B%8V%e@co?^?J-,)=?n80V9#.Fg5i,m7-h&@`)=%P@>$(9BDc-8FU.H?m_A-L6i,Wj_\$Q"@?<]pn*kI?9B,eM %9:j'Ybs'0,AMRg@D7TL%4a9&jgSO:n<;[4q!=t5,MFuZ@@\kl`^*'1MU?IkD&LP$Jlg5%l=fpGD^"icd*.,tpIV#+@J/4+6=%(uA %fQlMH=&3j$12YR'J[UAKHJf/dMYWoG3,D_JD>TUd`9%A'&/b?9Xb8#+Au.rhb%UVHD\qMYq/2PqG$DW45Yq<(f$n&0-]Y>YR=%aM %jnPrth92ap=3qS'?!;Hunq%seQj.$P4X603r'AD(FA_i_s)BQ"lDekIU=k=FfM$E+`)`g9p+t.']u\P9TYfIRna1L*7(umBf5ns5/)[H2!Y@/eU:mIFjS.h %*]YL"h-k/#481bLbXG[/tJ\^*%gj %=gMUtltpU\R)/GOa5V%(MVB.n]@UrojbqI^kp,:e]j\u&le\kV+p^=l5[1A\fi86c;P`FWocqr^1KV=RU=O>5aKc0\WXR.MdTO*I %7,&"@jiH/@c^U5LY@jqQa_M,CZ?WIElsN*i]H&);'J_o!/dLsPn%!VTLF`DL3oB:\2nS6aVk$$?kKj&'p5Tfq4F>+U>^@;Hq6bOq %bdm2^ggKt9lj&"RTG84q#'dV@)h'@?:N2@jhln-JY5Pj)Hb1'&X7j-?VoK`6*XZnZVWokZamA(S4Uf87Qk/)O]/%Bb81?[e\mu&p %\;.6=0ce$Hj6g.>]J5\sJhZ5,2N6l47g:6pd!_JLcY$VZb:>d@;m'-"k,%emDL)]%fQ`EqCd`&pk:-EfZ%;PZ'Y$B.T7EHE/+`&l %nGR(+0b;#9lJa(OjYmJ1KK]@X3jIb3c*n)O_NNeah^tUq3;0FA^G>6d+I%]*7mmJS];sTI,u"J%=,l#,((3T29`fW[NY.D76Pp:\ %>Af30RBd3\\"o\6n3)c04ZhTYEVe_MDlh+KqVA=ImCmhOK:WqRipV?TSc%;EalF=LQ\[rnX2%pQROblaCuJa@Ah4KIthTh6s;m&ceC"(ZOAO(2qPGk5#pIftA4l1"NQVD[M %YFe&Ho@k3*h"'_>?^%o4Ub]8Rbj'2a;;>i.ii\4(<@p.9O]_'/R4k:V(5!l+i[npohsg>O&`0V?e%5PKgOK74#B0V$Z!JbGSf+8, %;+fHq\j+rW#>)2RL6s)].Xn8)r>fe0%+LtubYg+KkG%/7h;0gq=SMs2s-]$pQ9UGe1e@8HIj\$AJaQ=OnUk8^WsYD-c2oP4.MG@fPb%2MVGjnL(qNn/G=^lWmW %kt"aL/p)a*CMDM9ZG8BIs)IJ)LMEAAG284+2hAGZ^%ng8%bu-kQF$=$n7K@OfCj(ugp9Z.WF;Z^h`$g@H]YB$XI\Yq"W,=,7_@?P %Ap'.kBUFKLDT+_YW/[`\!#)&8\:hSV`1?n#kCt7TC#h?VYGRPn%(Rb4E%*PU8"Q0 %WSPY]]^EPmc.Cfmk)P48pjKb2G>!2PZ1%I.bJ5'/?R6?nEdIKCp7 %2PA;f`>&+R5,=nC?F)$XqO]?qI\h7SRqa``Q6q%(>fe"V!'jZ8?@:`4pQG6rb6NLq\,V$Zlm;Yk5JJZ#@o'DFrQ"OV405.oi6L0L %40/J;g5[6ie;jiL?O!:h%K'[gHg3Tm3g<4==JIYKk>85YRSE5@:.,6?LWj@CdjbKYS@u832l9p!J/,C/f)^OkfRMYfJc>H<9NFYU %&D9@5/QnW(#YBhs6_FDc/Ih0KKQAX9%jDTj)Qrk@#ln+^NeH=j*dkR#%t-AV\mtUMniCaGL>.8KbZ2G7W+`Elp!s:e&K3H2=s2,G %"^99d$XlVXqG3D9YsRe$>5q29Od*;7NT2,=`87pb=[^Y969f4LO?#D %QIPujm6s:3dp&:[](?c`pb%S(M!XH'?BS50LHS)h8TZo`NfTKck^\>"l9>?!bSnH9f@o]P'XJ"(2W_;u:!;rQU1Bfk>n5 %Rt,)'\/io`blQHl*eP)2Pg(`WpPFEb[UXOfg:<"f*VQAbOCe^@A6i'[khK=NU-WGtnta'ng[rbD*THIuUHB1l[!Q`J*un[#[?o_& %d3e3H/B#uA2?%Kdo:r;Rps*Cn18ET9j4f`Ro2tr,B4#G+eQ-$e-O'i)DJ>i[+'3e`6H2/-@r#L(4.n1uit]!(aGt@fI$da@5pRd8 %&lh_2,$V/;q+pt'1j5`:m.>%PNXB"Fmc>jCD0jBE&\/+%M%QCnYcc;,l18;\rnJNDXg`hp*T=XfEq+2N1<#iQRh"Q_U,R!K"kn1: %n?0.4NK-5BF%l;-WG>[8KGT6XPrfAr;"&G#;bL>'i,FVJd]dq1`K31U:Hn\uH!s"K-8X?I;NI5po7[e2^mD9\BK]$\F %r4TuOfg4K?DL5IJTSGCfj7bShf#?m.%5n<,fWN(m\kiWr_7iTB]B%YBE2egc?YSNV,sZq3b#",L8u3X>"I4A0dgAT`cV!hLEh %S`T&*).6G;9Wc]2pmAm+HP+WhfZ"n=V.edokUa.1&j@J#o=VX(_KlRPabX+h[@8dtrHs]SS7TF[m5JDBGdd+b5kNeIE"$I+(jGk: %Dd`9;cOO82k_ZZ;ZPk$_fq%T%B`Ugb"4c13MM(,X2*&FR_h(6Z,,)"C[=5>i1<=;D`&YAlhM;r9ouhY-iRAb/7U5UB@"D'Y+VT-@ %`+<<&Q@]!KD(7dGq`GYAXBNpGrGh!,*35VD(kQhQ&i%IK+E$lZ``S!DgGVR4XQ"d"J[Ya@r1oG08T9gn+$L!)F>i4!N@6?AjB/62 %,E^kE"@>>]jQW@^Yp45/\/MsjBdNSn"(#[RWP^u(r1<.h\;[.3+/#piLi3^kg0%eq0S+h?^pci8OC<+E+Qe3E5]*ZsAIY\,?^B3* %G[>?*.:jmf:)iP\+1S0j$\5/]]+UR9,u=?CY!H=B@C1C<49m"<,4&q5POM_-^c(g8bG[AZEQZrfHEF0Tas3Q?B*^="#.?0T,*oRN %MC[QhhhV>R07At8?Ec(n:bR[SrBW[E'M\lG3&&2.\gpPe)W=t;&"qi3t[n'`%NF:nfZ^Dje?u+J\H%F7k %G!u`OV(Ze3P?Pu,q)JjC_FpVJY7hng1+2m*(U,ApNL:^CKOsY>Q*$Y4V,7CMa70]6o%jj*T4HIin[Kb;EMj6+&>UH8)0nV%nq^p?ZK5FgT/)7$0Zu#m<9q%=k<#8a:*6!@0gQ3E`.WnCBQR0!5e+ %0:\EgGI`GoOE"MLKI1sBKHKV!q!QeMk[;dH75(oIs$3$c&GHAd*L-"i&2nGW%jJrN:utk/)Mff=WKukH#CEH^goY?VM+"R9?oRZ_ %@":EEI7/I/]PJDX>i0UbgF(eHs%Cr^NCHJPj>#.[ZuE*J;6c@IthKtp@`MaBNHr+K0Aq6As4W%=BW@dbT1.VN7+;4%VWB]$[( %V`1!`%,@4u=bE@'J0,79!qmDY_/*t7(.O]@&jA%KpSJhF#9^8\.H'FE&>,&qZ3Q(sSHSKcm2(gbkZYg %6agaZQ@.jA?o2cH(&"K1-8DsljQtK/)T4LRS0>XpnRQWqR,u!ZaT6!/fLiY9MCSjTRGZ,%Gp48bYQ`b"3V%e6"P.YbiG2:r?A5GD %M-=%bmc2(>>IHpC_A1-=Q@3>c_mLHtbSP8p9#qc`q!aJ_40pGA"deQ7ZR8Y@/4pJsk*&e)DcYh`KGi7-IW'0CN]<7#MKmfC-YW)p %?cdq17gWb/_])e`ZGUG^BdSHGbE_fn-RtK.pdt$X.fio1#h/pLQOoE5As>f#Y^dO>VOhg7eWlG\Ogj806DraktLC?mLCjDB5.Qigtki`d/GYTA@W7_bLUFis[Srj4jtfgV>7E %NpXhEpqaA?.ffTai"$3G2*8<(M5q!IBO$\/[5S4`O0!F)g#oTF??[!8(L5%a"Qf!H=J&dPf&S`(]HXC(kL/h[.^j\abnY<=47.S6 %S6Nd[p-g\:U?p=BM!tFSF1KG5];Ye`n,U)ES?Y))"@?`O/LMko=,?(P7k\M!o_E\kL=9RJL!GK0pM>kG>hgLlPH:J3#kADUR3+-p %9c\4_Fc;l]>lao_!-JbACXD6p/d&95J`2S0SsNI8o#sMc&^t`D-ZmQDn=efDdo"[*a,@/DjZIp%GFE)'G`r6sI!DC@GB:D&.V2_S %9KruACt6k$i2&$`.>W6eCFF&PJrhiEnkiqYiKX]k/7D_D-+k[U]I>n\O/IDpV6F/OdAn0V'Mr`LjK8pe9g!,J.H7:#(KhS$es*1m=CQo$ %_S(`4ArEl0#L/Ya5DOHU$>7W*RF8[P@bHPp^j16HQ.p>gkL>\q;Sq5%JY;A@J0d&Z6+p'/A0plomb7>0Wdii%%tt5ch0hdtfZ3WP %cg<#"^'be-1nRehPDcqqi@V"LM7CN*:A!@I8&Kll!Cj^Lf3h=V:%/IJ/8n9(_Dj/i?K(US#(1Q;R]WA!-5LEU#2?LcBO:2p%):U! %'eE^_!3D/r`i0Vc".Mj\ILS+OA/uHd@hOANH2fECAifdO7l[#PIJs-=@38o8G`/b%19nrWRZ",#>b-f:GpCb7%TX$Q`/l8!`M$\8 %4m0Ztn(;HL %K2]n[8Gj`Y/kb.)RI)IiC_ftC@oPkgee0K[J#OMEY%7Wc>WpRFiir'>A_65Dj`Uhm]ScLTC"_=&T-R5$blRD+%VKa)3.q?hF4]<@ %)TsfFntE$b&0('0lD#PE`nMiRc@Aj2S0HdMkc %7L&D'r?+M16B>IAN3Jc&/IJY7/RT(Z,uKVXp8a`q1$Ai%\6CA(fpCR1O5oMZ6WF^+rE>KZ=GKts)EA_4%J5i1[*U+[AelNl=f94\ %*8iMU3.Q%OCt,.kM9YTP"*,<_^Fj2tM@@d+P.S3q#'k,.ZeEpG_k-R4`; %X/`'+l4b8`je-V>3-fN6C@n5#Z!0El5r;_ipO5jGlEIbV6Hl@+h%[rK0O]S=i=E.&Dbe>),12l`@gH,+^5i(8G(h&gfW"9paIOG5 %I;)V^=%T0TB8shUU6SMi;ja?+TA<]M_kIp+I3:fI(5F$@FuH"BR[/-%7:aMcCOYk(Z8YS_)9M=k2D40#!M'fYQc#7=s53m1cG7j; %PnKdW]N7NCjNUS(%+-n"T^TNe9M5_ZXQA23m/L%ZkC4A8KR/_q0$7D"No#J*G:,8eY26m%>-\>O<>^bhFK13XS#%f[m9+6'qYog/ %Vg^YPkL(0@JfUb%r:9ceec!0D)/Y9sDSd\U15XjsjD!+jM8G9GX$d8KNLH^K=Kg35!0XMO$k!)I#X_)BD73Sr&5&>nfTk-]pRFSqkk^MXj8u$_oBXc,iE,Kb]%N&tQli %BFnRpDdI>rpAAFf%su^`MjTn3qXP`"RK)+.>#N[/`7@1.We7sC*iNPJ:I#5tbLtk:`-8D:nWp=#1<=3@2P-IU&u:u,k)CHWrBEBa %2/cbSd4f@-%GKGH$^,uI4G\@& %ccmbRYDUKIk'5SY,bYH.oR7)XAA.@$rHiOe^$57oM8Z&$%B,:jet[@3BG"MsiEpPtMr,%n/'C5PSpQnU*crh:m6'Wn5n0VKU7R,8 %F&o8d_m5,`427Vn9%ADE]*"="%fQR*2fMEPP!l"'oL(m2]hPE,M5lu)9:pOSf`r>p2=E\AN+OqUFI$,[l@2V^lYR("SQgN*:bLsY %%F:ca_27MFYtheg<7\3?H(.R+b_m=Hc]<,1.C7GU?L+5tGk!\d(QIYrbDuMRcPl+46)T4h=4In_g04Hu\]Unb%/L^4F+7W=Nq,duhYbiFNZCTo?LbkTG#Q%5#'Kp69D6(G0I;HJk.dcK_8ns=N(`fZfa%t_f %8*Z5L%nD1p!F@o]:+kCU+cKDRPo$D`qAQ62c.7]^Y[Q19dtuW_KDbJ@MJN-`Wo#J0frJJtORQE7nAQ?i@o1a<=[V^JioO?2Ik'(+ %L(!&QOb[l"&Zt7^9PuJBka?)dA.DF5)]fZ694_C^X5VBg2bL.Vd32m5Eu6b7Rn+UEN?'cRm]*?M-Q\$.i3[5_`INu=H(PJ:A`_l[ %JumA"$fTVhYY"UQn+M32Q6SZYlpAQ\SRgt]q\eSg#8-.n2mL!2*=gWiXQ..^_*@kX-i$>gY:mDS3T&L05EEu7k( %Z8jm$75;Hd"?JE.*upr";\eOK)OF/S=>ZfRh&_G]10F&5h(hq.5+ %_d_l'1]fQJLJY5Y3*-d%1h^#'\GE`?`C6m5(e$WpO@n3$&2(_>a_'4Hle2aZko`Vs;5J7\jQ%miNX7U<90/q/.+.KZ;(&.>Ui3GU %8@:%glql:.q\i2FTk\RUMXMci8^G)G;PtOPG5IdRZIUj/p+QT)-7O#8\Nreo>D='mY*q[Aiq+ijVAFD.r>IN/(QT2:SDVeFosT-..fgBZWDQ_$cbRY%'=jRn;\SJF&[P %pE(4Lmm52,D/Y"^QGVq*m/<@]kdtV\-4!MN%F#WP%fsIi6cjN1,N,`M"5SJT@G&e(Bul@I^2_ %Z>pI'Z9o85_#9Wda.,mmoRZ(L?#$6\W1##OF'4@+*8Y$#ZWaa/_Z[7aQ"U`p-p.2*C(bB;G!Kk9 %%A8V2qoZG'G,idk^1"V@AR,MJ\[l1ha2M1q$!BI[#ldEb#)l=46[Eq9`F(jo(-,lZV?Wtj$X%3\OC`%F"IGo'KrrJ7J@14TcmWTk %YH]'4I6':RCdWRu'b44R"_GdFJ-"YA0YeSS&oRh1[X=NE#YX,VlNn"p#PDOIKm>]cY$p(KaDU[FUufC@YJ)&A.)J1LXm1'i-EsD@ %)f:20\d;B@]&DcIi)3pE@nGa:TuW&:a;iPjR+Ul1a%Gq23Na6oB`E7$0fDGT(i %^h';oJteC=@K8a\@OJI0QA$Voe>@7h*ThN2@5GFKaW7kSE<$h`ge7>,qQO1jI22_Y:u@P9/m%lYl]rt0iS0(T-P=g40m2C@%V
V^$KSU>Lmqj)[PIj4*g.@LZ(> %K#5E-KA;Aq<)U4SEE_UK1LgJhmeV+4E(n#_PNR=@[lS+M:"b`bSV?ARkiL%(ZWWD,aXnc5H?<[0&Ocd5W)i(P0Z3(%C%o"Kfjf35 %5[$G?+hc5#@P\p9VD_mV]>V49!Mnk5r4B?BfT)/.;+UscB.2-O]rr>5SWP+@U]mH=C7ilr+JP^dY&dgD6t!&<_L %[OIf)js\^Z7(TU8.j($TW4FY"M7D@.Oj_O,*+#&tiVXk6&ja*36%X4"+Od/Yp^l5<_W&cAOb&-IRq %lXaf0ZDi@P5\9,:q/'#5"/Hq4!$`7'WR3Fq.XKPJ3UTW-#43X>;?]!D8[T9ggl,:ja,*fU8`X.27X#\c[nJ76g!(24L8-NWBtsF!<\BS)Q\@16ga@?2Oa" %=]e8.*kYgH6C4jDcT\P?b@+<5*('C%LN14l9=!^*VQu:Vm$238HaO-NGO01^7k!,cdc"b!1pnVqJHikGi)?/YE]R$T$dnFoZ'dSS %+J).Q.+@UXE`#eY?pm9*u/UkUV#4-G3hQZgeN)Bo5k>F*,U"Mj>r$GB\g`fs.nWiqPq7Tf_2AZORm,0j5Oj('*ZoiB-5u,i@VN;"?i%VCp %=]Rm=C>'%BS;m27aIhH=\e?kY6Aa8fDt>8Y*2h$Q2GCP)lE!Tt0mM2?qtWpk.n)I,F%>7o6ZEYN-G=4AReeVm)p/jV6Zn<\Bk3Ym %ipA&$_U?ckn1aOf#<6!Dfc*P4G?eK]$mf!`=GEVFOF;gL0"P07$2o,@>d&[.7b,/a.!F*fJ:6R7YQH>)V3`r3V;CA]==?;bk6P#r %frca$o3c4&EEU_^k>*RLP:jZ[i(\PO[=d6k!(&?L?C1n*$[6`5Hd`45_5nVqaU^d^N<_1Y?Hdi_"%5$ZaOK2M[F-A8KaX9'GC*Pc %N8!=dbgo3rS+.K9H:^PQB`WGG9d&guOEH\4jAVqsH*j_.Q0G8L^i]mL_g[T4V)-ar]%)4YN]BJ0l&&t:er34)JLGoiYLVG$)##=BQ&XEJsJd2Y]biP*,qF7Ymuf3loNaP&.'LE8EbF#MdQ='pROn#'oJ1%%)RTq8 %W:.\&QOklE[N26Q`X*$KH-HU4fKD$j6ql$oU--S@nOdFpTQjcOPFCtr5@GC:kXs2bPqHro6Q4D8:f^LTZcI;,@&VRsrs@?+F?n!: %:VGO@lFK]h8qe$?,W+#lNuflYi,Z9S4p+]W8P;Oe&CZ=f5V^_0M+-B8/J68u7X&WGZb'G>QBsG(hXsDj1IRp5hVAcT?^:j5`*3ZQ %N%Q;+Ik8I>-W[bJfTn;-@6H0h,`pD!/o)9Uor$]r90&>snILc\W^(;7KX8a9KoA=KQ0d3%+BKl&Pc;l9Ho'kF&3H0n9p!J.]7\QG %jtZ:")3[Y8VH2(u"X=gXRFl(X%Z[BZaCq'Ja-FaJ)n@@!38BrnN#GrD")X>i:E'KWB>q1][G]r-AYcXD`"l64$j\22qD0T?UZB+D=M7=Pb %>//ZL"W+)LHt(8]rKLS_W(H1r%A53O\.qYcX>%T^3bF,siVklMJnZTTZ)8$S#ct[p($L##8e)AqO=T4"!./HO4#Za(mo/c[Yf-Hdeg/_M%a)4 %HraCjNQhZnf/d/'0;Bul=nnUL1/Nc']DOrfk-/!jaFS/YGRH:i%e!e+Bcp>&%Gb@T_P[bKjCPb^ISZ42JJYa&rB,_s/92q_HT:ZiU:lj2B`N=9a71!Z>a$%6EsQsI%%#sRbeLb?6?.$cRi?].0gZBeCuq=J`sAs+ %X^-)3n['tb:^&XSTSZ2r0-R.L$!e2Elqs$Y_(n0ur%XCU"H>jH?/bcT!p/f9eA=QGWk__t%6DB>1gk&k?^ScKG9TDW3(bu'B1H2, %LuLpnJAGNT3E9bpFXtkqiWS-jc[\l*gE&+0ctn]rG(_BN0oas+WH3]"87=7#%$g;,%LS7!qFrSn1,.d7ahC7]\rbAidTjEWpX',@n-c?H?i/OK[(sK6ESW>/ %%_5B,90&J;mCQq:.5/DBb0YI$/V\8OZ>'D_ilN@->t+p!LIt25n=i-OaIId8)'7:0;:KEI3+RB@BB %5SV_G>c!MYTg-j$e0EEC$H-[/JP&f#1G?g.BD(P-7Ao!_K:OD,Qp%GV.T>S<`hX:9p&,L7Bugc_HZt:$+mi#VgQ>Cs(f6F[8fAgb %eH3j\h9C5dS'%afhTXmb+/)#rj[(oa2*tGHFuM%dV2r?$D_^0X[:JSse7-G+l(f\QJHsN'r+O'JT&_.tC&gTY?t,';iar&OH0-oj %d(\Wgn]#Uo(;5r(=5KE.qhYPjWU%X!(IP0!WN5qQW*O+Z?rebA4PVHc:Lfo[r4;ceSe<@!M"Af8A;TYJlsAm9[s*pS@Lb?E=_nF1 %?!7,g)Bc)(7G8f7rLrhT3p/l4lP)gKAB$h#e&Vd$bl)Birij.F<]dX]^=_>FOk53nQ-.Z+597mWa0ok)5I&1d5h4kegaa]p.1Tqmp%Eq\X_!.F] %VaIP=cZ_*Cs"`pOrk=)(1.o\Dlj?OCZBZIND0!tZNVc5O,)<\pl?Z:5OsiWP13I=Aa5/if9bEQP,Z=*eYUA08X-L`Nni=WHQGLlf %q*o>u/_-7Y]RP\_\_YXXLEFp;D#Kb7ZEC?/qH.)OE4MK[e>+NWnO^%Wh3-ro\L2kpY#o]im>q-15!hd,9Ar0XaF05QSAaL^is3\= %59LVq+8:Cm:)B'2W[]mM>Q$!kQ5&3CK`!Img:d_.YGAUK.34&QS$D&h8ahrj+i,W5_BmHZNEThBWpJ4(h4CTd.2$4Lc[_=jc$!d/ %8pX1i+t[GNHb'F@"25=EXXlV>@g)tT^.Hg?^-o=?!u0RH$uhFL.>Kq3[?5g@V)t&W5e.]5l,%J+!*K[Sk/85ubL+Z_7UqFQk(o.2 %jfXhK'Y>i:Md9*(k!uS$AJJ=50A^DA'Ts.@EPsnb;KRl$,BJUNWG5T"oNQ*4Ufr;h/#/Pg+qq2+d1V`/2QmgQCBX""^mX9B=f14pF"[ %KE=bplgdQ+PqpTj-?4#>eE#77rmE7&1.5,_bYV]a#4O6TeI!0Ym`,TR;M'JEJ4QV0-s'ndaYS*<@a_=W[46,3E(pmobl0O1\hD3X3/#a6=X,dMk!(E2gTuM %?UE4>lPpX51TO81pG8l%KXH($\0'e+KV6Q#.952oe9]$#3iLV_j.Y=D1pq"29.A$G%/t620)#V)KWl1WFX-I@jKmXs/-[sR\TEqC %Zm9o8iuFSVjH'rb\f+i(9823!SX@si8te<3CEdJ(:9GZY+J6'lC`mDn"-g>LUYT+[B\-@TXq/l'd>E)B*2#ed!&Z=mEiuGK=p$H6 %L:'2!d&\","d>S*]O430E\EdA2BGtRV!RUXl4m>E@1gEnRDrg.4CI4Q8]Bs>_hKn3;EXs[(@&I]Ob[Z:,rr)fL9HN67T-1Be.#g5 %`D;YtkPih]$!a?spM.uFR7dJJPE'o,)P[Vau)"gf)0A#JsNqJ9e(CdV)-YbLadD%!]-XH07;'SlEYQa`=0h-R'MI66+ %etQ2,3m]bmI4YYDm%0Aa0gJ[D-FnV4 %5O:+P,IpE/X,*:B=Fh(#Eci2C?A7i9[<+ukKOjLj_/Y>9WEroX.1Pj_"ofHn[D;\WrZYYT)kEOhphFb*)-=+5=. %8n7'Ylun:/_>KAk6)<[ER3N4C$L:2:jJHLR?uKfU@ZKTM7NKXrg6XiBOE7qSqc$4J`I;lIZXl#9(u@dk:H!K:XJn_K\;nSo`,OA` %g%s!k+pqUXn(AP.R:I^5hU*gKO-isiqKOfKiD!/255VH]ol2_dFY6J.jUr_K:m.#FH%2Ekrl=lEhn"T^Vui&r?I8.;mVcn"j?U>YSMGNbV^6@7B&gj]H6.Bpp>JCa6h4q%^@?\,^UQpMIo1aLE(J;WLb@* %>$$\Cc+@k!B.Jk=^2mErHhCDZPbDTV#Mk=B.."GG])]Pi3Af0Ke@ht$#2A80??gDO[>.;Dr2'18f(nk_\4KhXi! %4^Xd,n\1t,ZVX_Ejbq&*a]*^BLfpk0B4QA(:@'2d$D5>YN)$t[/CLTXCs$oubICNb:\!3m'%`'\R+l9(iNeh\lZN?pFc>tS:;?&t %7K=1<3D7\.2&D2d\QbJ,P3^)"Z^3Y6l_Se+1Dt8IoHh)7YWTZ"B<\HJ3V'9'XB7BUfMSBsMODBe;al1GB#W"!RZc(=q2>BS]CbCt %`3U%^fBb5_:Qjgc/:V'F;S^B`\bXMApfDk8/>nIOUOI2?W0pSE'KG]kaZdVSOui&Km@4cJ5>Wfof?iho`Sg!lXE,HFUnVfD%;s'eIjC%j(pke#5?1:+NfXJdH[f>eDtc^ %&Xfd"h/\cULT9,:D-hSF1_mhLY:1A;#SRDVfG%.N56'4@a;p[2WHEpd<2PA#7/9ReY/3/+41skK5UX!RdhLV3?cN'7(A$d_K_3do %WCTgF\n.O9LH9@HHj8l&$=UtCrHOuY1^[hSi\JFkni=^^34fEg-c6tj%RH*Vd@?"C$7n7@MDX,.m-s_!2OfFZSnU;Jd;k!N$$">X %7RXL^*6Ks27m,VF2\L/"s.DYj+Ic0q9&mZ.Y3["Yj3WfWQ6!u5Kff:pg5^^oQW5IhJ0X9//IiPI'pU34A7cOTtLG]cJ6/+2uF<4FSZoomV:8i+gE+WSk_&$SfWlG+_'PHnP:_r:.:IfK$kq"`,=BS<$hZo6,h<\&8/s %)oK7a3J.)QGb+Nrk5a(fdYWa`jHI`\2"L/iakdWLLcp_I9Y%`+[.r9Fr;!i[JR>;U%b7Rp<:B0h7)M>OM*;%*7?1*WftkjfGpOWa %Fm]VO2*'UTN:$d;2JMAc,5aV9b=NCOX.^>p(a,.tBY$l65_Ia<,,IT$6f?bsO-b"R,?U[kFZXT:&H)VIGG4Q!6R??r4C`otM&*_' %mm/'P'>P01H_ME&EGc>(m6#oujeE0le@MMo6:3@eZ\DW8\-80u5naCLgP?]oP.;T%P,Ph?mr&dUE_UF\ %1h20'l,\\:KdMV$&hR"sn]PsA86f*7MO'*\"8'q^Ks=^9G&AFe+*%3*Z-knOCA%2 %iA?O]*M@NmZrhP3KINo9YUdN1gEj+Ij/_l+kkU7nH$L'[qL+)VDe*c;nhB8?^oN6,3Tt3fSi_I-g$X66r;=NWf+0qC#(Z=XMr*2/ %PnCUcL.>glU-b)BPpC.JUnEdhdU`P8fUdq&D;HJn:dfm&!T3mVP/06Lhu02Ij.H::^\Nffq"&G'j+$pS^\og8s3(FaOT#D%"Qi'^ %rl\[Ja+*\>s5cKEl/2O30E1mqs6Spp^]")^s64J$/KXkW^\eV_KE(Q50,;5i`UD=GOP&$/."9jbclF"YD8>HP%jsk_`I:N32VVQQgatEHgHMd2r%a'paKHWa#$TH9t-1MV[qVLNbj>qd=-'%pXj`NAV-hK\_R_gnac<`JhMb(i<6:9DE7HD %k1:%F)N/7iXu\T*n?IbNf_FKMN%^aYq*s["oK9nQXe9"`fC,VCIG/&<^k;A)n".iQ;i&Kgj5oOE-4Y6PI,P3(K4LWro/Me%/%eR*Znh,tO_jHTh^MpsR/V&)<7BY!o^7=K]SS+CfbYM6B>HStfE7r.uQVooo`5=lnpo<;$d+M!`(8TgMMZFSuTLS-q^\fS7$hk%rVB?uoMLee]] %_N->.$@CDT7@q0XR6@20FJD&+P,fr?A9tqL*JE#:cU,ZN'CKK%F^GBkK]3gs,*QAXYp$\;eSntb8qI^(]en=g$QFm]q9[J@jC_r! %7!tQAf6n[HT^%jh%9-X$EXn[albs*!O6*.r60IHmVZG'RfnPm)0@/M#i!\/^;XMNdKqBV42Z@h?+"q.t@f:Nhj:.N0I,UZ\eVZ3R %eRHkH`hhkWj2j]m?Eb&Q,X%a[`uu!a.J&n\f6unK8(AfY=0juqR)ASgnnb?jH?jQ)Sh0<-C*^4BkRUVDr.AhQ=j-%l,E8k0e'"&Y %!,I)U:A08ZFr-V<]keU![aC.L.,+X`o-^HBWj>]?Tc,!q`]%^lEl.1MW"#]D\?&N2OgiZ&p %Wm@>aV3fMohUZ5!]CJSBJ44C$I&/>JjX!bcf#gL\VUm+L5R`MN;uZmXI?P',!21ickC6!tpZ-Q8kM&UT"q(5;5g %I_d3%GR\Iq"6_*tBm3$#d)pS+)HW-G0.)9=#R.U"XW<@%"qg)1<]"ji]icVt1Qp)=HjhW>=eaN;nT>#L:m"6i1"];W3UO0&qRdgF %O8Giid/(Dho%[m/gG&(hnE4p@QD[G$@s)Fool]%Cj;q?.9:OS&bfGG.@"e9,jPK#tGR_uj+l\VQ[)0oUl[Ef'?*ua.8])N?.o.8c %19n%[k_@fj=YEW\qric8b8pXY&YE`;^PP`m4!GQn@+(k$63h"3&[YaWHVU.N&_:C<2Am%2u4-.Y7dmuTM_ZPmE'\>P"o_N&F %B'0;kZe:NBRUp,QJ@[6G6QjWRW6ZULllPhSg))uB(cjGA3.Gsn0qee*8,bgBhT*ouZ^O]E5cFM%j&DT35=`ksM+U,eEWls7iO+j4 %Sc4U^?1&1H+r7!Z#7>M%NN=g:PG9-d#!]3<-t5$hCAq7^iF)3L+!7"SZUB[gI2Z8qEiHK?UFa]'2Z.FFOjoq8D%mIh6BFCOpSMc< %kp0N>'6j1J',*]l\BH#6PC9TT!.Mpu/bfDaU[uluM[79[Ko=:5JQa1nhLLO7\6qJ0X#N:>R;rjO!'2"n=JtEE?@iD2f6MZ8@F&)[ %lOl:V2N'n+0gt'aRbN:q[Kj'lW2oKHJ@MN4K)faE2`\l@e3JL!WV*.#Tlhb$"2Hf[P8Lb<5emUQ %1@koU^cfZ&7QE-fjYY[Xf/9YM)Xte(cRB)!1^!Tg5.2JraH_i=43SVmqZ[2m<\MXgPq*&8>&N/qMj7UTo=SsWT4_@\+:D$iS9nl= %9+Hc'gW^DTn)[NrKb$?rP<%:<:98/,Am)e:-O6$AEZn@m0d)mIq:IPDnGn5X0ikfO&EHAmZ,(C!6MTqkHg?K %k^QY2fg/$4LUiFq'"'AS:Kip %B(D4\Sj'(krabDMQ@fa1XrOrrFfYehc+;'K1Y:qd:YH4Pc@ALG&Z?W.ZBL#q&?$X.Ig!^I[OldE9_FdUg>Y`>GK1bV8 %YuBPnk,+Em'7^E^RTAWG3p5U9[kmfjYNo>`JO=Q^4oTR7A8`u+`6fBTcq\IP=kd(DPm54PPacPrM>*e-e,e)Ed:Q"6'5/` %-P;c/#.#/`l]]X%&$n?[Y=BMiVbl(b^iW9d:5 %MbjP]n+(]*TTa>!A4TkOfH/,BdNOEUQ;.K9JG`d&]^8;XMii=2?C(1g9@J=bhVZ5O'E7g[;=;+qG$L)k#ku]T %8u6lqnsB[605^ThSh?/??_S:k3a<0hqkJ,Q`&tFBjXg,*7iU?(bp`?4;\muaf2,c(lUuG=%nK'!7^s^BKA)G)^Hsf',hB6"`3dm. %n8)h)U>B\@EsSa8Vd%H.hQem^l.*C2.m:/f8WBM.Of'gW#Vic&sJ+;J+m7-5O=*7\Wg,a(+TIpT;h&\K_J#`E=%le`J %N3\`*Qp\?@SB#^A:%^'(2`7Z0G^RnMq\;Wk48$Ig'O_)]c>p:4SZHeSFb^@n%:e`b5PH@8+,D[lc`CKjnig[;G&,0clJnJQqfdME %rAZUFp38grUpY[*qGqp'Xer(3:i:$K<1RZZZc4Sgm.AALi]/"9YK>/;1LT.ZHcU,SXED^mB-Y)H:8K,P7ZR,_!o!&a,b(?8jK4K! %j)16;7DtWVm<7eaTQ-CKX_k%WPD?!9F5bPpcY&`#e!8"-KC@Dcm0E*226bZb*',\YXVS&ehOc?5;S7sZG(_2#%8U/,riGclGVK-e %jDre8/qk-mA9p?41(Ull5N(gcMpU$9;J'5&-L3Ue9n18*IZjQBdu>ruJt:+L?S:m`8XUAM,4mr%=bF@1`un_+Y[=aEh%^\+*B2lP %kIlZcB"X`.$!&p_nA*5O^IQf@ZJ:\7R_4=QK/D/M;'Q2Ar(8%-V^dM'5X$j'4!@*U4XpHQP3\m4IaHQhJ"?Vk-=S5TiPM(b>]*.D %Isq)bQV504;t0Up5G&(KH42tCcI7u7-[-6oPj#%#HP#&sZi.Pc*[gG=.@F(E31\A3Z;(=dR*Vi5g_Jcr_PZtXes.K3SU/uR:D&+Ff$36]Q'&&p7J]&t03k,JbZqn8b.XC2&8PJ@0Y%Et9<+PrW)jKO,3e^7Z_n]=:?(G!?o_-V*tG'j %r\9Q&1#hgda;:`9"*c'>:,BfAo,j[fQZD'1#KbZZ5*+ck6,$;C9"W18R,pF81ru?toXLfb7pRj1'_g+iZ;d_e:R8(s-gpnD<-n"/o(>YS#Na$;'fbfmZ:QjgM\1VC,`1#D"D1CR$H]SHU"Dpr\\4.f78KgSV`nG(_EG$GH=$I-l;_s>qacIP]9 %K^cDT*`)O[6-NIih-!Yq"X4IXh/V]QefG:AK/h:'Hdc+iJn-#Bk`U],9eqNsU.<,fiCUa%a(O\VAM_QpSa>(\j7Bhf?amh;PKE4h %q/ebI0<4iXJ,0Oae>XZ:!kllA4<:6YC&K.J:]DL4"/`fA.6GC"G]eUPbuN6pB[1 %C!*=kbaUu6FHMi#A;tk1GDXDoF&O^>e1`UIqi.ehpfk=7m-;@Xn-MX8p))&"XrON;^QuOBaFNkYkQtCc9YfKd"PU5A;\3%MVZbJ:&:l[qL%;[q$%n1q2?dX&W4J#c27ZRV.jH%@!I.I,ZgV9=6 %,c%[ga6S,&%nA9@<`3&EG.N^V.s33f#7d47rkB.1bNRk'mH#e]"GE;_N3$c%XWP-A3:fOh)]`L9!BMbu.ZJf3r$U+ut28))I*%U'1_t#bF/GM(Qp> %R.s)XFPhuMT@oHQs&5EXcA;Y-*L4uTZ8o;>Qnoj$8cEr[_gpQC8:*)4)tH#1T3f/#c@PnL8G3NY_;b(V/'t[i*&0$)bjG/gGWZ*s9aJgkb53 %[\63JBn]+b*i+&=OCrnuI_]>2g/j9Dc.5-9lOFO-iTe!(N_L[AjZ4]4iVXG-T>BSKOg;sc[lb792:ht*;rdAsG^gk+iFQ_I%cI") %IP39]VH\tB\/C4O%Mr<9pfF:o/]++9Cne,fTSU':8tX)84&lg0(:,0+oumYa?/5kLdW;t*jcWcE8*=/ %1BP^kJFm$:I+4#V*J/0l3JUMF#A4cRhtF2jW7m77@79:]%GG9AUlRAa2@WJ2oQ@mL,pP,B7p,e=nS04Ql8q]m6:&-SK-"3 %%c-5R>;\Z,Bb)3Y3pp/\S,iEf,maX6aI=:_"5,`bd6hUs6D?:I`^--3.E-`e>@Q*neSFX9;>@6clR-m,Bnk/2k+qVC'`!!?"-A&C %j7f\Ojfjdb,<'XE*WM*MATb=og5#sOi'aWK0]MM[hce4_iB]8sSsQ&)0(\IVhKkT'V$jERE]j$ldef:\i`m[fPIO!ZXMUIFKSETj %j(3?K:0&/C!'Oi@3Y2__3[B/rQ/\i6-dZS%DIm,2SWpaqAG.Bd,FF^>Yk0[5k%a;7lYjP1(tp=N>Z'2O!nV,i1esQPktB\1bK,$E %!22IlXG'E:QWk<3=.QS@Xq_2hJn1!#je:$59Lh3n9e-f7]7qJ&uQW;8hfgH]Xl?8tLKI"uiT*]<9Iai&>l'e'@fjDf9jYm='Ji\'a/# %8Acr<<$ck\jt3E4iWVH7!G^sYh1f<_*)L\'l2s;):m$@#O"9c;a/_"c@2[?B>jah5'/ul`&h!g3D1I[d\NPZ%=%D38%Sp-0hmY)1 %`7h^4QAqWUSfM]U)[:_2k=kJH$90Y_,R`-mZa7)rMr;9hUV&#A7l0NZ%-ZiN\$4VFKB`IN#0\6EG\XY^>)]= %&%@Q,nL*dlZ:9q>DY)tZ$5Jkj&dLl(_D,)\;S1hLHW3ka-?T<%*(,O2CM3pq%FSo"=4NMK$DE9K^c,!E>+^ZoMKd:lOT6S,%C523:fNB %1\)BNa.@%+%?MMP@`*e5;Wt2IWpCRqm7gAQYe+0@MWHu\%*R0)P&-T`cYm`oI5C/X);NO2p:G3f@#0<&QsBL)3AY,6\B-m]k*C(J %A;.].L'brn4W&1e[c7*>,!R5r&5/V8j:2Jh![!mffPX)[$,"_RX+pIMoDo+>N74eLkYWi'GZCK[?5-?=EPsjs;5TO9,;QDI$GI4G %=(>6rqW:e_HroOn$>Vt`f^p+&XS@+$Slit3^ThX'Eo%BHg=)&%C05in11EPU9bRT]%-2Y8lD-<2EE=8):'Bt2Q %Z./C>7DH<)jOTai5&^-:mAN=*es,2K_O-F!B:NgH0MM#=m%iD0*,T;!/XL?OPl]ZBJ!kP`^Cj<9EDUXt0m2b<@29 %T0D4^h"r24ShH%G)tb#1+!TVBR(2n)BLSQC1_6#'0BA0ao#R\DI)O?<#j2^On?^0pE*@a>s-h9'hqu-,IO99fro:KcbJ/Q'bMoRN %Go8&tkr6*;T>u@INo0m,Bm.C+GJ8oeb?#j?53pC)]cl_)IlnJ:iS'.'K8,(a*]Zlahn(9FD<5^AZ!AR1L?&8sC3Id`MITC).J*N# %)B56i\"+3T@!_pl*SEWMUXVtG>#1YGU*50#7Fh@lp>N3Z:OnSuPJ>_[+7WcaQeMXA80Vs45^tJ^"b_>P]-Rh[\iL&/Q%Z^A$7NC7 %3::ZeL=5QQ+%BDue;7Vdd(Q/#qZh+o"kaVJ4[_(7#UYLth;\SgfB&"YSaq`\WA6/NVqgF:["i-;]7HJp#L+LiEqDGkWs$A2$EIS_2cg2:f='O(6T) %ar8HM.f6*HbAoY*iRD<:UgCSRJ9S73>P$rKh@[_`N8anA#]og`_k]G"_UsBe>C@__e#ckmF&X"$!,qK5@<8@N3srq/@T\;r,->GQ_IRl/e+"4a!sAm%e[]h[5arQ+'6A=,VP+`X?c\_s/eEq,PS[YF9M9=Id!NZ7;^(?'*> %TWFj'#'5/pjZ^nW_95=Iq(,2e;9"$>2]!^Y7k`FUL_'ZZqoc%g*4Xjl@I2/I[s!:m>Nn,,NJt6iK%s]sC.ISd4/'*t9&](-830Ag %1FF):\\GXb-opfBIbe?OXn5]]08csqC(9p(Q=(`kCmDHHHUJ]I.Du"Ab=C_F-o6VoA %^Z9m9.K`b52fCp@-D8OmOVmoSJQuV?_*!N(q3?!rl(=oqXC$?UIsq7j?[kGTcM`[sFt:X`J?f!T^/;$4J+5iU`jVgZZDq\pKi-QB %c7V):)*cA"S+0Ya,'N!ei%h_#@BkSR@iY<`':Ni.p]euIS`o;OFiWl*O<0@070g)BU5,JSf#eqlBXcC(Hb*97.gE_Uc<+J@PJj,B %Pe_lP\B1"5k*)'G6DnEbdd!!,Zh:7O#dk&ZH8+U\l+QAH*KNj?s %D'L"RSrk%)kV3$EmFbf5_g]qX!g.\[9p@9hZFo\o(n)TsC(G0(8\s\E_SPJf0N5N-7HESo4\[hS!%bN$2]ST1YG;&C\ZV7?_2^R9 %F*Pc;Hg%e],j_oaJ@nVQgN\W;BtXGpB`DW*WO93FrQ`-A^to(jn[Vm;]+^S&XKGE=KR0FW4H`)>BBL/dn,0A9Z$DO,EkYhQ7fBJ!n.1D.t7>bB@d %ZA'#knMDrL,.h<=?K6"34(")5AIDNGZAUL"'6@`iq.[`VpWQ6tG@k*R\B@lIM^t4U"Mk==560!hLsLC3R6SIb?`36R^?lKHfu5HC %#h(oeO>p2POP=nK,l?.*)OS@<)$epeM]LOh=^Yk.,H.i7]nhc0KhMLpmMp>6R5o%2i`ai*))@,')Zm2D+R$iGSCOa!LVX9fF9OOi&"Gg3sP^^r'@"f`[>AX4/SO.W)>D\88ci0(^:m]AFfU^i6p'(Kg%dKt,Gag'_BQIP?uOh566u %+[79['e73J[MC>>F %PBBX8H*_k2E&sFL$VL4^=%qBHRg5pdJUEBV;bp0Maj("ug$[=X]Ve!f2qHdX#!2GgE@_o]=#*Y(?0GDWbKkbtd5Qe#>Lajm>jA2c %hcEU_p1o]&$@i_7Jlb=:Q#dPYJK>tLgEjN0!k1KF+>Z#*RkIPbb_h$heC5k&m%J'Q*d6dglC*UN=]!&ocasuQG]WAjA*l;V;#VA" %q-C1ZLim0lnph>m5PG"IS788/6pT\Z)fK#"c4.1h^tLjh/NL(7Ci %:lR6,O'*@UYlQeH$WlD*n]5;'gR-lBDsc'fTs1F(r:>AEF2ObOLugDB6XEsPbU5'n_c/C.4*dif/%Z!'ABJfKFU%$C-U-M4&`lsH %a3krf(FD/Z/EkI*YEPAokQ;gY`:-Qd[cK.AbRYb;bDjiHHsp@6GG^;QVj/Nh7(V`Oko[r'Qe\WnHuk3SB1.`6;O&gkm[4%J7J%N" %76H$m2IC$%'>n>p6Fk&;)2uaHeaO03aQB3*e$LffFP,#1B))aJM9b);AEWPa&[m %=bRrFjdEI[IH':9Idg,4/_#Q1O$V2_-kGg8p]5um$le]"NiqC$APAH)^DaXRItW-)4GI5=1s+qj"^X2lZmteS(%I!%Iqt;kLl/;r2_`=plACea61V@)HnAOkML:f1p2p$7M9+-d/#X5a@Oi-8p\Pm/ %&inCA4)_k[CCj,\IelTsF%l)f'Ck2)N\hCt_njNe2mW1oZ/$"'QIoZ$ib)/*S3eEAVno+K3:mn6q=8qLCQh]l0\*NpE_)YdWp$Y\ %1XVmd\WoeiRSKJ9h*+9GPs?*`olRplr,TB,?ZFEQH.eGLP[_PJ0\Uu=@e2'1MnTkHBW%NJOhGrRb6T3HOf(AJ3st6J^YXIQYN4rT %I9c+YNGTb$DI"m*6PLmo]3$??6V"1*1YDKr5nQM-(KGBp[$0:r^?j5Xo$(QX?HKdaR3qU.:#rXGmT9;Cs-XAliI7'T>QU(\A(nG+ %pQIr:6ofbn?^4?)IK.dbDr:(s13Z[sj0`Z^?"nBn%QHe%%IK*bCFn>->0u5^Rd\?:jPt]*HinWUWL[^lmYcG89s!>0hP(1btop":4jKe_eFG('CEI*VC)o^Z"c*+7"] %r!Oc\oMGSI.n"j]>`1t\a5b#=)Ag`$acYD/@3Wc-dStZLV+2%YU@77EM41k<+&T(mqO`jPW_i@EbsH.J]tkH%5ie4#AV/^?,,LZ-Y-CoV#X\hLN'K*FS7`euD[F7Mr\=m-@'=I8NaNP(!KMhk6s %`UHUTVH/tgiW[*f6Ej@iP27E5n9S&g3gkkVQqf:5.&r;T:>*5gR_'@(EW>t/oHs0*e%M?Z!e;.cjm3.!bDSW6aKebT$=N;HchG`+ %k-VTm,p#?QG!MCB;H_K8',[>#]NS6f@7DIk$XU6:#WORLfLGqf/JW-aV33i$la\%W,@Hc>S#9Rh,86fR#a*ZY@YCM/ %8R`1)bk-uoCA_Dnc5ub"U/cmb><<3!nKoo>!O&P]`p32\#$Y3k@9,3#nGJO8"k:#:prBj.5L0(3+?KmL+:L@%T)h&X[!+X(q.m^_ %RONQ-#n[/%s%Tns87S'Z_HDd-DN$J$eDD4?JY&5[p6a0i$?(R;QaS7FfX'dZfEUpn>*D;VCur4]^'XU8gd9,hdJf0P18E.)/I!%[ %\>R3Z-2i$'`SN$$6&Eb#B^G.abq4A5^cjq6-"J'dfXdJqE"pT8QSS('H0dO/bWJ=TopiH$6B&lVU&aAI)09#R3c#n!IQbuS/3am% %a-=f"IRj7J[=&[[f^bd`cbscd!D'bB92,-OSID;,:Z7\4Om?Q=J/B/TF656EWO\;Uq;-VAj#1r!-9iM=cSWs*3OO(Le_]?&ea %H&\)WX>FiG-dT:iD1@ %_q-k10*R1>T&#M[)7]H9U8$l58WS>4.(M4/R@6,g+_E3N4"P;ViR]%1.qH(9m3#+HY8..XbI+T$/'Paj"SA^X`0?Ze[QFT3L^)2r %K=cunbRMYr9[n[cd0dU&Pga#u0c(_eAR9+L9@F('R.MYM#TCWK0`8VUSX\A2ZRsrH0$BUb>BWR/X'q%bk;=.2hqhh\KY]A.!&<^) %.68Re8Vf5j)CGiD\tXQdVh@BkaVmo:mYr`028F4I]?A8iM[W,"3u'o"^M\? %DR?Q90js1;p0bGW&hC:;Fei']r[Q1#TV#K[e2gSB9"o+.Er*=>:$;53ESWL8W@I1#qcFnFa#0GiUh:sbAaq0AU2[o]KV8s6<[e8" %M4D"YF,>mYmJU#g\BCYp2Gq(IJ!`2R:DYdb(8Q!AK:3m.Dl*YM;9qX"lJ^AZ/YSJE#0i2@@1qie'qBY:YVDOMC'q %(NL4b:)nRE5:]5:O-p@k)_YqP"q@1rr&CR#Sso!70KKhN=SbmPEc&(!MhXaq^UO/R)1k)f`@e*jWiieO!)TFkBhpHQ_K60A_/M-0L'f %7eu9h:EZW<,a=Jf,=i4Sa!nQ"q>h6Abkr"jdV68)Q);g0e.VMCI+m@-^[akb?/,bFl%p4YgQ)4+8tuP&Co2J9bPT")D-h:%G!_4@$ZLhoDX' %^uRL*[k!j#9ZM6&%QEH2T#O&Tq27T+b8`b!kh0EEpp7Un3uVQi7bX7$?#q_m%>*Hn30O5E[7gQ;a"^Z,ih?J"LVYG3(XnPu*u %S/',^W%DX"e.qf%RVeMnd'DiFHp2%FhX;s\LV%ZM?@@GjdknOa1_7MBRaJDla7cs#DO2/KF+ %!LC%%"R6haQjNpqW=l'F#6H&llHuA,Ub+OhiW.XWHs6s.R(/3lV'U=fj&#Fr0okbn5#:'KqD)&41(.Ai`?^,) %$5Ae'c]jbFBM6_]F;?Z^2OLSr22usj*.pa]Z?Q:]5;PA3jW(sh2X,oQG6"k_IoAp>kjiOOVFPdHGnNH]%![\-fR8'&c6sf[.4J)VqZTna,2N8>GL/Boe"p3[QZ_X93QpT=a#?-EJG]2(ZW5$4cl!R'sNoT^B-.D"mXr]`*gS!X9pjF"&0lH:X %*s<&H`5$hmnb1$QP)qGp"!Z-lS+ckWr87Ome[oE%.ATfMs**W*Y%N3\][KaD)eh('-$h48%q"?u<@57hF.(@57"5kee?p9%=NRXH %JRe<8DA#[IoCq^laieg9M`u$s$i`^V.&6MXmi>cG;k1EB:sl#6@d$Oha#nr9K[h2jPaIki$5^JCPDUN-Zl1,s(cph#S%JJue-((s7>s/(6$(T9N=O9WD"F\3?/F;q %!&PN3&'Qlk"X'e$9ffV9F?U^A9oFhOQ3q_P/,#e\=]$5B@5f;8sdS^TZ*m%.l69T%kgrQq7hR]G<>"V-MN![rU4jX3RjRt_h_sJi$tTnDn5#0ha"Yqg'*+R$0Q$REgd4E %_84VZ)fNMdIU@#4LH4Xh1m&p;&MRjJ8$>^F&1..r\EcIoGAb,cXC7"QhK]!MDCY'6?kLAT/bIHSero]rs$/9Vo76ip5]m"\dsWHj %W.4.YCs4nNBr[0c)JmF#TJVm]Sj`.TC+fn29f9-u1N,[Mb-U@8gSf9s%dRRt.JGE?8T %'pca1D8rjF/KdNUj,JOOIS+bej--B%pk-61nWah-/A@Ta+6W+W=Hk/#drrW]8"0U5"N.r.Kn+nVPICf=pCC`i,*+*!+<,Z=W]Fq8 %8OPBko*kh,0iNVafuajgJCQD35MV26][Y'GF$O`Tb=Z4Ng`t!8Kd7Pk@T!$`?Am]%=gf/P`p)d\O^=tH3_0sJ)*$gS@g %-d`BqX\rLu!3^4,K2ldN.;L6,"XZhF%A>G<*[lPL)#MU7<5g2U,$J];I)#Y._hlSAX2[#,4u\rqQ,)J,oS/`lmB\53k`k=&@dp:N_-eLK=5`%[=mMbn0mN%-4k#IF25a+[#L'J(Wrrh" %@J>\5/THT64@Q("Wf1c@X7gM=(c_apUq=X6/]gi4o0fp"-3:7uEA$#b(ugV)P80gi5q*-Clf0D9ZbdCkBF2]>7n,n(;DOM.b"BNP %S`bL@r#kd'K#bX[/4YIce+V9[Db`>]EN@+j6I.iRROqB5-9s(B%ibje,a$?-GFgD]58]H!GbkNuVB+8^1SeH>6,Sg&HpT@*7UD:t %i=ksr4@kgXMitAX4DlV35NNtXZX=hT._9,js]M)f(a@.mkOQ_79 %%+,h*4K:s18LR,=,((d^&i-E'PM02f1!E$0q'B09IZl-ha666F)Fkb"MeGVYof%`2#EsD=YI!euC(l*=@@@&XQU>jcp0Em%C/POS %dOR/mE>g67]Ach"FS-S(s,Tl-T'-7F0'SW[Z_TMsIq*FA[!>Q]E-#\(?8;W+`Y#6ao2st@jOZpYH/VG"OADJ\?mA=eM2a?BP;dA5 %G3)VO&0EiN<12NljQL14GPR/&XGh_VFEhgAQ>mZ2LhX6?@piCb++%[2)e-i=)?rk(iN$[DML3@^A.`Zhg.),+n5E0+$Li0bH& %;3bI_8rqPB3).cfhN'QJcY,Q&C$OeE[4=fs3$Lh6&i3hG`C7Lu+ICbYb'V^4A<(c_G4pkdOh=c&^,\cAScCYWA!\dRK8$XS<5HJG5<76].]7FpN].6:_5YF9#1CLfDW/^quOc]ZM$DXl3AEF:N)oR\Eua!!$WOUd])S %boP'"WpghKCZL:t@VWGOhr"Z<`,7/qY_=oSVQ\4^.PC5lBFPDP'ZP88H8SD6,UZ?)8kH0W^[CU\+Vu47Z@#5aXcB%U`t>/@D2"(V %!g2e&b<]YG_R(j@0,hg.RoXN?4\]5m?(K1TH'GT/NPuo4/us+?O9h$oMEj[C/jn.S-'`k&![8[7_gOok:Wn^YGUNTu/&P;kU?hr;4'DY&3?1uOqK&VEFH,d=?21$JAJ=5Jr)Jtk:@+/NmiXE$Z0Wi/VA83RMoY(60&#`Kfr^!\QeLL_bVb5WZ/)ih#.b9X0!8m4Sb7D0J&a@1Us#\fY1k%N?M"UiV1'Zsn3YkAYl %IZj,^5(=msf0!>9V)T-"cfQ7E30#YV>H)ch)lHAcCNEaBE.-K:&\M(X0k$)[7%P#`a?naI$WF2h=r[u+ZQP6cFDOg'ck[AIdEsA0 %(u"VhCo$*I]!e!lPjLBUa@^7+d0a000k'FifKCR9VfE>GeFmH/.,TtW09d&(-lnHi)kKSiDi:)(L?i(X@[T_W"V?UX\*Tg"_b.oP %oiisa`u-SQBMN>CK>HO;XpiTXrJM\1TTSKZ[$fN(dRATc9HZq\`j#XQ_]KM'i3J#BW!i4m)6RGJCK>2'C@,Vq\^Gje\,k3W_Nk_J %N"#?XF5oen"0NpW9a2LV`tdLpbHg2+Z+AbEWKQ6`o5P-57POcmB^k@ZCgQLc3#/tWQDOQ_HV,^/%@W7=0N8T5SmQ3 %A7%H6e)RCDH4h"YRtB"3ZR*/Q``3#Hd2#qo/gW-O=^U$UfP$-o,Re)/Ki*TLpLT82.4\f7b<=mPm&_/*$V]eQB&F?@n8uK3:^Ng. %K4Jq#(d3?b34aR"la[`-L %'j+EPHL+>C;0Y7Mj'Z`D+NZ,eV-R]o]-"8id?jmogLtVk"i9W[Nu4o?'Ko\ig)@P8N!&ZeqRoEJ/d4Fulj61gBqRC1%1M-)Fin2eggtK+iZXPXk478R7C>12PZoj4gl6/E7kr%M'ccS_pCdQ %Gbqmo=$l7d^(O^JWP_>gnHH4N%eM)^6lac/3IiP:+5ds4.qm4/WCZ$ZatG;?&<"ScCS#c7H*a[qK-MN&.tej)@ZH;6W78sr!k^;\ %\&:Rgk[UD3NrFTAMcY%?2$L@Y8c;_L+F#`Ns)HW*Y;o1rY]l&frK_ %=H<\E:Z\5ui$30Y?5X(5K'u=ScrFd-W/d["&J@Gt'uN6Qp6plkM,)1?e=\g]W4L;4"Y@U15SE!D=;+F",!c>eTahPVRC=bYSYu#d %#s_:,0!*L^abi+tHV9'8Rb0.O5Vl8t9T]_:$F^Y097@r9,:/;Y8j*A3ab,uJElH-5Y'^AEmP56.`5Pm7$]2#jNb0gW$(dNc1#hc% %jCiRl6)%:u`PUV27K-ieX%-*!9gqKU9T"Nrl0)4`;W'G[??LP"`!=O$Cs/,;7"3%:AJ',.>9YXIa_OHUE`0lS7f?YeB!i$W#6$>; %VU?_=KM-lMbmpAopVc1t_GX'k-l#!cILsT6I3+@gJKS#]I:[P!.js'_F=u%^CC75>Iu=V!>aZ?/qJTW7?eTO)eE]j=eh$-knk1c-/tlaDMmW0fNTuH')YWT3ATG!\fH7?g9-\JU8-n'igepMpR-CY*q%6k.lZ8lc<]KL!f:>4$RmW7E.I\&G2;cN^gE7@dEe:T&\CU`XJRlh0G]G.%#8I*[+fDDpgGU02;TMl4ho`^;&LlZ@+fL/@b/fRLM>m2"aY#J01=p*E'Gs/sqZ %q]"00]8"4nfAN=6E`HWkiBXu0St'[KtD_mD_7gLe(NJj*]NdW)DF4`4Z9Ys?p)>3#Tb**6qu\rhuMCAY_J:%)9@IXe<8oUpsh]5>"V_F:>_[8X2/ %s7mK"6\^EcG]qt^f'Bi2i^L9R>eR2ii&hs>h'`258tfdO7a(itZh*#84T)+e=m\?%*oM_+c'MW'lhF107/6)geX'sq#b[[[^DaN* %1I\E8p(oXPeP><'?:$ba'kc(KB!hZ;<>O@=^f?-5SW[Zi0L]+FOuE:?WgE,iFdr;=C?/`S3nMfGg>C,;WK=*q>^))KleikTn4ucZ %Z6m.oX_>OG2>Zd6S6BrT#&@F:lbS(05<#q0Y%2.sY=#d6=nn'OLSg=\M,%:I&DHW7:]AJ@gL1^\*']$tEF+L3!Q'`kSBXZgruV^D %9!LpcUF(a!XCDT:5/R-.jm2nr3\ps*6P!s!,iX?!'Ce!*^5VrEALIlPY %&ejMiMp0O&#;1?9R`Q.t:Sbi?4s?*RbVCnI,4u'X\rFI6E=Ug"#=i/geY^/X04h=Y3_S2XM`0BY;W0%p#urV;.ORY]F"l:1Z8p:1 %ieYOQKNi9S;!7pfR9H/nD&7#YtlB@HgXr5$c[M5:N0`<"977W$e9iYHbWLg@GI %.hn@7QQh+^XWhA4US)`L)H2Ad0D(uK%Nhp4ZQZgfRgT;'.$@,dTILL0qb`k2Lk&Q*3]V>g%>k8*7VUC%'3lml1k`'k+XqGn112$m %Q['M6A2BIC(d2tQj3pdh)*@0`50aR+RDWO06<1%eTq[bJh5pBY+RS9@-[S&54*IHLK4;6e+'jdFhm1GKi/YoD_oK$l!GM(n@^NZ[)TM>&/4=X5,8V(Z9e,dK5\1WI`4Ra2=\76S8#L`T#B3?gA0rGTKDPrI"@r %X`\;kJ]_0.?2`@`0nf(^?M@7AonR^m62LY1mf?t;Vtd#;l6f8"1ci+\X6n3,;J\YdqR]p\kC'VKPL'h##V4"nj;mF_f0cI`Ct*J* %VV\t8WBKu,4pTH\OdgRrll:>gUht(FITI`0.6X< %Gdu,"U4S"Q%nJ6)3rX-1J@5:c>0=S^Q$.WUj+"9irgV$&;h)O]hp...McMm=SCX_5jK1VrSfaTq&=;VVp[V_@+iR.1XF:'-q4[\M %B3VIthn(B@o8@)JMi:s?Q"NU:rVa@E#>.bBB)\3VYPd4G!FE(gCo2%/Y1Wu4i3;p]Hea&S].qX7U>Pbg+T)Pt4);R>mq_66H2Y3F %IumNWpC^eJhY3fu%>AMRbY2+;kmG_EZ?>\J1/A?hMD#^XQS%ib+ %(4(UBQD56V>`6o.aD/1b]Ye3@!(AfWX`9rA[c\GkeiHUG;mMeRrutc-jTJJ:IqaE:%m)C-[[Z_;g=8)8Yn>lt?`^]JGKjn"!FT5h %D&NCqB(DEp?l@#Rh%gEa^(A?)H;'0jl`arEle]kD*O0q7gZ)LOd]9#m+^bi#kcS3d_-J %.rIL4GH5r6p#kaMim]sE74@?'g3A"K51YT=bn`OTYe2`FBP^Zj*^Z7`>4&tUf$nCk]:iQ]qD6#cQ_2;clab5)`*-Q8D8?q;p53YS %h57u?=p+s+@]S2a@d#qh^=TCu2tTKDo"e`npW`D!m30's@caQA%=G7X1H(\bjGM7m_EaP1F?Set>t,DaQBPU:^)P.k2Ai&Ij@h?Y1L`[!AKZgX8P*8HMN,P88u)YBOWH>Gl/KG0-th6n$F-BiT#5/pS(h%\Hf%(/b'9U %=6MINRWebecLYP@)Na!a*Q]2V %0kEDPA+Sl)]p>F#[<))tIBBs+]@&n1W5]G6I:$oZn!adE_d*s6.8.XOJm[DtgH_bP\?Wa%&*7CBWB:8^f^U>nUo.i%^OdX\gkuFC %Ff^s?`*$N.okLQ*PdB99jL)B:?XLsK?\>AFO-I^%-nWR4bjui7[-i!:?iXMfa5K1)"mSRKXS=C\QehcVH#EOrAoqf=QbaPFMqR,om"s[0N?PKiR3t/6G?$^'^dZd9C/r:1EtLCAXh@>]l(P@b!L8.]^kB42fu"BC`CV/O.`hm@VWm)X4[kAQ5g_+*>ql\5NV2 %LSdoN\gjF6dds*5E]_KOLo?C#q3ZpL5sNAE'JhDM+13,Q7r1Ds4$i/^iuh+.EHA@J`W0AhgfD(;rTbb2a(G(&Ws,a.#H:)D7=$%& %d2@H+j-]uV3lr'i;cuF?eXJY.AnA1opjuI*;IjTo+!jM2>(C:]OMai3Yft'I;:Gd#(+ZagCW_eDmDj$g!I]DImYCRDSbm08`lH6g %QQgciVcNcqY@Lh0II8&F1lt%r/f:hJ;3ArR48ALrUCUe2=X'TbfjW[!.E;c88Sk$Eq]4RZ):,;I[GSB<.PJD\7T1G;9;D1d@deNp %^6*VkIb%'Y;qI/LWJ=3cn9.:-(MMVqS1#'F\>E-Xb)fh])=# %(]rr-D)AcK7,#eG?7O]hV6*gQED15_"'4$2HY:B,3`iq$;/RKES?<`IL+.tB5Z-p.pkd?7I-*'97H'%h^W7>^=@D1-_64GdVJAc: %5"F\7k`P-2DkS&rT;oWkgR[W/4Oh/her^k %&`PeBGp,M8Io`LU]@qj5>!(Kkg[jdV)IaJB3kK5.E+`6)mODCOp>aB`b#?p1h[JhgVZg"Hn4EOI5$0XC5'PU;J,25[]47a3e]j`? %e["u"QsDaqSjoU%h5-80b2d911bu]@nmS=ndgnq1Spm6hTA*rKd"bto=s^4ZNdi6/>:[`YQF5Njq^]0/Dg'g%);D7#fAF&L59>:, %4P1T5j.C5'PUdc$f<4"J]kr5S[W_``]CnR*F(P(0HMtmHETS=DY0=_Sp[ca[rtW7mZ9`*-7lI5KCo9p-(1$KWZZANa@llj?[+j0o %ZW=VaEFkJ'8a`h]Xa4j#2SAe;jdhM?X(-68ns+J^`r";I48[0$T%9@]n*4I %<[PL?G;^*^[6L'4mA*='Zu=g4kAjIf7@eV^c8i#P)mPTM]J"TZUq;q">'l*uoY]l\U"#JMDmn[!g4''!*hU"_5Q)?Vl0JZ80PRH1 %f\"0p,?mnMR&ln6eQ6U7h)UK!nEBR!DnKL2T#=@'D?%9+9q8ReRP:hDXn]S5@I='WWm.K\EG'L]3a%e\,qpoao`]cDfPCB$9 %5K?K%.$84F?Z%gRk[#Kt?;G?L$aib-U^-MK%N]A+h:P'pol%X@9H0N:DH8tVIp3?>iKdMLVaKub=H8?/K %k<"s"HIASog-s1i9pg$6qVqC=+)?R.ls@H.gs%*>H@*9TrK8l!2bUbCr]D3i'P=&f*Z[KE]%m3;'0GGQ\,7[pdas]9M9D\d\$asd %D]`AQfY&?0::IFY3ZG>fDZ-#J&gm9p8%osWLNLu0BQo5*MR-,^1U>GXs)Mu8UpCZ-3?DCprr2nC$^33N_it(e3?;ar^A'L88aWD^ %mGj='1o6bS0tBES)\?s5j`]g,Igd]qO0XPYo#S9pB,`1'm6kLM\#)qK?('E8,En9n(k>--[Z;g#Uc7+`r?*UQT3^5Xg;cc8;42a5 %cb"rG^L5LWp[G!Gk7uobCtaS=jksHhcdtf'+3:8?b5(")@&IMd*W,8n8/a)&o_jWobO28kR+.L`BG^(0g0N`d[UaiKT<"TeH]qOo %LYqf85CK_qI*hT$c$&,27F#82>h5sHPHhXDi=*0X7S<",S+p\+>J"Z1me4/NT14oSFSDcr1aX6,:hAGFNOF1]ZYLq9g?j4_nlIdL %e%LU#e`/;eTB)mNI;F#/]6LQh5Lt\kp47C.3'1oj-[b47*j%'0:W@eiqUk#J_9\;KpL6>[gYU=ZIb#==it%]; %oBQ#"15/iSk9$QR2ElLk:&&gYk0&#HGs1-8h7;8LkOUY.Bb4_qf=$/\9q0W%h`a)LqUN.4RSESLo%0qqW>KWI,/fLJhjX-i2)"s` %=#VL3GE2LkB'*9)GP'A=[gU%^P91mUVoh!Ol4CR7QGh9k7dr22ceS#=A8H_UlY.t.6cE%s4jZkE-#G'iKIPI^O(C'm0W7mAl^ %pPqJ?^Z)/"-A4G(g?iZgjCWF2I_OU+rm4Oo0Ouu_rpKP7_LJM4[P:!f$9[S"9enl"EB/*EW.SA9[s@g]AFAISfuVt9_rm/]lfiWk %m0##bNKO$h>?eAiQC"$nYaVmu17t)Io$M5HJgks?Nr483R,cL'@T(SK/'gk4e"EOsDKWUU8s&eT7ubWePBj1^U7J&5guU83P*hh/ %N1ca5,2'(ZWAXX6n76ZFA^\unn+2C"&j%IL;G_5HcFHsJZ,!_JhbtlX)6oAQ76="5C'H$X^_009ru7SRV]H!1NB4%]2QhZ+e*:b"e@N4`Sof)O;+mDnW"Se'KY9EVW;YU"9j18ZF@TO@k[VGCM,'0m.I%W18`6.4S.teOp>/4$<:r8u %(Wc702g,a&mglu**KS`;rP5^plT':(1m2@epA=5M8`:GpkC?Wi&MDOsi7i^K!g$=<.\9B5DTdM@tCcK=R9F:G59G=<&77O?8PUr:"!DSETmU %5USckZp3]Bg3; %,\/?(2YHA1jR+.P(N?Rr_4@,iYE6NboY_W7:FV>"^lmk!@FhdXD53q&+EjC"HDhW4GT,JKoW=V.NYoWl#N3nD"B3HP@(5gr\/V6d %aEe,1T>Mc&WnT?3].LCA%hdNb58rgiRkXFKp;it6HPI4@\o908:QY=/ph=KeqWq"AtpQ.P/04Z`q8 %D7O:GPu9;Il\s!^53rE_C/ca(-l,EXkPO8P&$.oKg5!Z)NMHXapK,IAP!>BZ/*2(tW,s`Ndob%]<[H#5o-7:6_?jhQFLU_&H-`Zj %b#7KpdcZP?(8<9@<2%g^?k8IOXe+)i\7KcdTKjB.P:.sQiI$[%'",<"+=;C$&0MbLBK^6rq6bkt``U!gRL^=>]1=DU")Gr`bM?aP %2[I*-RM,.4n@4rh]e5P4FG8PT-/LR\54/KjDVitUH8(TJI;B=6<_A3RQ-%/gd)g5"7:AP@,s:UZf=]*idReWqR6mU3@judKq+\NK %6Du2*Q]f;kngl&b>OmK$Fit2\Al#`$nKfUrQ_/>N;H5r6*%a^H5Gi(&3842D*)3$J7<8_SXn*1KKN.7p5=b%P,[^DdEAV_-*cF[0@)fu%%1IordD9Ps %49nC"6i6$KF#7@@ODtKU.EEo)\9fO^ga6?uX_P93H%k3R5Sm6VJ+1Mp[7#4+i9E#UEDrK`Z@tu8S+l$4d%da-+$RX0rdpNbWS2TW %.sX,"*)*e;b/\+&YZ._gS]M(]1(6)1lN_g8'/g`Y]@Yj!]_-,_[O7r6J7C9.L*Dt*2*527f*7 %duQ=Z33\H5MEeXqBo#R%kNckT0jM4mS'TIZ7]'18*-5o7]#d!#n(H3@Lr>&]!/](?9>@'j>A0m)XlFQ$oLIUhTi,NoK2iPa*>8'lsa"oF=R995`UZ#9`b %d%s7ZaV`mN@d%E&,Nob',X'/oV+8l]^5LJGaiRt0XW0fKn-sbc,g^;mla+5s'%ZBj6p'_npR.?d6"<*eX)'R)o3E"*o4%nm:'i.k.&h0Kq'kkKeG4 %!+8[&163TA@YV[+M=Fa0c6@>6i"IZG=a+J19#Pna:#5tJY)Zg8qNNaohXK9kmCY`^R3AHXD9;c::[[,KhbLl.VJ_QaQRXGE_qCuX %jC'E+!)_#\Wu!ELYWkVl==B3u\soitjH&=/3*TkK_"SBFQ5MdVZ)PHg:K^Y@ANrISjps$h*dCddnf)hI$0F95Im!/sqKYL@nR,t# %?WnFVAkYm9AAE8Ck!A2MZP#T8PWOe0#"s5Ah`Jd9@qPRj=RoH_c^TkhKod6_6-$1`%R7)98=utSY'^TMj)/H/,9unM^L_T$>f%%m %J4,,:,9K/9oLB+.G?87Q48l0(r`1l8g.a-mrG$EukdBi,Ls+O8N\o!l2`p-C=IO.jW(.abS\&o=O5.p9M@F9^ad@J)C%UDna9mu$M&6S?S`GU**9#$8oJ'HISqsSgbKYQ$G13"N(^cc[6VEG %`&I1hqa9qq^t'h;ImLH6_]r+$'8AEL7g>^lrO7>"#k+[P[oO+?ID4=<-K#@QTQ_W6*J,Z`eIEMs8;7^Cp2k>@OL %#K)?h>WLEb?OZ!Q1_-eB%OQ5G=+Zg*LBmS_,0ml'OQ8pL7pfMk!YX0DZ`Q5<8i^]ueGL5N"]guC663p.:;E4Q)#RRY, %:/[?B]rGrfHE%3+O%k@H;P@qWrC'bgTSp'^G"uA!*=itTk9"k0>d"!7"38Ugn"R]9ifB*>7Y6],/SkA!=(>u;V6t*,%-#hiJc7] %a`-S#71RHHo!(S.l@;rGYMOCP^;^l$eo_%IDZ_;S3 %fTm\rneopoJM`=Ae8K7mN(AZ=L)6!Km;3+@WVU9fkbbP>eEZ8<\XrS%6:<;^1BbDuUF8&G"-&MbI*.C=c(>2$`MLP%8k:'R8Q0ta %A;';X:(j7fARR(K+EEWRCabh7A%b@toF_MO2:s2Si,D$A'StlAkO]Ptf:1['hb^fk]5gH9E(DY(P'0s$E7CqM,LU\,:cRDUbP1?5 %j_#YQi=dO.>poD4U5ufF\OiU>ra4'-#"s=W(s5"/_h!c!,pY84?&,uV"Hs8gHauC.fT_=UR=cdk#CL`W/7]#U'M:C(K+_7P%jSs. %JU9ndG[N_.:UFkA/34"cL:][RJ%D+V[kH$-/)Bm9XnMLcgSN5c0D`\7AcKs9=De(SF(P(3F.otjr%[NQmlMoDF)kdfo%Wkj0tBEX %8];9]pF?1'MeLn6GI4*a@YMtDNEoe["CA#26bo!(2Qj6HK&&$mKAG8M58Nn)UDj#_.;BtO3Am0lDcIgb? %`(;?Nm`LS^YuoJK=KG=^52/m\%>KCU-J\u2l89RJL*\J<#uP?aW=aO%MGDgqPnd=f`9*-,mX0JjjNe]I1rAjk%V'F4F><\X4\.$@/2TR?ck(HJqEKZ_>16 %)&2\qn+q>Z,+%PJlbA6\T)J2jDgC7*Ah>I_H;D_\7 %ed=d*VG!YMiC;9*)Yr%c27Aaj_ht=LPO$(E5.#"7Hl56TNMc#-+qG5Z(HbG29:*P3h.&9IS=`6l5W,?N]!tkRjL7;N7ao=*L,!Un %#)oEX*q"nf\s0i7I7D])`R5@1Ei@B-ED'3jbE/I_iaV/(RaNmal/Iq+iTV@d1gSo4;&s89d<'Bn@)"Y5ajG3M6Y4;>p)6Yl%^BG2 %e&B;S%0Edc`@qC'"%C\X?)&[ZJaY[h:)Q;V#!'VJ*[6g,W3LG4+qHQ"0)c=XYbUIB#,")(R*g"qiFAZMmSK\Cif*%e\kBVqBY#$g %)#:Mb,_@7rGY?>$fP`TPS4]g4j3&p>Q>HW)9Pq4*#,#tbH0c=;,&qpZfLS'Y$b6A3El[%VG]ORj4J[:Gb;%Q4qQHBM<3Ina5H4=E %%&_=l[OH0Y:a5@9ZP8=F.'VB!X@"M5SoZK`(KR1[.DECK+SZXQdVV'=)p\nibj)MX%[42s>"6)_30l#\+j+5&m[de[K-DK$rD=W^ %h#9!66ffk?a)\2UX5jAL\I2B'bB#o'=.-ZkrQ<>L\pe[OLYaE!(V8pT6]j-J8_c'Y9W@21GHi4.E1slb,8-_^m]nQ-h^cY;13Z

cg,5_6dXbL,p:9CT+SrV-SK0A"U[UN%^]e(Eo#LqAgqHVH/^DmE1Z5L(V`l %>pp.UJRk9mhQ:PQ))&VC?p+bGWc@%W^tP.i`R)&X/uA/P"iS58_Vm".Bm>3&N1;b['\S`Wb$VQEFAU!-HVJiS%GKNX3040p15[oB %/b-bVq528^O/c=2FC#R5^3NQ1d9mIFP5*5LlB/>F[,NTuKnS96"=JeRY2$i]29)X%8--IWlM8:(LqrbT"\I$)FIa %L9)>#e@fH:Ha7nk$!K2jAR4c(W'%jfEEfa#?2,KtD<; %f5Q_]jZF:Gnn'c"7k2'l7:ud7`BVu<,O[#jG+0]l<`*p'[nI43XcD9"E>bR@/ml[=V]eGlk"(f%RHKHf1S?[bpr6a4+U$BU-j^ET %6FL"i36?I);M(9(A4j@:?Jk;?d>R5QH$9$M1;"To$q5Q4QGUZT_jD'%H.u()=V:+2EeQ5Rp1^tUT$-6B;Oc]C@(,gu[gYSSh0/8' %Y/ETO5(f4:rtpJ.?6h>hh@r=^;Y[@\O'2:rMW%$M5,&m3Pa)D"ASoS$T3^P,pSd/baKA).PaJEnUYK@<5.4>60T0tLVLkN./;WDK %ESW$uF7](,_aN@"oQn%ZX=ZDVN%5[cMi,1BW95.ORAi4'_SRHB#EbfhXg3@:+#b8P1TPB"gFIT,L?O%lEN_:8DI7hKr4:Eb?/'Kc %mh\S8lfJ#'NV1Ep53"b@ER@^b#FEKD9;+C_kH4T'Hp$2>O_Ygp7=>u'fY:2i-RpSLio+JcmuNZanEd'@dYErsgn]W:#&GU+rcL]> %+"E,2C>5B45:'"gN6)nkG5B$'YobEYm`bRNUu=@N$aUj.W=kY#-kQG`QVWBp$*euT;i.2^mIq]KEY.*oLW*=P1KZUF0;Z7OF`j5j %q=bdHDTJU$[[WmRa6f-c3cS8KH:XL3Q55/Jkq^%+_dRd[f/j;&HFnafL#GTf7F%.QM6dB$mfLrSid/W:>KkXDqK<^7Y>"@EI7!fc %0mW!$.%QlI\)6M6g/"\simkP?j_<$fB;=/A:*uFIWa_:h'IM3pOrXMnf&r2_p\V1nSt]45fCK!!rApBJ6-8V6d %jZ#;1Md:8pp9Z:q.P:X.p=YDV,fT_VY!2Js[OgBiA?+#!)4d`OiFOVl6ZDak)-](J'hBlXc?1p@^HqR@EBn`U"XO?c0/Y+#r %.Q8U=l>!JeW6=m61ZeL7T@]E\\C[+\EHuKmJe6ZDRD4Rr%W`K&hm\>Zb6(uG2Q2,lq\J^;%I,$f1XC&PSX%fQ.%]NPjrYN^0Y-5_ %19D<3/=7q?B9F@Q/OPRgmYka;C:60LR(har*9POk+-)=#EX!n("3toP]q,"3:,2Wtmk#3c.[Yl?3S@CBQ^sdA;-&E^L'TmafZDFM %OJ._+)u3ni76'uV8EP%^qFF<)Ph_s_hp_0:oFtf#oe&GdND3LfnW)05o,Qi<`mlAhgmqnG6m(_L'JRVso7V-2BhC%-VD420r%@-< %/W9OZ--,oh\Y"AUfXphKFX:!uK#'4#s5m[T5"pbY(YS'U@`_&fqLFru3*7G23*A=R0n;RcdVBP)!_Ggi!7UM#,S&4C7D4fUg1(h) %hAAMtq>9e3kD]L9d4KE-!To@BbZ2V5!@IUmlD;FVk(j)_)ZuHTasK+U0Ro$]+ujmA"-XW*fTV;bFSh@F""5@J,)7/dSd$dhQX5ek %=@N%3o>:0)PckY!%4!O*hkGKQ("rRO;8.9=2XI/cKe.[4PbNOnlba'SJ$^V2Ej_uW(?J2j?TCAK^!B!H*5M%?IquU %+g.hP?b)k>lMC2D(9W_0IL-Qq'>:L1`ZG=k6%l^(r.06_<4N4OI`F$gC;f2%,GVWNUOYc_@0P=:Gm(e.fGFG2mG %"]7L,rPI:uRRYV<=Ye,?[>_eiC'MZVsen)\`4X-Y$_#o=!UhRcanSi.Aoo^!q"h2E*N7";">Yq>lITB+^0Y[@ %\Ej[P\pcf-iX683cDWNa?,-$3IOUD?4k93ER#g@/l^+d:8/rSMY$YjJ+fi2HXA*\WrVH$Vohj.@)fjO&bDI/T:0kX,;2A$4 %A$V0/a-`cXWd[+l:(NOsTWXoGXGYbWZ3S+Q\peX6J1ANm;qEZCPZV"/(j5c[`+$D?dCaFD@\0<:rHe'>p06-%4^^#lo4/pt:Uf`` %Wd[+E*_`R!Q`_/THu,IeId)_ujAD\]p/"r;YJJ4!FmD#f2\o7pF %EV%JltK!QG#.8-OY+YAO"EUB4Tr_"QufI`?IDDC`H]FT`KL0\!2LIGe97"FX%?<*=.@EbGg#RM1&+]+cqljd3n(_8M[ %FZo[e11-II87J[uESfradr$+q[?6ltp8?&\BjnmVo$LdMS_;<;?D[I(S_U>mrliOXpt*oU^$bO6g@f5lo]j&p0Ri_,CpWc^3'3Y3 %4gjFCZbs7VpZ:B'EV8G6d8Q`\:cn:IUMmb_(MA'[i9/eBVs!pP:?CO5`U1tCeEuYCm.@J3qq(B(amA$5f'M#=DS(!K2;)l:j!1>D %>-h,T`h+$E^E26=bkeXfVj?5[?OsQ";Id&h?PG96M![*!A_3@<;*bKbg[QS*KnRpWYV%_%eUQL8;j86SN&ErGA^*a!R@3dWn0Iqu5GS>23" %7gHA2VhJ%8?Jg6sa(H_kQRChM@XYq3Eji;=q;Z:0ampfC3jU"i'TVG4f"?>hnI*]QG.TQA]f/1(I_Mdh!9YeeQK*/((8FhQ[AtCG %HGI"Il3-^fY03q=l(c+(`LU8$BH#IQQh@hGeOk$t'0(qhh,W%8N87KIrOBW=oDJ4-g91&-B\'YZMg5\CckcL3Z_%+li-"j7s_^nR5]#-+6Kq&okba]r&DEHR)a,t^g(WgQn.?pAMPh"m:2?u(t'nB %2,4&QLoiSoc\5Nm-P5n6)uR6-cYe#9`7c4,h&QIaiQ(ZZo_!e/oD@h5lJgbn)qKG1/p'j(r"'soW#oi?m_f?Ol3HMK6_Pbh.]XXS %0)ZJ+BZ^SOj*OT"K;3.d;gmhJZmsdAQ-MJKbP1'"@Nuu>Wun_b1i03HO^K8F(pNY4mlH4.rb9`an%P.,fUlbiQb/PIO+5F_L,0=< %1:9beq,F5^m[Xe,kEAB``pOOSX:j0j_B.No'u(cKMOhYO\^sNBAnD;qRK:4dAFrIc)@7c'\f)JVn]DfC)>n[8r@R] %@UY"mf9"Mh_cB+AL'AC`V8m"%AQZW$f(h"H^=[Upc`Ns"pZ>nAdae!AZOqc1=4bIGC\+d:G4=V:%uFu>o_ZN6#Jq8\D2c`q-.E79 %:cpZp^[C?N!&j;,D>%34ggIn1?[l]0G[kO#H5hut.+si`fqh_@@/tmCF"i,2M6HuQF6`r+p0iHYdV5fp0!P.X4ZSO6!298"$lAYF %WDN[IHCAXPpt.d(fib#dfGAHkc?!PZK.6Te>6dBrb\g]kmNO'oYrBq95",fqP)>XrV`R7[^H-[QOg3bP2pu6!(4'r,"^8X:OXU[&Z %]G2=b0mS/#)EssEZSCQKR8QY@[aELaPoZ_U/2_'>[0j,R,ij,?%\V?Am7M&B6L"(3A5*L&4Jc_4jD'O--uqXYh\PD"M8a6Nn7cqR %)(sHN8K4VV(M21U+$KDd(9;&GO9b-M\I+;9:U9IDC+c8:7g-uM;>f?%(b\*&2Y8hIh)=_H;M8&6i7Q))W,[1e$ak/p %q%=O2_fN)c^.NMs=MC/hJ-<+'e.Nsn6(p,aqJ(Bg(TjGOg?b>d%>AOdcR,_T=L+C8-Cf6N^5M7EMDg7*;I:T1![UfmJg"Y/NR][< %(mZ6dYq4ThL$In!6a41>k`I8+R8,[8I&*a4G_?=&._@f6*U5gOnn#B+(E?R6VQsCOAf"=B3A=H2F88k.l5>B)Wp$N.#SDZ"[JrfG,PP3 %=o5Xn6THfa6L+@g;9hb?TW4U`&`juT(0&W[LiQfML",]YU7`4oZbL3FHl(4c_#S`h=oC %DLuUC<#o;VR\K*:f!dM'M_c>=c<@:W&01UneL#K3es'5":6g[I_%i$e8W3du_dqcJp3*>?7c5RIq%J3^29X2b?6-RbFL=F,RM/M. %hEU@,ShI]e?30,4DIJiM%Wd#;CHq5n_-FN13oF0uqgfiZ1WdAt:(%or!7u5L9UD)XAK-bsH_A#)D\1Wp1=j43Y;!,c]N?FCp^!D@qf=XDe+1G@#I5:7%uM5IIQRY[;>&gg*7]hJ&Z?1;!JT@AHlO %%n>]QI\#GigJgb=k$5u19Qg.QJ.0`IfOh8!rk:8enaO`a_;<8$eF\SECtJ-ahDW,dUJAJ1CG1o1=(\)-f7+bXBC)5>M_H %@QO_kT-stMi@I,!"Af\Q^H4/*rSbi7D-Z#!2dnB"RpKZ:DL-F?>PCX"5E-_Dbhe\In:R!gq).bPAFAL>m`]W&?b;ab,)ft'BR"]p`be:>a7f.N:N1=fS6r/G'rq-aC %SEf02ORXRbkK0_Dqj'>eJ@9;=\S$GRe^b&8U"/NBJ*WduS=V0iNY+_^AVK`qA$<1n:KheH6:'YL%n*`TarYiCrd4K`hP`rg`pi0#T7W.htuJ]456g"[Ek=h%ne.+R]\8ccG`!e %W[;.Jf5J^>`2[!MlW"\5mZ%VFS7WO*Y+2X5Nhs3ZP7J,#q55Jik8jsa33ss3f.4Q-LSJTfOG@qbLl_>3S<<5-eRM.H! %T%j?4gI<(LN%]JM*;IA9]%Gc&pmXb2#96&!jUZk?"-dPOTY%i<17O_9i7,A([P8NH]U)^_W*H,Jo($s,@1"ra],0`_RVQbRS,4:r %>*KBpe#,\@X?bY`s0YP./Viq5;YBnZYQi'ESQ(ZYYAGE*SO;Xte6LV^0E!]:3GW@]DmWMt+/r:6UpYU?@MDE#Y_m=-s+n]!?W[a[(\j@e]I %HA1)Kn)_D15\X$GDmpVqW[k#E.RD6\Xo$tl%ef:9mI@`,=T,;O0'Gb#IguC<5@)%&)d^prD>;#gf#,,:'^8iOVi-=i6Ktqaf'[E> %hfk]^NGA?oiW;#DIQTaMgFOrkC#<.Y]3(STeS)G=)a9][s3iR$n@"u)fAPQ0IhZMO$\iN7T5FB#\=g*,]G*32,3\\9r36dIr.:eq %'WpB8iq8:3I)#bX$\kLC4l7]WRT7oqcRZ`P-;-#h[Up3aTuegSVIRTSnZO!'8#mGT(1tkV1B"LeS']u1bJ%lZ3"rZe[cbgl(rF\D %\o!m)e(!;C__)jfdNcW(*1NFC_L"=ZA#=qoATFO/-jc,]en?mMhVH]q2S*Si33XsGCuWsAiKSc>ElcZl %e+$uWDU9n#RX*3bHp`RZGA+3-L:oN`nLK=/BVNA`;V8h8@h:ihl9`%OduU*sQpH3rhD"L;[NR%aq]YDHn,u %K&CaACs4S]\f]hYERu7JeV+kt!0I@>R(?/Gl(2#c!n&a6Q>S+a!*q,d!=A6_/5[;crjGPZ.,*Sq?2"aoUq5t2P/qW(cO=b1;tGQE %\4RjJCg\?rBmO=g-=MK1DU-Ue)_1Vc>p]"M+nUca#)g=e6+.iK^cQ^.qaHR7KUjbjQE%);2E*ZbV/%hm,WP/D;i[O"=Z& %A![X!UVljRraOh>[Orr>O'07A`s3P;bsYm="#fF*noA-gA^+i:l?gU;5X7<56NpSr2NsYe!`9V]CthQ0UjpSXa=iiJ:565+oHW)J %7*(eU5X)875m3EAY%7jb"^p;7pn@$XKOd&#V&KO,%CTp5\8aK53*QV`ciUqS+i",XF:Yt#$,SVQ(W?\iWb#98N36U9(+P:p5Zs$7 %G1M7LL1>1E[?l`[TQu1p$)ks;>FI32HliIa&B4\X"VsT/#+J+kNbpu!(tJoPk5Z%>9nu7hbI.[J!_YFf(YQ!![XAOti7MV-F%gm8 %^rSh:]7JuED@c)3V$IXNL4N/U;&MVrk5lm(kQ]8b!6GN(F$\M@Q4O\=!W\sL"=0'A>!O(d3WWT)4D`%e]-a4TeoFPeDBc]SSRBX< %93@a9.*_brFpQtOW6Lg-J1ti-'pqXARj:i;jL@)XA4:0^8G4(A;L,0V;s&+/0$A=rgQ]5mj5F7qdr7uc(#Z%tkP2'aJ^S.F3^"0lA%[aN>Tb)VJX%uu<(R;CjRiV,_ZTVpqi`2H8lA5ummUG?;g8dh?p?^9t(G/Hh-m-e7G(oRgSnVL0% %,5o6=-JLlZdLe!l4b@@!O^(4o3bhHfDZfnG:U\&:5Wc:\A1"UKNhl%U53$@[g;9ZuIS[?(aGs]"4t:7Tkn#(Y!P3/G+U#A!&l3'" %SAAAI81kpn+p^`sYs#B?dH6ZZM=lefl`NuO%\X`FDr3Dt&oGGYHkblIV;/rTq.*P,HO[\siC&DrGnT'BZ3<4Z@h:XIgH\k%Y!^7h %D-R/%.X])L"]#]!=#^H%g3%MF(Pj]5a\pGQSK)`Xh]phie#@m3H`3V]HD4SV_o-[!IpF9[Vo+a=>f5c#A7AifpWJ7mU6DgLZm%M9;&5g/=[U#\, %7?@QHC76%("fUSB!1M.H3?M7@e!=M$a.QI0Lk$rYlr6mtl;sekV5FL,F9la)bE723g*@2eN[K+I"X4.-"QUE(@K7=l"iAA;Ys6T! %dB!?aAKXE0-bpo:dG0JQ]*L4L!rK8h[rBGk]GCi`caR_)a2o)V9?hMh"_=)4lgnKa*!nU+:Irl$#rP1[g16`R,0]Q0=bqsuCK)K?@mQjWg %:plIjjXkSXSq..nHLWkF5gXqL)g)7@W*tM]!54AZj&M*\6j(fK,u"A!HE]D\r&r_FJS6_GZsLR@!X<,6/H?Dk'"C'O"r8$54THNm %![UWW`H"#5'a)UED;A1g!0=C,AJF!o9I6/&H=.GRbUqBcfbl`DPY]qg_4H4I;=kO"#_['*-j9X2/2W#jMmR[TsA %bNU;$[6Tc++Mj=LE,[Lk+U8Vhb&!eHXN?1X\dCrbDXK^0=+JiT)R=C;YD>*Y6YmkQcnMQr2MJ>&`fnJT_^^5LRd+.`9c4c?BL6BP %D/ufCGfj8>3Tra71QAd+h"!ihbm)E/9F=Q9Ji6+>,\c!'+M]j %BpL2B1k_Q44/OjKCue?oTsW_rJ78>`g'chTBYLk#Ye_T?+YC&LaFh>Ee-D'MW8T/GJo-6T/'(%:PAa)f!6*"`QD5X^O-o,]#_`]' %oPFb9:r+IK8AUV5!][VJ)P4#LYj!1Q-l\s<7i!4.cZ']T^nlU=(=;Da&#CeZ:%WI'-L6\D/tteN(XXQ@#"A[[=[,+ %]'em!0-h7dO9gKnZYX)l98!?=ah;'6:S;#NX'9GHb8KL+FLCdbiSD%Nb: %k:/)S)q_J_R#=Pt^1[N)!ZNLP&krQ9*$c[E`iok=H4k3Q^gLOB2ZhY5_m^=%Uhumibb3fP=G?<)b!q_*VeAGo):YH+Naj!-F"t6` %/gkLFm+I9"p/N_P>/G=3E7d,TD:48%_qXGZ>Rn=KJ>ofNLO4id)Tb:sg)e.ue96NX:TXgmH+:dMm6,R^bJB:$>S#prlnMT,irO=t7g0+F>e-4[B']3e1GA+95dQ"rKg%0*>Bc;qU(I %E,N)fll@XU,.`3E[0lJ4ZsCb#J;P7"&.o8XVr3\hc`o_D")-*a'2W.qL4$r`(`U;_+A))b.PS\i %EE_EE$Epa_>Tn#I<8,\*KH^Q&2Ls17\eEtUi6[8i+f:'0i\Mu(+uj*u:5<(V\[k85(#VbK0^d">N,DHE66%k-?Nm5mm1jXOU'86) %fLth#?::aMEOuurb+]&:_pMcX%4?"5`PchKF:m9i30\QcD6Cl`iOV_mEs!G4VEs#l*pc>(TI\in.Zs(OJFIA9'"P61/WNQ5ZMT5i %;kWH'oVs@;a[I#/6WPZ;*S8;]Y8dsS46S!,cO?ACOm)B?UVW%/kS^gN6i[IFUOclF[\.#KM8)ur+U9-6(bcTH%O9Y=g%$_0?'4GL %d=T)ATN`,DZ59Gi55Ium,hlhk'l?7k)%8Lq4jaJ><$V5[qIt%E?$U[Eike3eQ3.gAr!nmu'u1(%#%igH]%%3_KITon4Xrs-p %]t)9VU.'bkD\K/Q %?T(G;;;)j!iBXPSl&s?QFHRR4.1/TV9Bh/],2W4?O^sB?:UKX\H(`e%4]&:C]K8lMne4TV#(!7s>U"n>MCKP]LlC.UKIM_983d]M&&]EOfm&]_P)DpUrZ[XKfc6d,_fbh,CTHtj?=_=,(J:Nfl=94&]D>d9[0r%dlL.o]g1W=TeS_Jm %T+iC%[8+3aXqa#oc$s+/I"cbtQ*u^^$i_:\n^Vs~> %AI9_PrivateDataEnd \ No newline at end of file diff --git a/Style/IC_black.pdf b/Style/IC_black.pdf new file mode 100644 index 0000000..0b5c1ac Binary files /dev/null and b/Style/IC_black.pdf differ diff --git a/Style/IC_blue.eps b/Style/IC_blue.eps new file mode 100644 index 0000000..07daf3a --- /dev/null +++ b/Style/IC_blue.eps @@ -0,0 +1,5233 @@ +%!PS-Adobe-3.1 EPSF-3.0 +%ADO_DSC_Encoding: MacOS Roman +%%Title: IMP_ML_1CS_PS.eps +%%Creator: Adobe Illustrator(R) 13.0 +%%For: Beth Elzer +%%CreationDate: 6/10/09 +%%BoundingBox: 0 0 361 95 +%%HiResBoundingBox: 0 0 360.9233 94.6885 +%%CropBox: 0 0 360.9233 94.6885 +%%LanguageLevel: 2 +%%DocumentData: Clean7Bit +%ADOBeginClientInjection: DocumentHeader "AI11EPS" +%%AI8_CreatorVersion: 13.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 13.0.0 x406 R agm 4.4378 ct 5.1039 %ADO_ContainsXMP: MainFirst %AI7_Thumbnail: 128 36 8 %%BeginData: 6632 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C457E5984FD2CFF7E2F2FFD0AFF84060659FD0AFF7E53532F5AA8FD0B %FF280606FF2F0606FD1EFF060606FD2CFF2F000659FD09FF7D06065AFD08 %FF592F06060006060653FD0AFF2F002FFF2F0006A8FD1DFF06062FFD2CFF %2F0606A9FD09FF7E060659FD07FF5306060628532F2F067EFD0AFF2F0606 %FF2F0606FD1EFF060606FD0FFFA8FD13FFCBFD09FF537EFD0AFF7E06005A %FD06FF5906060653FFFFFFA884FD0BFF2F0628FF530606A8FD1DFF06062F %FFA87EFFAF7E2F7EA9FFA87E537EFFFFFF847EFFFF7E2F7EA9FD05FF7E5A %537EFFFFFFA97EA9FF7E53FFA9A884FFFFFF7E5A535A84FFFF84060659FD %06FF2F060659FD09FF845A2F7EA8FFFFFF2F0606FF2F0606FFFFFFA87E2F %5A84FD05FF7E5953A9FF847EFD04FF7E53597EFFFF060628FF0606060706 %06062F53060006062FFFA90606282F060600067EFFFFFF2F0600060606A8 %FF2F06065306062F5A050684FF28060006060653FF7E06067EFD05FF7E06 %0606FD09FF2F060606000653FFFF2F0628FF530606A8FF59060006060653 %FFFFFF28FD04062F060659FF84290006060628FF06062FFF2F0606287EFD %04062F7E0606067EA8FD0406A85306062FFFFF2F06067EA82F062FFF5306 %0606070684530606A9A92F2F847E2F0606FF84060653FD05FF5306065AFD %08FF2F06067EA853060659FF280606FF2F0606FF7E060653A87E060684FF %2F06065A845306060684FF2F062F7EA8060653060628FF060606FFFF8406 %0606FFFFA806062FA9060606A9FFFF2F06007EA806005AFFFF7E0606AF2F %06062FA87EFF5300067EFFA8FFFFFF2F0606847E06065AFD05FF53060653 %FD07FF7E06062FFFFFFF290006FF2F002FFF2F0006FF2F002FFFFFFF2F00 %53A806062FFFFFFF2F00067E5A000684FFFF5A000607062FFF2F0653FFFF %FF070653FFFFFF2F0653A82F062FFFFFFFA90606537E06072F7E535A0606 %7E5A060684FFFFFF530606A9FFFF7E2F060706067EA9060659FD05FF5306 %067EFD07FF5A06067EFFFFFF530606842F0606FF2F0606A90606067E537E %06062F7E060659FFFFFF530606A82F06065A537E2FFD040628FF06062FFF %FFFF06062FFFFFFF06062FA906062FFFFFFFA806062F2FFD08067E2F0606 %FD04FF530006A8FF280606532F0606847E06065AFD05FF7E060628FD07FF %280606A8FFFFFF5A0606532F002FFF2F00077EFD08062F2F06067EFFFFFF %7E06067E2FFD0A062FFF060653FFFFA92F0653FFFFFF2F0653A8060659FF %FFFFA906062F5A060653A97EA87EA9FF53062FFD04FF530606FF530606A8 %FF8406067EA8060659FD05FFA8060606A8FD06FF5306067EFFFFFF530606 %7E2F0606FF2F0606A9060628A97EA87EA8AF5A06067EFFFFFF590606842F %06068484A87EA984060628FF060628FFFFFF06062FFFFFFF06062FA90606 %06FFFFFF5906065A7E060659FD06FF2F0606FD04FF5305067E29052FFFFF %2F0606A87E06005AFD06FF2806062FFD06FF5306007EFFFFFF5306067E2F %0628FF530606A8290606FD06FF59060053FFFFFF5306067E5306067EFD05 %FF06062FFF290653FFFFA92F0653FFFFFF2F0659A90606077EFFFF2F0606 %A8FF060606A9FFFFA8A9FF53062FFD04FF530606A9060628FFA80606067E %A8060659FD07FF0606062F7EFFAFA959AF06062FFFFFFF060628FF2F0606 %FF2F0606FF5306065AFFFFFF84FFFF060606FFFFA9060606A9A806062FA9 %FFFFA9A8060628FF060628FFFFFF06062FFFFFFF06062FAFFD04062F2F06 %062FFFFF7E0606062F280606FF2F0606FD04FF530606842FFD0606007E7E %06005AFD07FFA8060600FD05067E7E06062F7E060606A8FF2F0606FF5306 %06A9FF0606062F2F2F005AFF5300060653FD04067DFF2F0600072F2F062F %2F062FFF2F0653FFFFFF2F0653FFFFFF2F065AA80706532F0606062FFD04 %FF7EFD05065AFF59062FA9FFFFFF530606AFA82F06062F84060653A90606 %59FD09FF532FFD040628A9FF7EFD040628A9FFFF2F0628FF2F0606FFFFFF %2FFD04062F7EFFFF530606062F5306067EFFFF53070606062F597EA8A8FF %7EA8A8FFFFFF84A8A8FFFFFFA8FFFFA8060653FF7E7E84FD07FF7E7E7EFF %FFFFA8A884FD04FFA97EA8A9FFA87E7EFFFFA87EA9A8A87EAFFD0AFFA884 %7D7E84FD05FF7E7E7EFD04FFA97EA9FFA97EA9FD04FF847E7DA9FFFFA8FF %FFA85984FF7E00067EFFFFFFA87E7DA8FD15FF840D065AFD5CFF2F0606FD %1DFFA806062FFD56FF7E7EFFFFFF5306002FFD1DFFA806065AFD56FF0606 %062F0606062FA8FD1DFFA806062FFD56FF5AFD050653A8FFCBFD0AFFA8FD %12FFA9A8FD10FF5A062FAFFD45FFA9A9A8FD0EFF060628FD23FF280606FD %57FF06062FFD23FF53062FAFFD56FF060628FD23FF2F0606FD57FF07062F %FD09FFAFA8A9A9FD05FFA8FFFFFFA8A9A8FD06FFA984AFFF53062FFD05FF %A984A9FD06FFA8FFFFAF84A9FD43FF060628FD07FF842FFD04062FFFFFFF %2806285AFD04062FFFFFFFA82F06060653280606FFFFFF592F0606062F59 %FFFFFF06062F530606062F7EFD41FF06062FFD06FF842F0607535306062F %FFFF2F06060629FD04067EFFFF2F06062F2FFD0406A9FF5306062F532F06 %0659FFA9FD04062F0606062FFD41FF060606FD06FF2800067EFFFF530606 %53FF28060053FFFF5306062FFF53050653FFFF7E060606FF7E06062FFFFF %FF2F000684FF0606067EFFFF2806007EFD40FF06062FFD05FF8406062FFF %FFFFA906062FFF2F062FAFFFFFFF06062FFF060606FD04FF2F0607FF5A06 %0659FFFFFF5906065AFF2F062FFFFFFF7E060659FD40FF060628FD05FF53 %060059FD04FF060606FF280606FD04FF2F062FA806062FFD04FF2F0606FF %28060684FFFFFF84060628FF06062FFFFFFF7E06067EFD40FF06062FFD05 %FF7E060653FD04FF2F0606AF2F062FFD04FF06062FA9060629FD04FF5306 %2FFF2F060684FFFFFF8406062FFF060653FFFFFF84060653FD40FF060628 %FD05FF59060653FD04FF060606FF280606FD04FF06002FA8060006A9FFFF %FF280606FF2F06067EFFFFFF7E06062FFF060628FFFFFF5906065AFD40FF %07062FFD06FF060606FFFFFF7E060653FF2F062FFD04FF06062FFF280606 %7EFFFFA806062FFF8406062FFFFFFF2F060684FF070653FFFFFF84060659 %FD40FF0606062F282F282F7E7E06062FFF7E060006A8FF060606FD04FF06 %002FFF7E0506067E7E2F060606FFFF2F000659FF5306062FFFFF06062FFF %FFFF7D06065AFD40FFFD08065AFF5AFD05062F7EFFFF2F062FFD04FF0606 %28FFFF53FD05062F0606A9FFFF2FFD05062FFFFFA906062FFFFFFF7E0606 %59FD40FF535A537E535A535A84FFFFA82F2F285AA8FFFFFF7E5A59FFFFFF %CB7E537EFFFFFF7E2F2F53FF7E5A59FD04FF7E2F2F2F7EFD04FF535A7EFF %FFFFA85A53A9FD3FFFFF %%EndData +%ADOEndClientInjection: DocumentHeader "AI11EPS" +%%Pages: 1 +%%DocumentNeededResources: +%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 +%%+ procset Adobe_CoolType_Utility_T42 1.0 0 +%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 +%%+ procset Adobe_CoolType_Core 2.31 0 +%%+ procset Adobe_AGM_Core 2.0 0 +%%+ procset Adobe_AGM_Utils 1.0 0 +%%DocumentFonts: +%%DocumentNeededFonts: +%%DocumentNeededFeatures: +%%DocumentSuppliedFeatures: +%%DocumentProcessColors: +%%DocumentCustomColors: (PANTONE 541 C) +%%CMYKCustomColor: 1 0.5700 0 0.3800 (PANTONE 541 C) +%%RGBCustomColor: +%%EndComments + + + + + + +%%BeginDefaults +%%ViewingOrientation: 1 0 0 1 +%%EndDefaults +%%BeginProlog +%%BeginResource: procset Adobe_AGM_Utils 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{currentpacking true setpacking}if +userdict/Adobe_AGM_Utils 73 dict dup begin put +/bdf +{bind def}bind def +/nd{null def}bdf +/xdf +{exch def}bdf +/ldf +{load def}bdf +/ddf +{put}bdf +/xddf +{3 -1 roll put}bdf +/xpt +{exch put}bdf +/ndf +{ + exch dup where{ + pop pop pop + }{ + xdf + }ifelse +}def +/cdndf +{ + exch dup currentdict exch known{ + pop pop + }{ + exch def + }ifelse +}def +/gx +{get exec}bdf +/ps_level + /languagelevel where{ + pop systemdict/languagelevel gx + }{ + 1 + }ifelse +def +/level2 + ps_level 2 ge +def +/level3 + ps_level 3 ge +def +/ps_version + {version cvr}stopped{-1}if +def +/set_gvm +{currentglobal exch setglobal}bdf +/reset_gvm +{setglobal}bdf +/makereadonlyarray +{ + /packedarray where{pop packedarray + }{ + array astore readonly}ifelse +}bdf +/map_reserved_ink_name +{ + dup type/stringtype eq{ + dup/Red eq{ + pop(_Red_) + }{ + dup/Green eq{ + pop(_Green_) + }{ + dup/Blue eq{ + pop(_Blue_) + }{ + dup()cvn eq{ + pop(Process) + }if + }ifelse + }ifelse + }ifelse + }if +}bdf +/AGMUTIL_GSTATE 22 dict def +/get_gstate +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_clr_spc currentcolorspace def + /AGMUTIL_GSTATE_clr_indx 0 def + /AGMUTIL_GSTATE_clr_comps 12 array def + mark currentcolor counttomark + {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop + /AGMUTIL_GSTATE_fnt rootfont def + /AGMUTIL_GSTATE_lw currentlinewidth def + /AGMUTIL_GSTATE_lc currentlinecap def + /AGMUTIL_GSTATE_lj currentlinejoin def + /AGMUTIL_GSTATE_ml currentmiterlimit def + currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf + /AGMUTIL_GSTATE_sa currentstrokeadjust def + /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def + /AGMUTIL_GSTATE_op currentoverprint def + /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def + /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def + currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf + cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf + /AGMUTIL_GSTATE_ht currenthalftone def + /AGMUTIL_GSTATE_flt currentflat def + end +}def +/set_gstate +{ + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_clr_spc setcolorspace + AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get + /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor + AGMUTIL_GSTATE_fnt setfont + AGMUTIL_GSTATE_lw setlinewidth + AGMUTIL_GSTATE_lc setlinecap + AGMUTIL_GSTATE_lj setlinejoin + AGMUTIL_GSTATE_ml setmiterlimit + AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash + AGMUTIL_GSTATE_sa setstrokeadjust + AGMUTIL_GSTATE_clr_rnd setcolorrendering + AGMUTIL_GSTATE_op setoverprint + AGMUTIL_GSTATE_bg cvx setblackgeneration + AGMUTIL_GSTATE_ucr cvx setundercolorremoval + AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx + AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer + AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or + { + currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne + { + mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark + }if + }{ + AGMUTIL_GSTATE_ht sethalftone + }ifelse + AGMUTIL_GSTATE_flt setflat + end +}def +/get_gstate_and_matrix +{ + AGMUTIL_GSTATE begin + /AGMUTIL_GSTATE_ctm matrix currentmatrix def + end + get_gstate +}def +/set_gstate_and_matrix +{ + set_gstate + AGMUTIL_GSTATE begin + AGMUTIL_GSTATE_ctm setmatrix + end +}def +/AGMUTIL_str256 256 string def +/AGMUTIL_src256 256 string def +/AGMUTIL_dst64 64 string def +/AGMUTIL_srcLen nd +/AGMUTIL_ndx nd +/AGMUTIL_cpd nd +/capture_cpd{ + //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf +}def +/thold_halftone +{ + level3 + {sethalftone currenthalftone} + { + dup/HalftoneType get 3 eq + { + sethalftone currenthalftone + }{ + begin + Width Height mul{ + Thresholds read{pop}if + }repeat + end + currenthalftone + }ifelse + }ifelse +}def +/rdcmntline +{ + currentfile AGMUTIL_str256 readline pop + (%)anchorsearch{pop}if +}bdf +/filter_cmyk +{ + dup type/filetype ne{ + exch()/SubFileDecode filter + }{ + exch pop + } + ifelse + [ + exch + { + AGMUTIL_src256 readstring pop + dup length/AGMUTIL_srcLen exch def + /AGMUTIL_ndx 0 def + AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ + 1 index exch get + AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put + /AGMUTIL_ndx AGMUTIL_ndx 1 add def + }for + pop + AGMUTIL_dst64 0 AGMUTIL_ndx getinterval + } + bind + /exec cvx + ]cvx +}bdf +/filter_indexed_devn +{ + cvi Names length mul names_index add Lookup exch get +}bdf +/filter_devn +{ + 4 dict begin + /srcStr xdf + /dstStr xdf + dup type/filetype ne{ + 0()/SubFileDecode filter + }if + [ + exch + [ + /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx + currentdict/srcStr get/readstring cvx/pop cvx + /dup cvx/length cvx 0/gt cvx[ + Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx + names_index Names length currentdict/srcStr get length 1 sub{ + 1/index cvx/exch cvx/get cvx + currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx + Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx + }for + currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx + ]cvx/if cvx + /end cvx + ]cvx + bind + /exec cvx + ]cvx + end +}bdf +/AGMUTIL_imagefile nd +/read_image_file +{ + AGMUTIL_imagefile 0 setfileposition + 10 dict begin + /imageDict xdf + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + /imbufIdx 0 def + /origDataSource imageDict/DataSource get def + /origMultipleDataSources imageDict/MultipleDataSources get def + /origDecode imageDict/Decode get def + /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def + imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse + { + /imbufCnt imageDict/DataSource get length def + /imbufs imbufCnt array def + 0 1 imbufCnt 1 sub{ + /imbufIdx xdf + imbufs imbufIdx imbufLen string put + imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put + }for + DeviceN_PS2{ + imageDict begin + /DataSource[DataSource/devn_sep_datasource cvx]cvx def + /MultipleDataSources false def + /Decode[0 1]def + end + }if + }{ + /imbuf imbufLen string def + Indexed_DeviceN level3 not and DeviceN_NoneName or{ + /srcDataStrs[imageDict begin + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi string + }repeat + end]def + imageDict begin + /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def + /Decode[0 1]def + end + }{ + imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put + imageDict/Decode[0 1]put + }ifelse + }ifelse + imageDict exch + load exec + imageDict/DataSource origDataSource put + imageDict/MultipleDataSources origMultipleDataSources put + imageDict/Decode origDecode put + end +}bdf +/write_image_file +{ + begin + {(AGMUTIL_imagefile)(w+)file}stopped{ + false + }{ + Adobe_AGM_Utils/AGMUTIL_imagefile xddf + 2 dict begin + /imbufLen Width BitsPerComponent mul 7 add 8 idiv def + MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ + /imbuf imbufLen string def + }if + 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ + pop + MultipleDataSources{ + 0 1 DataSource length 1 sub{ + DataSource type dup + /arraytype eq{ + pop DataSource exch gx + }{ + /filetype eq{ + DataSource exch get imbuf readstring pop + }{ + DataSource exch get + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }for + }{ + DataSource type dup + /arraytype eq{ + pop DataSource exec + }{ + /filetype eq{ + DataSource imbuf readstring pop + }{ + DataSource + }ifelse + }ifelse + AGMUTIL_imagefile exch writestring + }ifelse + }for + end + true + }ifelse + end +}bdf +/close_image_file +{ + AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile +}def +statusdict/product known userdict/AGMP_current_show known not and{ + /pstr statusdict/product get def + pstr(HP LaserJet 2200)eq + pstr(HP LaserJet 4000 Series)eq or + pstr(HP LaserJet 4050 Series )eq or + pstr(HP LaserJet 8000 Series)eq or + pstr(HP LaserJet 8100 Series)eq or + pstr(HP LaserJet 8150 Series)eq or + pstr(HP LaserJet 5000 Series)eq or + pstr(HP LaserJet 5100 Series)eq or + pstr(HP Color LaserJet 4500)eq or + pstr(HP Color LaserJet 4600)eq or + pstr(HP LaserJet 5Si)eq or + pstr(HP LaserJet 1200 Series)eq or + pstr(HP LaserJet 1300 Series)eq or + pstr(HP LaserJet 4100 Series)eq or + { + userdict/AGMP_current_show/show load put + userdict/show{ + currentcolorspace 0 get + /Pattern eq + {false charpath f} + {AGMP_current_show}ifelse + }put + }if + currentdict/pstr undef +}if +/consumeimagedata +{ + begin + AGMIMG_init_common + currentdict/MultipleDataSources known not + {/MultipleDataSources false def}if + MultipleDataSources + { + DataSource 0 get type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width cvi string def + 1 1 Height cvi + { + pop + 0 1 DataSource length 1 sub + { + DataSource exch get + flushbuffer readstring pop pop + }for + }for + end + }if + dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and + { + Width Height mul cvi + { + 0 1 DataSource length 1 sub + {dup DataSource exch gx length exch 0 ne{pop}if}for + dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + } + { + /DataSource load type + dup/filetype eq + { + 1 dict begin + /flushbuffer Width Decode length 2 idiv mul cvi string def + 1 1 Height{pop DataSource flushbuffer readstring pop pop}for + end + }if + dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and + { + Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul + { + DataSource length dup 0 eq + {pop exit}if + sub dup 0 le + {exit}if + }loop + pop + }if + }ifelse + end +}bdf +/addprocs +{ + 2{/exec load}repeat + 3 1 roll + [5 1 roll]bind cvx +}def +/modify_halftone_xfer +{ + currenthalftone dup length dict copy begin + currentdict 2 index known{ + 1 index load dup length dict copy begin + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end def + currentdict end sethalftone + }{ + currentdict/TransferFunction known{ + /TransferFunction load + }{ + currenttransfer + }ifelse + addprocs/TransferFunction xdf + currentdict end sethalftone + pop + }ifelse +}def +/clonearray +{ + dup xcheck exch + dup length array exch + Adobe_AGM_Core/AGMCORE_tmp -1 ddf + { + Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf + dup type/dicttype eq + { + Adobe_AGM_Core/AGMCORE_tmp get + exch + clonedict + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + dup type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_tmp get exch + clonearray + Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf + }if + exch dup + Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put + }forall + exch{cvx}if +}bdf +/clonedict +{ + dup length dict + begin + { + dup type/dicttype eq + {clonedict}if + dup type/arraytype eq + {clonearray}if + def + }forall + currentdict + end +}bdf +/DeviceN_PS2 +{ + /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and +}bdf +/Indexed_DeviceN +{ + /indexed_colorspace_dict AGMCORE_gget dup null ne{ + dup/CSDBase known{ + /CSDBase get/CSD get_res/Names known + }{ + pop false + }ifelse + }{ + pop false + }ifelse +}bdf +/DeviceN_NoneName +{ + /Names where{ + pop + false Names + { + (None)eq or + }forall + }{ + false + }ifelse +}bdf +/DeviceN_PS2_inRip_seps +{ + /AGMCORE_in_rip_sep where + { + pop dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and + { + /currentcolorspace exch AGMCORE_gput + false + }{ + true + }ifelse + }{ + true + }ifelse + }{ + true + }ifelse +}bdf +/base_colorspace_type +{ + dup type/arraytype eq{0 get}if +}bdf +/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse +{ + /pdfmark_5{cleartomark}bind def +}{ + /pdfmark_5{pdfmark}bind def +}ifelse +/ReadBypdfmark_5 +{ + currentfile exch 0 exch/SubFileDecode filter + /currentdistillerparams where + {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse + {flushfile cleartomark} + {/PUT pdfmark}ifelse +}bdf +/xpdfm +{ + { + dup 0 get/Label eq + { + aload length[exch 1 add 1 roll/PAGELABEL + }{ + aload pop + [{ThisPage}<<5 -2 roll>>/PUT + }ifelse + pdfmark_5 + }forall +}bdf +/ds{ + Adobe_AGM_Utils begin +}bdf +/dt{ + currentdict Adobe_AGM_Utils eq{ + end + }if +}bdf +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_AGM_Core 2.0 0 +%%Version: 2.0 0 +%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Core 209 dict dup begin put +/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def +/AGMCORE_str256 256 string def +/AGMCORE_save nd +/AGMCORE_graphicsave nd +/AGMCORE_c 0 def +/AGMCORE_m 0 def +/AGMCORE_y 0 def +/AGMCORE_k 0 def +/AGMCORE_cmykbuf 4 array def +/AGMCORE_screen[currentscreen]cvx def +/AGMCORE_tmp 0 def +/AGMCORE_&setgray nd +/AGMCORE_&setcolor nd +/AGMCORE_&setcolorspace nd +/AGMCORE_&setcmykcolor nd +/AGMCORE_cyan_plate nd +/AGMCORE_magenta_plate nd +/AGMCORE_yellow_plate nd +/AGMCORE_black_plate nd +/AGMCORE_plate_ndx nd +/AGMCORE_get_ink_data nd +/AGMCORE_is_cmyk_sep nd +/AGMCORE_host_sep nd +/AGMCORE_avoid_L2_sep_space nd +/AGMCORE_distilling nd +/AGMCORE_composite_job nd +/AGMCORE_producing_seps nd +/AGMCORE_ps_level -1 def +/AGMCORE_ps_version -1 def +/AGMCORE_environ_ok nd +/AGMCORE_CSD_cache 0 dict def +/AGMCORE_currentoverprint false def +/AGMCORE_deltaX nd +/AGMCORE_deltaY nd +/AGMCORE_name nd +/AGMCORE_sep_special nd +/AGMCORE_err_strings 4 dict def +/AGMCORE_cur_err nd +/AGMCORE_current_spot_alias false def +/AGMCORE_inverting false def +/AGMCORE_feature_dictCount nd +/AGMCORE_feature_opCount nd +/AGMCORE_feature_ctm nd +/AGMCORE_ConvertToProcess false def +/AGMCORE_Default_CTM matrix def +/AGMCORE_Default_PageSize nd +/AGMCORE_Default_flatness nd +/AGMCORE_currentbg nd +/AGMCORE_currentucr nd +/AGMCORE_pattern_paint_type 0 def +/knockout_unitsq nd +currentglobal true setglobal +[/CSA/Gradient/Procedure] +{ + /Generic/Category findresource dup length dict copy/Category defineresource pop +}forall +setglobal +/AGMCORE_key_known +{ + where{ + /Adobe_AGM_Core_Id known + }{ + false + }ifelse +}ndf +/flushinput +{ + save + 2 dict begin + /CompareBuffer 3 -1 roll def + /readbuffer 256 string def + mark + { + currentfile readbuffer{readline}stopped + {cleartomark mark} + { + not + {pop exit} + if + CompareBuffer eq + {exit} + if + }ifelse + }loop + cleartomark + end + restore +}bdf +/getspotfunction +{ + AGMCORE_screen exch pop exch pop + dup type/dicttype eq{ + dup/HalftoneType get 1 eq{ + /SpotFunction get + }{ + dup/HalftoneType get 2 eq{ + /GraySpotFunction get + }{ + pop + { + abs exch abs 2 copy add 1 gt{ + 1 sub dup mul exch 1 sub dup mul add 1 sub + }{ + dup mul exch dup mul add 1 exch sub + }ifelse + }bind + }ifelse + }ifelse + }if +}def +/np +{newpath}bdf +/clp_npth +{clip np}def +/eoclp_npth +{eoclip np}def +/npth_clp +{np clip}def +/graphic_setup +{ + /AGMCORE_graphicsave save store + concat + 0 setgray + 0 setlinecap + 0 setlinejoin + 1 setlinewidth + []0 setdash + 10 setmiterlimit + np + false setoverprint + false setstrokeadjust + //Adobe_AGM_Core/spot_alias gx + /Adobe_AGM_Image where{ + pop + Adobe_AGM_Image/spot_alias 2 copy known{ + gx + }{ + pop pop + }ifelse + }if + /sep_colorspace_dict null AGMCORE_gput + 100 dict begin + /dictstackcount countdictstack def + /showpage{}def + mark +}def +/graphic_cleanup +{ + cleartomark + dictstackcount 1 countdictstack 1 sub{end}for + end + AGMCORE_graphicsave restore +}def +/compose_error_msg +{ + grestoreall initgraphics + /Helvetica findfont 10 scalefont setfont + /AGMCORE_deltaY 100 def + /AGMCORE_deltaX 310 def + clippath pathbbox np pop pop 36 add exch 36 add exch moveto + 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto + 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath + 0 AGMCORE_&setgray + gsave 1 AGMCORE_&setgray fill grestore + 1 setlinewidth gsave stroke grestore + currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto + /AGMCORE_deltaY 12 def + /AGMCORE_tmp 0 def + AGMCORE_err_strings exch get + { + dup 32 eq + { + pop + AGMCORE_str256 0 AGMCORE_tmp getinterval + stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt + { + currentpoint AGMCORE_deltaY sub exch pop + clippath pathbbox pop pop pop 44 add exch moveto + }if + AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show + 0 1 AGMCORE_str256 length 1 sub + { + AGMCORE_str256 exch 0 put + }for + /AGMCORE_tmp 0 def + }{ + AGMCORE_str256 exch AGMCORE_tmp xpt + /AGMCORE_tmp AGMCORE_tmp 1 add def + }ifelse + }forall +}bdf +/AGMCORE_CMYKDeviceNColorspaces[ + [/Separation/None/DeviceCMYK{0 0 0}] + [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] + [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] + [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] + [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] + [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] + [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] + [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] + [/Separation(Cyan)/DeviceCMYK{0 0 0}] + [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] + [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] + [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] + [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] + [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] + [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] + [/DeviceCMYK] +]def +/ds{ + Adobe_AGM_Core begin + /currentdistillerparams where + { + pop currentdistillerparams/CoreDistVersion get 5000 lt + {<>setdistillerparams}if + }if + /AGMCORE_ps_version xdf + /AGMCORE_ps_level xdf + errordict/AGM_handleerror known not{ + errordict/AGM_handleerror errordict/handleerror get put + errordict/handleerror{ + Adobe_AGM_Core begin + $error/newerror get AGMCORE_cur_err null ne and{ + $error/newerror false put + AGMCORE_cur_err compose_error_msg + }if + $error/newerror true put + end + errordict/AGM_handleerror get exec + }bind put + }if + /AGMCORE_environ_ok + ps_level AGMCORE_ps_level ge + ps_version AGMCORE_ps_version ge and + AGMCORE_ps_level -1 eq or + def + AGMCORE_environ_ok not + {/AGMCORE_cur_err/AGMCORE_bad_environ def}if + /AGMCORE_&setgray systemdict/setgray get def + level2{ + /AGMCORE_&setcolor systemdict/setcolor get def + /AGMCORE_&setcolorspace systemdict/setcolorspace get def + }if + /AGMCORE_currentbg currentblackgeneration def + /AGMCORE_currentucr currentundercolorremoval def + /AGMCORE_Default_flatness currentflat def + /AGMCORE_distilling + /product where{ + pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and + }{ + false + }ifelse + def + /AGMCORE_GSTATE AGMCORE_key_known not{ + /AGMCORE_GSTATE 21 dict def + /AGMCORE_tmpmatrix matrix def + /AGMCORE_gstack 32 array def + /AGMCORE_gstackptr 0 def + /AGMCORE_gstacksaveptr 0 def + /AGMCORE_gstackframekeys 14 def + /AGMCORE_&gsave/gsave ldf + /AGMCORE_&grestore/grestore ldf + /AGMCORE_&grestoreall/grestoreall ldf + /AGMCORE_&save/save ldf + /AGMCORE_&setoverprint/setoverprint ldf + /AGMCORE_gdictcopy{ + begin + {def}forall + end + }def + /AGMCORE_gput{ + AGMCORE_gstack AGMCORE_gstackptr get + 3 1 roll + put + }def + /AGMCORE_gget{ + AGMCORE_gstack AGMCORE_gstackptr get + exch + get + }def + /gsave{ + AGMCORE_&gsave + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /grestore{ + AGMCORE_&grestore + AGMCORE_gstackptr 1 sub + dup AGMCORE_gstacksaveptr lt{1 add}if + dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known + {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse + /AGMCORE_gstackptr exch store + }def + /grestoreall{ + AGMCORE_&grestoreall + /AGMCORE_gstackptr AGMCORE_gstacksaveptr store + }def + /save{ + AGMCORE_&save + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gstackptr 1 add + dup 32 ge{limitcheck}if + /AGMCORE_gstackptr exch store + /AGMCORE_gstacksaveptr AGMCORE_gstackptr store + AGMCORE_gstack AGMCORE_gstackptr get + AGMCORE_gdictcopy + }def + /setoverprint{ + dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint + }def + 0 1 AGMCORE_gstack length 1 sub{ + AGMCORE_gstack exch AGMCORE_gstackframekeys dict put + }for + }if + level3/AGMCORE_&sysshfill AGMCORE_key_known not and + { + /AGMCORE_&sysshfill systemdict/shfill get def + /AGMCORE_&sysmakepattern systemdict/makepattern get def + /AGMCORE_&usrmakepattern/makepattern load def + }if + /currentcmykcolor[0 0 0 0]AGMCORE_gput + /currentstrokeadjust false AGMCORE_gput + /currentcolorspace[/DeviceGray]AGMCORE_gput + /sep_tint 0 AGMCORE_gput + /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput + /sep_colorspace_dict null AGMCORE_gput + /devicen_colorspace_dict null AGMCORE_gput + /indexed_colorspace_dict null AGMCORE_gput + /currentcolor_intent()AGMCORE_gput + /customcolor_tint 1 AGMCORE_gput + /absolute_colorimetric_crd null AGMCORE_gput + /relative_colorimetric_crd null AGMCORE_gput + /saturation_crd null AGMCORE_gput + /perceptual_crd null AGMCORE_gput + currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf + cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf + << + /MaxPatternItem currentsystemparams/MaxPatternCache get + >> + setuserparams + end +}def +/ps +{ + /setcmykcolor where{ + pop + Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put + }if + Adobe_AGM_Core begin + /setcmykcolor + { + 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput + 1 sub 4 1 roll + 3{ + 3 index add neg dup 0 lt{ + pop 0 + }if + 3 1 roll + }repeat + setrgbcolor pop + }ndf + /currentcmykcolor + { + /currentcmykcolor AGMCORE_gget aload pop + }ndf + /setoverprint + {pop}ndf + /currentoverprint + {false}ndf + /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def + /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def + /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def + /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def + /AGMCORE_plate_ndx + AGMCORE_cyan_plate{ + 0 + }{ + AGMCORE_magenta_plate{ + 1 + }{ + AGMCORE_yellow_plate{ + 2 + }{ + AGMCORE_black_plate{ + 3 + }{ + 4 + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_have_reported_unsupported_color_space false def + /AGMCORE_report_unsupported_color_space + { + AGMCORE_have_reported_unsupported_color_space false eq + { + (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== + Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf + }if + }def + /AGMCORE_composite_job + AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def + /AGMCORE_in_rip_sep + /AGMCORE_in_rip_sep where{ + pop AGMCORE_in_rip_sep + }{ + AGMCORE_distilling + { + false + }{ + userdict/Adobe_AGM_OnHost_Seps known{ + false + }{ + level2{ + currentpagedevice/Separations 2 copy known{ + get + }{ + pop pop false + }ifelse + }{ + false + }ifelse + }ifelse + }ifelse + }ifelse + def + /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def + /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def + /AGM_preserve_spots + /AGM_preserve_spots where{ + pop AGM_preserve_spots + }{ + AGMCORE_distilling AGMCORE_producing_seps or + }ifelse + def + /AGM_is_distiller_preserving_spotimages + { + currentdistillerparams/PreserveOverprintSettings known + { + currentdistillerparams/PreserveOverprintSettings get + { + currentdistillerparams/ColorConversionStrategy known + { + currentdistillerparams/ColorConversionStrategy get + /sRGB ne + }{ + true + }ifelse + }{ + false + }ifelse + }{ + false + }ifelse + }def + /convert_spot_to_process where{pop}{ + /convert_spot_to_process + { + //Adobe_AGM_Core begin + dup map_alias{ + /Name get exch pop + }if + dup dup(None)eq exch(All)eq or + { + pop false + }{ + AGMCORE_host_sep + { + gsave + 1 0 0 0 setcmykcolor currentgray 1 exch sub + 0 1 0 0 setcmykcolor currentgray 1 exch sub + 0 0 1 0 setcmykcolor currentgray 1 exch sub + 0 0 0 1 setcmykcolor currentgray 1 exch sub + add add add 0 eq + { + pop false + }{ + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + }ifelse + grestore + }{ + AGMCORE_distilling + { + pop AGM_is_distiller_preserving_spotimages not + }{ + //Adobe_AGM_Core/AGMCORE_name xddf + false + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq + AGMUTIL_cpd/OverrideSeparations known and + { + AGMUTIL_cpd/OverrideSeparations get + { + /HqnSpots/ProcSet resourcestatus + { + pop pop pop true + }if + }if + }if + { + AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not + }{ + gsave + [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace + false + AGMUTIL_cpd/SeparationColorNames 2 copy known + { + get + {AGMCORE_name eq or}forall + not + }{ + pop pop pop true + }ifelse + grestore + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + }ifelse + /convert_to_process where{pop}{ + /convert_to_process + { + dup length 0 eq + { + pop false + }{ + AGMCORE_host_sep + { + dup true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process and}ifelse + } + forall + { + true exch + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + (Black)eq or and + }forall + not + }{pop false}ifelse + }{ + false exch + { + /PhotoshopDuotoneList where{pop false}{true}ifelse + { + dup(Cyan)eq exch + dup(Magenta)eq 3 -1 roll or exch + dup(Yellow)eq 3 -1 roll or exch + dup(Black)eq 3 -1 roll or + {pop} + {convert_spot_to_process or}ifelse + } + { + convert_spot_to_process or + } + ifelse + } + forall + }ifelse + }ifelse + }def + }ifelse + /AGMCORE_avoid_L2_sep_space + version cvr 2012 lt + level2 and + AGMCORE_producing_seps not and + def + /AGMCORE_is_cmyk_sep + AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or + def + /AGM_avoid_0_cmyk where{ + pop AGM_avoid_0_cmyk + }{ + AGM_preserve_spots + userdict/Adobe_AGM_OnHost_Seps known + userdict/Adobe_AGM_InRip_Seps known or + not and + }ifelse + { + /setcmykcolor[ + { + 4 copy add add add 0 eq currentoverprint and{ + pop 0.0005 + }if + }/exec cvx + /AGMCORE_&setcmykcolor load dup type/operatortype ne{ + /exec cvx + }if + ]cvx def + }if + /AGMCORE_IsSeparationAProcessColor + { + dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or + }def + AGMCORE_host_sep{ + /setcolortransfer + { + AGMCORE_cyan_plate{ + pop pop pop + }{ + AGMCORE_magenta_plate{ + 4 3 roll pop pop pop + }{ + AGMCORE_yellow_plate{ + 4 2 roll pop pop pop + }{ + 4 1 roll pop pop pop + }ifelse + }ifelse + }ifelse + settransfer + } + def + /AGMCORE_get_ink_data + AGMCORE_cyan_plate{ + {pop pop pop} + }{ + AGMCORE_magenta_plate{ + {4 3 roll pop pop pop} + }{ + AGMCORE_yellow_plate{ + {4 2 roll pop pop pop} + }{ + {4 1 roll pop pop pop} + }ifelse + }ifelse + }ifelse + def + /AGMCORE_RemoveProcessColorNames + { + 1 dict begin + /filtername + { + dup/Cyan eq 1 index(Cyan)eq or + {pop(_cyan_)}if + dup/Magenta eq 1 index(Magenta)eq or + {pop(_magenta_)}if + dup/Yellow eq 1 index(Yellow)eq or + {pop(_yellow_)}if + dup/Black eq 1 index(Black)eq or + {pop(_black_)}if + }def + dup type/arraytype eq + {[exch{filtername}forall]} + {filtername}ifelse + end + }def + level3{ + /AGMCORE_IsCurrentColor + { + dup AGMCORE_IsSeparationAProcessColor + { + AGMCORE_plate_ndx 0 eq + {dup(Cyan)eq exch/Cyan eq or}if + AGMCORE_plate_ndx 1 eq + {dup(Magenta)eq exch/Magenta eq or}if + AGMCORE_plate_ndx 2 eq + {dup(Yellow)eq exch/Yellow eq or}if + AGMCORE_plate_ndx 3 eq + {dup(Black)eq exch/Black eq or}if + AGMCORE_plate_ndx 4 eq + {pop false}if + }{ + gsave + false setoverprint + current_spot_alias false set_spot_alias + 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor + set_spot_alias + currentgray 1 ne + grestore + }ifelse + }def + /AGMCORE_filter_functiondatasource + { + 5 dict begin + /data_in xdf + data_in type/stringtype eq + { + /ncomp xdf + /comp xdf + /string_out data_in length ncomp idiv string def + 0 ncomp data_in length 1 sub + { + string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put + }for + string_out + }{ + string/string_in xdf + /string_out 1 string def + /component xdf + [ + data_in string_in/readstring cvx + [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx + [/pop cvx()]cvx/ifelse cvx + ]cvx/ReusableStreamDecode filter + }ifelse + end + }def + /AGMCORE_separateShadingFunction + { + 2 dict begin + /paint? xdf + /channel xdf + dup type/dicttype eq + { + begin + FunctionType 0 eq + { + /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def + currentdict/Decode known + {/Decode Decode channel 2 mul 2 getinterval def}if + paint? not + {/Decode[1 1]def}if + }if + FunctionType 2 eq + { + paint? + { + /C0[C0 channel get 1 exch sub]def + /C1[C1 channel get 1 exch sub]def + }{ + /C0[1]def + /C1[1]def + }ifelse + }if + FunctionType 3 eq + { + /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def + }if + currentdict/Range known + {/Range[0 1]def}if + currentdict + end}{ + channel get 0 paint? AGMCORE_separateShadingFunction + }ifelse + end + }def + /AGMCORE_separateShading + { + 3 -1 roll begin + currentdict/Function known + { + currentdict/Background known + {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if + Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf + /ColorSpace[/DeviceGray]def + }{ + ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }{ + ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put + }ifelse + ColorSpace 0 get/Separation eq + { + { + [1/exch cvx/sub cvx]cvx + }{ + [/pop cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll put + pop + }{ + { + [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx + }{ + pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx + }ifelse + ColorSpace 3 3 -1 roll bind put + }ifelse + ColorSpace 2/DeviceGray put + }ifelse + end + }def + /AGMCORE_separateShadingDict + { + dup/ColorSpace get + dup type/arraytype ne + {[exch]}if + dup 0 get/DeviceCMYK eq + { + exch begin + currentdict + AGMCORE_cyan_plate + {0 true}if + AGMCORE_magenta_plate + {1 true}if + AGMCORE_yellow_plate + {2 true}if + AGMCORE_black_plate + {3 true}if + AGMCORE_plate_ndx 4 eq + {0 false}if + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + currentdict + end exch + }if + dup 0 get/Separation eq + { + exch begin + ColorSpace 1 get dup/None ne exch/All ne and + { + ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /Separation + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + }if + }ifelse + }{ + currentdict ColorSpace 1 get AGMCORE_IsCurrentColor + 0 exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + }if + currentdict + end exch + }if + dup 0 get/DeviceN eq + { + exch begin + ColorSpace 1 get convert_to_process + { + ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq + { + /ColorSpace + [ + /DeviceN + ColorSpace 1 get + /DeviceGray + [ + ColorSpace 3 get/exec cvx + 4 AGMCORE_plate_ndx sub -1/roll cvx + 4 1/roll cvx + 3[/pop cvx]cvx/repeat cvx + 1/exch cvx/sub cvx + ]cvx + ]def + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + currentdict 0 false AGMCORE_separateShading + /ColorSpace[/DeviceGray]def + }if + }ifelse + }{ + currentdict + false -1 ColorSpace 1 get + { + AGMCORE_IsCurrentColor + { + 1 add + exch pop true exch exit + }if + 1 add + }forall + exch + dup not currentoverprint and + {/AGMCORE_ignoreshade true def}if + AGMCORE_separateShading + }ifelse + currentdict + end exch + }if + dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not + { + exch begin + ColorSpace dup type/arraytype eq + {0 get}if + /DeviceGray ne + { + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate not + { + ColorSpace 0 get/CIEBasedA eq + { + /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def + }if + ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or + { + /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def + }if + ColorSpace 0 get/CIEBasedDEFG eq + { + /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def + }if + currentdict 0 false AGMCORE_separateShading + }if + }if + currentdict + end exch + }if + pop + dup/AGMCORE_ignoreshade known + { + begin + /ColorSpace[/Separation(None)/DeviceGray{}]def + currentdict end + }if + }def + /shfill + { + AGMCORE_separateShadingDict + dup/AGMCORE_ignoreshade known + {pop} + {AGMCORE_&sysshfill}ifelse + }def + /makepattern + { + exch + dup/PatternType get 2 eq + { + clonedict + begin + /Shading Shading AGMCORE_separateShadingDict def + Shading/AGMCORE_ignoreshade known + currentdict end exch + {pop<>}if + exch AGMCORE_&sysmakepattern + }{ + exch AGMCORE_&usrmakepattern + }ifelse + }def + }if + }if + AGMCORE_in_rip_sep{ + /setcustomcolor + { + exch aload pop + dup 7 1 roll inRip_spot_has_ink not { + 4{4 index mul 4 1 roll} + repeat + /DeviceCMYK setcolorspace + 6 -2 roll pop pop + }{ + //Adobe_AGM_Core begin + /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf + end + [/Separation 4 -1 roll/DeviceCMYK + {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} + ] + setcolorspace + }ifelse + setcolor + }ndf + /setseparationgray + { + [/Separation(All)/DeviceGray{}]setcolorspace_opt + 1 exch sub setcolor + }ndf + }{ + /setseparationgray + { + AGMCORE_&setgray + }ndf + }ifelse + /findcmykcustomcolor + { + 5 makereadonlyarray + }ndf + /setcustomcolor + { + exch aload pop pop + 4{4 index mul 4 1 roll}repeat + setcmykcolor pop + }ndf + /has_color + /colorimage where{ + AGMCORE_producing_seps{ + pop true + }{ + systemdict eq + }ifelse + }{ + false + }ifelse + def + /map_index + { + 1 index mul exch getinterval{255 div}forall + }bdf + /map_indexed_devn + { + Lookup Names length 3 -1 roll cvi map_index + }bdf + /n_color_components + { + base_colorspace_type + dup/DeviceGray eq{ + pop 1 + }{ + /DeviceCMYK eq{ + 4 + }{ + 3 + }ifelse + }ifelse + }bdf + level2{ + /mo/moveto ldf + /li/lineto ldf + /cv/curveto ldf + /knockout_unitsq + { + 1 setgray + 0 0 1 1 rectfill + }def + level2/setcolorspace AGMCORE_key_known not and{ + /AGMCORE_&&&setcolorspace/setcolorspace ldf + /AGMCORE_ReplaceMappedColor + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + /AGMCORE_SpotAliasAry2 where{ + begin + dup 0 get dup/Separation eq + { + pop + dup length array copy + dup dup 1 get + current_spot_alias + { + dup map_alias + { + false set_spot_alias + dup 1 exch setsepcolorspace + true set_spot_alias + begin + /sep_colorspace_dict currentdict AGMCORE_gput + pop pop pop + [ + /Separation Name + CSA map_csa + MappedCSA + /sep_colorspace_proc load + ] + dup Name + end + }if + }if + map_reserved_ink_name 1 xpt + }{ + /DeviceN eq + { + dup length array copy + dup dup 1 get[ + exch{ + current_spot_alias{ + dup map_alias{ + /Name get exch pop + }if + }if + map_reserved_ink_name + }forall + ]1 xpt + }if + }ifelse + end + }if + }if + }def + /setcolorspace + { + dup type dup/arraytype eq exch/packedarraytype eq or + { + dup 0 get/Indexed eq + { + AGMCORE_distilling + { + /PhotoshopDuotoneList where + { + pop false + }{ + true + }ifelse + }{ + true + }ifelse + { + aload pop 3 -1 roll + AGMCORE_ReplaceMappedColor + 3 1 roll 4 array astore + }if + }{ + AGMCORE_ReplaceMappedColor + }ifelse + }if + DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if + }def + }if + }{ + /adj + { + currentstrokeadjust{ + transform + 0.25 sub round 0.25 add exch + 0.25 sub round 0.25 add exch + itransform + }if + }def + /mo{ + adj moveto + }def + /li{ + adj lineto + }def + /cv{ + 6 2 roll adj + 6 2 roll adj + 6 2 roll adj curveto + }def + /knockout_unitsq + { + 1 setgray + 8 8 1[8 0 0 8 0 0]{}image + }def + /currentstrokeadjust{ + /currentstrokeadjust AGMCORE_gget + }def + /setstrokeadjust{ + /currentstrokeadjust exch AGMCORE_gput + }def + /setcolorspace + { + /currentcolorspace exch AGMCORE_gput + }def + /currentcolorspace + { + /currentcolorspace AGMCORE_gget + }def + /setcolor_devicecolor + { + base_colorspace_type + dup/DeviceGray eq{ + pop setgray + }{ + /DeviceCMYK eq{ + setcmykcolor + }{ + setrgbcolor + }ifelse + }ifelse + }def + /setcolor + { + currentcolorspace 0 get + dup/DeviceGray ne{ + dup/DeviceCMYK ne{ + dup/DeviceRGB ne{ + dup/Separation eq{ + pop + currentcolorspace 3 gx + currentcolorspace 2 get + }{ + dup/Indexed eq{ + pop + currentcolorspace 3 get dup type/stringtype eq{ + currentcolorspace 1 get n_color_components + 3 -1 roll map_index + }{ + exec + }ifelse + currentcolorspace 1 get + }{ + /AGMCORE_cur_err/AGMCORE_invalid_color_space def + AGMCORE_invalid_color_space + }ifelse + }ifelse + }if + }if + }if + setcolor_devicecolor + }def + }ifelse + /sop/setoverprint ldf + /lw/setlinewidth ldf + /lc/setlinecap ldf + /lj/setlinejoin ldf + /ml/setmiterlimit ldf + /dsh/setdash ldf + /sadj/setstrokeadjust ldf + /gry/setgray ldf + /rgb/setrgbcolor ldf + /cmyk[ + /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx + /setcmykcolor load dup type/operatortype ne{/exec cvx}if + ]cvx bdf + level3 AGMCORE_host_sep not and{ + /nzopmsc{ + 6 dict begin + /kk exch def + /yy exch def + /mm exch def + /cc exch def + /sum 0 def + cc 0 ne{/sum sum 2#1000 or def cc}if + mm 0 ne{/sum sum 2#0100 or def mm}if + yy 0 ne{/sum sum 2#0010 or def yy}if + kk 0 ne{/sum sum 2#0001 or def kk}if + AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace + sum 0 eq{0}if + end + setcolor + }bdf + }{ + /nzopmsc/cmyk ldf + }ifelse + /sep/setsepcolor ldf + /devn/setdevicencolor ldf + /idx/setindexedcolor ldf + /colr/setcolor ldf + /csacrd/set_csa_crd ldf + /sepcs/setsepcolorspace ldf + /devncs/setdevicencolorspace ldf + /idxcs/setindexedcolorspace ldf + /cp/closepath ldf + /clp/clp_npth ldf + /eclp/eoclp_npth ldf + /f/fill ldf + /ef/eofill ldf + /@/stroke ldf + /nclp/npth_clp ldf + /gset/graphic_setup ldf + /gcln/graphic_cleanup ldf + /ct/concat ldf + /cf/currentfile ldf + /fl/filter ldf + /rs/readstring ldf + /AGMCORE_def_ht currenthalftone def + /clonedict Adobe_AGM_Utils begin/clonedict load end def + /clonearray Adobe_AGM_Utils begin/clonearray load end def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall + /getrampcolor + { + /indx exch def + 0 1 NumComp 1 sub + { + dup + Samples exch get + dup type/stringtype eq{indx get}if + exch + Scaling exch get aload pop + 3 1 roll + mul add + }for + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /sssetbackground{ + aload pop + ColorSpaceFamily/Separation eq + {sep} + { + ColorSpaceFamily/DeviceN eq + {devn}{setcolor}ifelse + }ifelse + }bdf + /RadialShade + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /r2 xdf + /c2y xdf + /c2x xdf + /r1 xdf + /c1y xdf + /c1x xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + c1x c2x eq + { + c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope c2y c1y sub c2x c1x sub div def + /theta slope 1 atan def + c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if + c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if + }ifelse + gsave + clippath + c1x c1y translate + theta rotate + -90 rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax xdf + /xMax xdf + /yMin xdf + /xMin xdf + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + /max{2 copy gt{pop}{exch pop}ifelse}bdf + /min{2 copy lt{pop}{exch pop}ifelse}bdf + rampdict begin + 40 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + c1x c1y translate + theta rotate + -90 rotate + /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def + /c1y 0 def + /c1x 0 def + /c2x 0 def + ext0 + { + 0 getrampcolor + c2y r2 add r1 sub 0.0001 lt + { + c1x c1y r1 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2y r1 add r2 le + { + c1x c1y r1 0 360 arc + fill + } + { + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r1 neg def + /p1y c1y def + /p2x r1 def + /p2y c1y def + p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y p1x SS1 div neg def + /SS2 90 theta sub dup sin exch cos div def + /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y p2x SS2 div neg def + r1 r2 gt + { + /L1maxX p1x yMin p1y sub SS1 div add def + /L2maxX p2x yMin p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + c1x c2x sub dup mul + c1y c2y sub dup mul + add 0.5 exp + 0 dtransform + dup mul exch dup mul add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + /hires xdf + hires mul + /numpix xdf + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + /xInc c2x c1x sub numsteps div def + /yInc c2y c1y sub numsteps div def + /rInc r2 r1 sub numsteps div def + /cx c1x def + /cy c1y def + /radius r1 def + np + xInc 0 eq yInc 0 eq rInc 0 eq and and + { + 0 getrampcolor + cx cy radius 0 360 arc + stroke + NumSamples 1 sub getrampcolor + cx cy radius 72 hires div add 0 360 arc + 0 setlinewidth + stroke + }{ + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + cx cy radius 0 360 arc + /cx cx xInc add def + /cy cy yInc add def + /radius radius rInc add def + cx cy radius 360 0 arcn + eofill + rampIndxInc add + }repeat + pop + }ifelse + ext1 + { + c2y r2 add r1 lt + { + c2x c2y r2 0 360 arc + fill + }{ + c2y r1 add r2 sub 0.0001 le + { + c2x c2y r2 360 0 arcn + pathbbox + /aymax exch def + /axmax exch def + /aymin exch def + /axmin exch def + /bxMin xMin axmin min def + /byMin yMin aymin min def + /bxMax xMax axmax max def + /byMax yMax aymax max def + bxMin byMin moveto + bxMax byMin lineto + bxMax byMax lineto + bxMin byMax lineto + bxMin byMin lineto + eofill + }{ + c2x c2y r2 0 360 arc fill + r1 r2 eq + { + /p1x r2 neg def + /p1y c2y def + /p2x r2 def + /p2y c2y def + p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto + fill + }{ + /AA r2 r1 sub c2y div def + AA -1 eq + {/theta 89.99 def} + {/theta AA 1 AA dup mul sub sqrt div 1 atan def} + ifelse + /SS1 90 theta add dup sin exch cos div def + /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def + /p1y c2y p1x SS1 div sub def + /SS2 90 theta sub dup sin exch cos div def + /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def + /p2y c2y p2x SS2 div sub def + r1 r2 lt + { + /L1maxX p1x yMax p1y sub SS1 div add def + /L2maxX p2x yMax p2y sub SS2 div add def + }{ + /L1maxX 0 def + /L2maxX 0 def + }ifelse + p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto + L1maxX L1maxX p1x sub SS1 mul p1y add lineto + fill + }ifelse + }ifelse + }ifelse + }if + grestore + grestore + end + end + end + }ifelse + }bdf + /GenStrips + { + 40 dict begin + /ColorSpaceFamily xdf + /background xdf + /ext1 xdf + /ext0 xdf + /BBox xdf + /y2 xdf + /x2 xdf + /y1 xdf + /x1 xdf + /rampdict xdf + /setinkoverprint where{pop/setinkoverprint{pop}def}if + gsave + BBox length 0 gt + { + np + BBox 0 get BBox 1 get moveto + BBox 2 get BBox 0 get sub 0 rlineto + 0 BBox 3 get BBox 1 get sub rlineto + BBox 2 get BBox 0 get sub neg 0 rlineto + closepath + clip + np + }if + x1 x2 eq + { + y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse + }{ + /slope y2 y1 sub x2 x1 sub div def + /theta slope 1 atan def + x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if + x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if + } + ifelse + gsave + clippath + x1 y1 translate + theta rotate + {pathbbox}stopped + {0 0 0 0}if + /yMax exch def + /xMax exch def + /yMin exch def + /xMin exch def + grestore + xMax xMin eq yMax yMin eq or + { + grestore + end + }{ + rampdict begin + 20 dict begin + background length 0 gt{background sssetbackground gsave clippath fill grestore}if + gsave + x1 y1 translate + theta rotate + /xStart 0 def + /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def + /ySpan yMax yMin sub def + /numsteps NumSamples def + /rampIndxInc 1 def + /subsampling false def + xStart 0 transform + xEnd 0 transform + 3 -1 roll + sub dup mul + 3 1 roll + sub dup mul + add 0.5 exp 72 div + 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt + 1 index 1 index lt{exch}if pop + mul + /numpix xdf + numpix 0 ne + { + NumSamples numpix div 0.5 gt + { + /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def + /rampIndxInc NumSamples 1 sub numsteps div def + /subsampling true def + }if + }if + ext0 + { + 0 getrampcolor + xMin xStart lt + { + xMin yMin xMin neg ySpan rectfill + }if + }if + /xInc xEnd xStart sub numsteps div def + /x xStart def + 0 + numsteps + { + dup + subsampling{round cvi}if + getrampcolor + x yMin xInc ySpan rectfill + /x x xInc add def + rampIndxInc add + }repeat + pop + ext1{ + xMax xEnd gt + { + xEnd yMin xMax xEnd sub ySpan rectfill + }if + }if + grestore + grestore + end + end + end + }ifelse + }bdf +}def +/pt +{ + end +}def +/dt{ +}def +/pgsv{ + //Adobe_AGM_Core/AGMCORE_save save put +}def +/pgrs{ + //Adobe_AGM_Core/AGMCORE_save get restore +}def +systemdict/findcolorrendering known{ + /findcolorrendering systemdict/findcolorrendering get def +}if +systemdict/setcolorrendering known{ + /setcolorrendering systemdict/setcolorrendering get def +}if +/test_cmyk_color_plate +{ + gsave + setcmykcolor currentgray 1 ne + grestore +}def +/inRip_spot_has_ink +{ + dup//Adobe_AGM_Core/AGMCORE_name xddf + convert_spot_to_process not +}def +/map255_to_range +{ + 1 index sub + 3 -1 roll 255 div mul add +}def +/set_csa_crd +{ + /sep_colorspace_dict null AGMCORE_gput + begin + CSA get_csa_by_name setcolorspace_opt + set_crd + end +} +def +/map_csa +{ + currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse + {pop}{get_csa_by_name/MappedCSA xdf}ifelse +}def +/setsepcolor +{ + /sep_colorspace_dict AGMCORE_gget begin + dup/sep_tint exch AGMCORE_gput + TintProc + end +}def +/setdevicencolor +{ + /devicen_colorspace_dict AGMCORE_gget begin + Names length copy + Names length 1 sub -1 0 + { + /devicen_tints AGMCORE_gget 3 1 roll xpt + }for + TintProc + end +}def +/sep_colorspace_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + currentdict/Components known{ + Components aload pop + TintMethod/Lab eq{ + 2{AGMCORE_tmp mul NComponents 1 roll}repeat + LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll + }{ + TintMethod/Subtractive eq{ + NComponents{ + AGMCORE_tmp mul NComponents 1 roll + }repeat + }{ + NComponents{ + 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll + }repeat + }ifelse + }ifelse + }{ + ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get + aload pop + }ifelse + end +}def +/sep_colorspace_gray_proc +{ + /AGMCORE_tmp exch store + /sep_colorspace_dict AGMCORE_gget begin + GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get + end +}def +/sep_proc_name +{ + dup 0 get + dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ + pop[/DeviceGray] + /sep_colorspace_gray_proc + }{ + /sep_colorspace_proc + }ifelse +}def +/setsepcolorspace +{ + current_spot_alias{ + dup begin + Name map_alias{ + exch pop + }if + end + }if + dup/sep_colorspace_dict exch AGMCORE_gput + begin + CSA map_csa + /AGMCORE_sep_special Name dup()eq exch(All)eq or store + AGMCORE_avoid_L2_sep_space{ + [/Indexed MappedCSA sep_proc_name 255 exch + {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx + ]setcolorspace_opt + /TintProc{ + 255 mul round cvi setcolor + }bdf + }{ + MappedCSA 0 get/DeviceCMYK eq + currentdict/Components known and + AGMCORE_sep_special not and{ + /TintProc[ + Components aload pop Name findcmykcustomcolor + /exch cvx/setcustomcolor cvx + ]cvx bdf + }{ + AGMCORE_host_sep Name(All)eq and{ + /TintProc{ + 1 exch sub setseparationgray + }bdf + }{ + AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and + AGMCORE_host_sep or + Name()eq and{ + /TintProc[ + MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ + cvx/setcmykcolor cvx + }{ + cvx/setgray cvx + }ifelse + ]cvx bdf + }{ + AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ + /TintProc[ + /dup cvx + MappedCSA sep_proc_name cvx exch + 0 get/DeviceGray eq{ + 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx + }if + /Name cvx/findcmykcustomcolor cvx/exch cvx + AGMCORE_host_sep{ + AGMCORE_is_cmyk_sep + /Name cvx + /AGMCORE_IsSeparationAProcessColor load/exec cvx + /not cvx/and cvx + }{ + Name inRip_spot_has_ink not + }ifelse + [ + /pop cvx 1 + ]cvx/if cvx + /setcustomcolor cvx + ]cvx bdf + }{ + /TintProc{setcolor}bdf + [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt + }ifelse + }ifelse + }ifelse + }ifelse + }ifelse + set_crd + setsepcolor + end +}def +/additive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 + 0 1 numarrays 1 sub + { + 1 exch add/index cvx + c1/get cvx/mul cvx + }for + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/subtractive_blend +{ + 3 dict begin + /numarrays xdf + /numcolors xdf + 0 1 numcolors 1 sub + { + /c1 xdf + 1 1 + 0 1 numarrays 1 sub + { + 1 3 3 -1 roll add/index cvx + c1/get cvx/sub cvx/mul cvx + }for + /sub cvx + numarrays 1 add 1/roll cvx + }for + numarrays[/pop cvx]cvx/repeat cvx + end +}def +/exec_tint_transform +{ + /TintProc[ + /TintTransform cvx/setcolor cvx + ]cvx bdf + MappedCSA setcolorspace_opt +}bdf +/devn_makecustomcolor +{ + 2 dict begin + /names_index xdf + /Names xdf + 1 1 1 1 Names names_index get findcmykcustomcolor + /devicen_tints AGMCORE_gget names_index get setcustomcolor + Names length{pop}repeat + end +}bdf +/setdevicencolorspace +{ + dup/AliasedColorants known{false}{true}ifelse + current_spot_alias and{ + 7 dict begin + /names_index 0 def + dup/names_len exch/Names get length def + /new_names names_len array def + /new_LookupTables names_len array def + /alias_cnt 0 def + dup/Names get + { + dup map_alias{ + exch pop + dup/ColorLookup known{ + dup begin + new_LookupTables names_index ColorLookup put + end + }{ + dup/Components known{ + dup begin + new_LookupTables names_index Components put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + new_names names_index 3 -1 roll/Name get put + /alias_cnt alias_cnt 1 add def + }{ + /name xdf + new_names names_index name put + dup/LookupTables known{ + dup begin + new_LookupTables names_index LookupTables names_index get put + end + }{ + dup begin + new_LookupTables names_index[null null null null]put + end + }ifelse + }ifelse + /names_index names_index 1 add def + }forall + alias_cnt 0 gt{ + /AliasedColorants true def + /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def + 0 1 names_len 1 sub{ + /names_index xdf + new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ + /AliasedColorants false def + exit + }{ + new_LookupTables names_index get 0 get null eq{ + dup/Names get names_index get/name xdf + name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq + or or or not{ + /AliasedColorants false def + exit + }if + }if + }ifelse + }for + lut_entry_len 1 eq{ + /AliasedColorants false def + }if + AliasedColorants{ + dup begin + /Names new_names def + /LookupTables new_LookupTables def + /AliasedColorants true def + /NComponents lut_entry_len def + /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def + /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def + currentdict/TTTablesIdx known not{ + /TTTablesIdx -1 def + }if + end + }if + }if + end + }if + dup/devicen_colorspace_dict exch AGMCORE_gput + begin + currentdict/AliasedColorants known{ + AliasedColorants + }{ + false + }ifelse + dup not{ + CSA map_csa + }if + /TintTransform load type/nulltype eq or{ + /TintTransform[ + 0 1 Names length 1 sub + { + /TTTablesIdx TTTablesIdx 1 add def + dup LookupTables exch get dup 0 get null eq + { + 1 index + Names exch get + dup(Cyan)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0 0 0 + } + { + dup(Magenta)eq + { + pop exch + LookupTables length exch sub + /index cvx + 0/exch cvx 0 0 + }{ + (Yellow)eq + { + exch + LookupTables length exch sub + /index cvx + 0 0 3 -1/roll cvx 0 + }{ + exch + LookupTables length exch sub + /index cvx + 0 0 0 4 -1/roll cvx + }ifelse + }ifelse + }ifelse + 5 -1/roll cvx/astore cvx + }{ + dup length 1 sub + LookupTables length 4 -1 roll sub 1 add + /index cvx/mul cvx/round cvx/cvi cvx/get cvx + }ifelse + Names length TTTablesIdx add 1 add 1/roll cvx + }for + Names length[/pop cvx]cvx/repeat cvx + NComponents Names length + TintMethod/Subtractive eq + { + subtractive_blend + }{ + additive_blend + }ifelse + ]cvx bdf + }if + AGMCORE_host_sep{ + Names convert_to_process{ + exec_tint_transform + } + { + currentdict/AliasedColorants known{ + AliasedColorants not + }{ + false + }ifelse + 5 dict begin + /AvoidAliasedColorants xdf + /painted? false def + /names_index 0 def + /names_len Names length def + AvoidAliasedColorants{ + /currentspotalias current_spot_alias def + false set_spot_alias + }if + Names{ + AGMCORE_is_cmyk_sep{ + dup(Cyan)eq AGMCORE_cyan_plate and exch + dup(Magenta)eq AGMCORE_magenta_plate and exch + dup(Yellow)eq AGMCORE_yellow_plate and exch + (Black)eq AGMCORE_black_plate and or or or{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + }if + painted?{exit}if + }{ + 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + Names names_index/devn_makecustomcolor cvx + ]cvx ddf + /painted? true def + exit + }if + }ifelse + /names_index names_index 1 add def + }forall + AvoidAliasedColorants{ + currentspotalias set_spot_alias + }if + painted?{ + /devicen_colorspace_dict AGMCORE_gget/names_index names_index put + }{ + /devicen_colorspace_dict AGMCORE_gget/TintProc[ + names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx + 0 0 0 0/setcmykcolor cvx + ]cvx ddf + }ifelse + end + }ifelse + } + { + AGMCORE_in_rip_sep{ + Names convert_to_process not + }{ + level3 + }ifelse + { + [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt + /TintProc level3 not AGMCORE_in_rip_sep and{ + [ + Names/length cvx[/pop cvx]cvx/repeat cvx + ]cvx bdf + }{ + {setcolor}bdf + }ifelse + }{ + exec_tint_transform + }ifelse + }ifelse + set_crd + /AliasedColorants false def + end +}def +/setindexedcolorspace +{ + dup/indexed_colorspace_dict exch AGMCORE_gput + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + currentdict devncs + }{ + 1 currentdict sepcs + }ifelse + AGMCORE_host_sep{ + 4 dict begin + /compCnt/Names where{pop Names length}{1}ifelse def + /NewLookup HiVal 1 add string def + 0 1 HiVal{ + /tableIndex xdf + Lookup dup type/stringtype eq{ + compCnt tableIndex map_index + }{ + exec + }ifelse + /Names where{ + pop setdevicencolor + }{ + setsepcolor + }ifelse + currentgray + tableIndex exch + 255 mul cvi + NewLookup 3 1 roll put + }for + [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt + end + }{ + level3 + { + currentdict/Names known{ + [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt + }{ + [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt + }ifelse + }{ + [/Indexed MappedCSA HiVal + [ + currentdict/Names known{ + Lookup dup type/stringtype eq + {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} + {/exec cvx}ifelse + /TintTransform load/exec cvx + }{ + Lookup dup type/stringtype eq + {/exch cvx/get cvx 255/div cvx} + {/exec cvx}ifelse + CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx + }ifelse + ]cvx + ]setcolorspace_opt + }ifelse + }ifelse + end + set_crd + } + { + CSA map_csa + AGMCORE_host_sep level2 not and{ + 0 0 0 0 setcmykcolor + }{ + [/Indexed MappedCSA + level2 not has_color not and{ + dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ + pop[/DeviceGray] + }if + HiVal GrayLookup + }{ + HiVal + currentdict/RangeArray known{ + { + /indexed_colorspace_dict AGMCORE_gget begin + Lookup exch + dup HiVal gt{ + pop HiVal + }if + NComponents mul NComponents getinterval{}forall + NComponents 1 sub -1 0{ + RangeArray exch 2 mul 2 getinterval aload pop map255_to_range + NComponents 1 roll + }for + end + }bind + }{ + Lookup + }ifelse + }ifelse + ]setcolorspace_opt + set_crd + }ifelse + }ifelse + end +}def +/setindexedcolor +{ + AGMCORE_host_sep{ + /indexed_colorspace_dict AGMCORE_gget + begin + currentdict/CSDBase known{ + CSDBase/CSD get_res begin + currentdict/Names known{ + map_indexed_devn + devn + } + { + Lookup 1 3 -1 roll map_index + sep + }ifelse + end + }{ + Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll + map_index + MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse + }ifelse + end + }{ + level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ + /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin + map_indexed_devn + devn + end + } + { + setcolor + }ifelse + }ifelse +}def +/ignoreimagedata +{ + currentoverprint not{ + gsave + dup clonedict begin + 1 setgray + /Decode[0 1]def + /DataSourcedef + /MultipleDataSources false def + /BitsPerComponent 8 def + currentdict end + systemdict/image gx + grestore + }if + consumeimagedata +}def +/add_res +{ + dup/CSD eq{ + pop + //Adobe_AGM_Core begin + /AGMCORE_CSD_cache load 3 1 roll put + end + }{ + defineresource pop + }ifelse +}def +/del_res +{ + { + aload pop exch + dup/CSD eq{ + pop + {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall + }{ + exch + {1 index undefineresource}forall + pop + }ifelse + }forall +}def +/get_res +{ + dup/CSD eq{ + pop + dup type dup/nametype eq exch/stringtype eq or{ + AGMCORE_CSD_cache exch get + }if + }{ + findresource + }ifelse +}def +/get_csa_by_name +{ + dup type dup/nametype eq exch/stringtype eq or{ + /CSA get_res + }if +}def +/paintproc_buf_init +{ + /count get 0 0 put +}def +/paintproc_buf_next +{ + dup/count get dup 0 get + dup 3 1 roll + 1 add 0 xpt + get +}def +/cachepaintproc_compress +{ + 5 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + /string_size 16000 def + /readbuffer string_size string def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + /LZWFilter + { + exch + dup length 0 eq{ + pop + }{ + ppdict dup length 1 sub 3 -1 roll put + }ifelse + {string_size}{0}ifelse string + }/LZWEncode filter def + { + ReadFilter readbuffer readstring + exch LZWFilter exch writestring + not{exit}if + }loop + LZWFilter closefile + ppdict + end +}def +/cachepaintproc +{ + 2 dict begin + currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def + /ppdict 20 dict def + currentglobal true setglobal + ppdict 1 array dup 0 1 put/count xpt + setglobal + { + ReadFilter 16000 string readstring exch + ppdict dup length 1 sub 3 -1 roll put + not{exit}if + }loop + ppdict dup dup length 1 sub()put + end +}def +/make_pattern +{ + exch clonedict exch + dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform + exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub + exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub + matrix translate exch matrix concatmatrix + 1 index begin + BBox 0 get XStep div cvi XStep mul/xshift exch neg def + BBox 1 get YStep div cvi YStep mul/yshift exch neg def + BBox 0 get xshift add + BBox 1 get yshift add + BBox 2 get xshift add + BBox 3 get yshift add + 4 array astore + /BBox exch def + [xshift yshift/translate load null/exec load]dup + 3/PaintProc load put cvx/PaintProc exch def + end + gsave 0 setgray + makepattern + grestore +}def +/set_pattern +{ + dup/PatternType get 1 eq{ + dup/PaintType get 1 eq{ + currentoverprint sop[/DeviceGray]setcolorspace 0 setgray + }if + }if + setpattern +}def +/setcolorspace_opt +{ + dup currentcolorspace eq{pop}{setcolorspace}ifelse +}def +/updatecolorrendering +{ + currentcolorrendering/RenderingIntent known{ + currentcolorrendering/RenderingIntent get + } + { + Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd AGMCORE_gget dup null eq + } + { + Intent/Saturation eq + { + /saturation_crd AGMCORE_gget dup null eq + } + { + /perceptual_crd AGMCORE_gget dup null eq + }ifelse + }ifelse + }ifelse + { + pop null + } + { + /RenderingIntent known{null}{Intent}ifelse + }ifelse + }ifelse + Intent ne{ + Intent/ColorRendering{findresource}stopped + { + pop pop systemdict/findcolorrendering known + { + Intent findcolorrendering + { + /ColorRendering findresource true exch + } + { + /ColorRendering findresource + product(Xerox Phaser 5400)ne + exch + }ifelse + dup Intent/AbsoluteColorimetric eq + { + /absolute_colorimetric_crd exch AGMCORE_gput + } + { + Intent/RelativeColorimetric eq + { + /relative_colorimetric_crd exch AGMCORE_gput + } + { + Intent/Saturation eq + { + /saturation_crd exch AGMCORE_gput + } + { + Intent/Perceptual eq + { + /perceptual_crd exch AGMCORE_gput + } + { + pop + }ifelse + }ifelse + }ifelse + }ifelse + 1 index{exch}{pop}ifelse + } + {false}ifelse + } + {true}ifelse + { + dup begin + currentdict/TransformPQR known{ + currentdict/TransformPQR get aload pop + 3{{}eq 3 1 roll}repeat or or + } + {true}ifelse + currentdict/MatrixPQR known{ + currentdict/MatrixPQR get aload pop + 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll + 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq + and and and and and and and and + } + {true}ifelse + end + or + { + clonedict begin + /TransformPQR[ + {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div + 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind + {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div + 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind + {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div + 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind + ]def + /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def + /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def + currentdict end + }if + setcolorrendering_opt + }if + }if +}def +/set_crd +{ + AGMCORE_host_sep not level2 and{ + currentdict/ColorRendering known{ + ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if + }{ + currentdict/Intent known{ + updatecolorrendering + }if + }ifelse + currentcolorspace dup type/arraytype eq + {0 get}if + /DeviceRGB eq + { + currentdict/UCR known + {/UCR}{/AGMCORE_currentucr}ifelse + load setundercolorremoval + currentdict/BG known + {/BG}{/AGMCORE_currentbg}ifelse + load setblackgeneration + }if + }if +}def +/set_ucrbg +{ + dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration + dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval +}def +/setcolorrendering_opt +{ + dup currentcolorrendering eq{ + pop + }{ + clonedict + begin + /Intent Intent def + currentdict + end + setcolorrendering + }ifelse +}def +/cpaint_gcomp +{ + convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not + { + (%end_cpaint_gcomp)flushinput + }if +}def +/cpaint_gsep +{ + //Adobe_AGM_Core/AGMCORE_ConvertToProcess get + { + (%end_cpaint_gsep)flushinput + }if +}def +/cpaint_gend +{np}def +/T1_path +{ + currentfile token pop currentfile token pop mo + { + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 exch rlineto + currentfile token pop dup type/stringtype eq + {pop exit}if + 0 rlineto + }loop +}def +/T1_gsave + level3 + {/clipsave} + {/gsave}ifelse + load def +/T1_grestore + level3 + {/cliprestore} + {/grestore}ifelse + load def +/set_spot_alias_ary +{ + dup inherit_aliases + //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf +}def +/set_spot_normalization_ary +{ + dup inherit_aliases + dup length + /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if + array + //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf + /AGMCORE_SpotAliasAry where{ + pop + AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval + AGMCORE_SpotAliasAry length + }{0}ifelse + AGMCORE_SpotAliasAry2 3 1 roll exch putinterval + true set_spot_alias +}def +/inherit_aliases +{ + {dup/Name get map_alias{/CSD put}{pop}ifelse}forall +}def +/set_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias 3 -1 roll put + }{ + pop + }ifelse +}def +/current_spot_alias +{ + /AGMCORE_SpotAliasAry2 where{ + /AGMCORE_current_spot_alias get + }{ + false + }ifelse +}def +/map_alias +{ + /AGMCORE_SpotAliasAry2 where{ + begin + /AGMCORE_name xdf + false + AGMCORE_SpotAliasAry2{ + dup/Name get AGMCORE_name eq{ + /CSD get/CSD get_res + exch pop true + exit + }{ + pop + }ifelse + }forall + end + }{ + pop false + }ifelse +}bdf +/spot_alias +{ + true set_spot_alias + /AGMCORE_&setcustomcolor AGMCORE_key_known not{ + //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put + }if + /customcolor_tint 1 AGMCORE_gput + //Adobe_AGM_Core begin + /setcustomcolor + { + //Adobe_AGM_Core begin + dup/customcolor_tint exch AGMCORE_gput + 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not + current_spot_alias and{1 index 4 get map_alias}{false}ifelse + { + false set_spot_alias + /sep_colorspace_dict AGMCORE_gget null ne + 3 1 roll 2 index{ + exch pop/sep_tint AGMCORE_gget exch + }if + mark 3 1 roll + setsepcolorspace + counttomark 0 ne{ + setsepcolor + }if + pop + not{/sep_tint 1.0 AGMCORE_gput}if + pop + true set_spot_alias + }{ + AGMCORE_&setcustomcolor + }ifelse + end + }bdf + end +}def +/begin_feature +{ + Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put + count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put + {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if +}def +/end_feature +{ + 2 dict begin + /spd/setpagedevice load def + /setpagedevice{get_gstate spd set_gstate}def + stopped{$error/newerror false put}if + end + count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse + countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse + {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if +}def +/set_negative +{ + //Adobe_AGM_Core begin + /AGMCORE_inverting exch def + level2{ + currentpagedevice/NegativePrint known AGMCORE_distilling not and{ + currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ + true begin_feature true{ + <>setpagedevice + }end_feature + }if + /AGMCORE_inverting false def + }if + }if + AGMCORE_inverting{ + [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer + AGMCORE_distilling{ + erasepage + }{ + gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse + /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore + }ifelse + }if + end +}def +/lw_save_restore_override{ + /md where{ + pop + md begin + initializepage + /initializepage{}def + /pmSVsetup{}def + /endp{}def + /pse{}def + /psb{}def + /orig_showpage where + {pop} + {/orig_showpage/showpage load def} + ifelse + /showpage{orig_showpage gR}def + end + }if +}def +/pscript_showpage_override{ + /NTPSOct95 where + { + begin + showpage + save + /showpage/restore load def + /restore{exch pop}def + end + }if +}def +/driver_media_override +{ + /md where{ + pop + md/initializepage known{ + md/initializepage{}put + }if + md/rC known{ + md/rC{4{pop}repeat}put + }if + }if + /mysetup where{ + /mysetup[1 0 0 1 0 0]put + }if + Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put + level2 + {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if +}def +/driver_check_media_override +{ + /PrepsDict where + {pop} + { + Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne + Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq + { + Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and + Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and + }if + { + Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix + }if + }ifelse +}def +AGMCORE_err_strings begin + /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def + /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def + /AGMCORE_invalid_color_space(This job contains an invalid color space. )def +end +/set_def_ht +{AGMCORE_def_ht sethalftone}def +/set_def_flat +{AGMCORE_Default_flatness setflat}def +end +systemdict/setpacking known +{setpacking}if +%%EndResource +%%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 +%%Version: 1.0 0 +%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. +systemdict/setpacking known +{ + currentpacking + true setpacking +}if +userdict/Adobe_AGM_Image 71 dict dup begin put +/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def +/nd{ + null def +}bind def +/AGMIMG_&image nd +/AGMIMG_&colorimage nd +/AGMIMG_&imagemask nd +/AGMIMG_mbuf()def +/AGMIMG_ybuf()def +/AGMIMG_kbuf()def +/AGMIMG_c 0 def +/AGMIMG_m 0 def +/AGMIMG_y 0 def +/AGMIMG_k 0 def +/AGMIMG_tmp nd +/AGMIMG_imagestring0 nd +/AGMIMG_imagestring1 nd +/AGMIMG_imagestring2 nd +/AGMIMG_imagestring3 nd +/AGMIMG_imagestring4 nd +/AGMIMG_imagestring5 nd +/AGMIMG_cnt nd +/AGMIMG_fsave nd +/AGMIMG_colorAry nd +/AGMIMG_override nd +/AGMIMG_name nd +/AGMIMG_maskSource nd +/AGMIMG_flushfilters nd +/invert_image_samples nd +/knockout_image_samples nd +/img nd +/sepimg nd +/devnimg nd +/idximg nd +/ds +{ + Adobe_AGM_Core begin + Adobe_AGM_Image begin + /AGMIMG_&image systemdict/image get def + /AGMIMG_&imagemask systemdict/imagemask get def + /colorimage where{ + pop + /AGMIMG_&colorimage/colorimage ldf + }if + end + end +}def +/ps +{ + Adobe_AGM_Image begin + /AGMIMG_ccimage_exists{/customcolorimage where + { + pop + /Adobe_AGM_OnHost_Seps where + { + pop false + }{ + /Adobe_AGM_InRip_Seps where + { + pop false + }{ + true + }ifelse + }ifelse + }{ + false + }ifelse + }bdf + level2{ + /invert_image_samples + { + Adobe_AGM_Image/AGMIMG_tmp Decode length ddf + /Decode[Decode 1 get Decode 0 get]def + }def + /knockout_image_samples + { + Operator/imagemask ne{ + /Decode[1 1]def + }if + }def + }{ + /invert_image_samples + { + {1 exch sub}currenttransfer addprocs settransfer + }def + /knockout_image_samples + { + {pop 1}currenttransfer addprocs settransfer + }def + }ifelse + /img/imageormask ldf + /sepimg/sep_imageormask ldf + /devnimg/devn_imageormask ldf + /idximg/indexed_imageormask ldf + /_ctype 7 def + currentdict{ + dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ + bind + }if + def + }forall +}def +/pt +{ + end +}def +/dt +{ +}def +/AGMIMG_flushfilters +{ + dup type/arraytype ne + {1 array astore}if + dup 0 get currentfile ne + {dup 0 get flushfile}if + { + dup type/filetype eq + { + dup status 1 index currentfile ne and + {closefile} + {pop} + ifelse + }{pop}ifelse + }forall +}def +/AGMIMG_init_common +{ + currentdict/T known{/ImageType/T ldf currentdict/T undef}if + currentdict/W known{/Width/W ldf currentdict/W undef}if + currentdict/H known{/Height/H ldf currentdict/H undef}if + currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if + currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if + currentdict/D known{/Decode/D ldf currentdict/D undef}if + currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if + currentdict/O known{ + /Operator/O load 1 eq{ + /imagemask + }{ + /O load 2 eq{ + /image + }{ + /colorimage + }ifelse + }ifelse + def + currentdict/O undef + }if + currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if + currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if + currentdict/I known{/Interpolate/I ldf currentdict/I undef}if + currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if + /DataSource load xcheck not{ + DataSource type/arraytype eq{ + DataSource 0 get type/filetype eq{ + /_Filters DataSource def + currentdict/MultipleDataSources known not{ + /DataSource DataSource dup length 1 sub get def + }if + }if + }if + currentdict/MultipleDataSources known not{ + /MultipleDataSources DataSource type/arraytype eq{ + DataSource length 1 gt + } + {false}ifelse def + }if + }if + /NComponents Decode length 2 div def + currentdict/SkipImageProc known not{/SkipImageProc{false}def}if +}bdf +/imageormask_sys +{ + begin + AGMIMG_init_common + save mark + level2{ + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + AGMIMG_&imagemask + }{ + BitsPerComponent ImageMatrix/DataSource load + AGMIMG_&image + }ifelse + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + cleartomark restore + end +}def +/overprint_plate +{ + currentoverprint{ + 0 get dup type/nametype eq{ + dup/DeviceGray eq{ + pop AGMCORE_black_plate not + }{ + /DeviceCMYK eq{ + AGMCORE_is_cmyk_sep not + }if + }ifelse + }{ + false exch + { + AGMOHS_sepink eq or + }forall + not + }ifelse + }{ + pop false + }ifelse +}def +/process_mask +{ + level3{ + dup begin + /ImageType 1 def + end + 4 dict begin + /DataDict exch def + /ImageType 3 def + /InterleaveType 3 def + /MaskDict 9 dict begin + /ImageType 1 def + /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def + /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def + /ImageMatrix[Width 0 0 Height neg 0 Height]def + /NComponents 1 def + /BitsPerComponent 1 def + /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def + /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def + currentdict end def + currentdict end + }if +}def +/use_mask +{ + dup/Mask known {dup/Mask get}{false}ifelse +}def +/imageormask +{ + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + } + { + save mark + level2 AGMCORE_host_sep not and{ + currentdict + Operator/imagemask eq DeviceN_PS2 not and{ + imagemask + }{ + AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ + [/Separation/Black/DeviceGray{}]setcolorspace + /Decode[Decode 1 get Decode 0 get]def + }if + use_mask{ + process_mask image + }{ + DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and + { + Names convert_to_process not{ + 2 dict begin + /imageDict xdf + /names_index 0 def + gsave + imageDict write_image_file{ + Names{ + dup(None)ne{ + [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace + Operator imageDict read_image_file + names_index 0 eq{true setoverprint}if + /names_index names_index 1 add def + }{ + pop + }ifelse + }forall + close_image_file + }if + grestore + end + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }{ + Operator/imagemask eq{ + imagemask + }{ + image + }ifelse + }ifelse + }ifelse + }ifelse + }{ + Width Height + Operator/imagemask eq{ + Decode 0 get 1 eq Decode 1 get 0 eq and + ImageMatrix/DataSource load + /Adobe_AGM_OnHost_Seps where{ + pop imagemask + }{ + currentgray 1 ne{ + currentdict imageormask_sys + }{ + currentoverprint not{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }ifelse + }{ + BitsPerComponent ImageMatrix + MultipleDataSources{ + 0 1 NComponents 1 sub{ + DataSource exch get + }for + }{ + /DataSource load + }ifelse + Operator/colorimage eq{ + AGMCORE_host_sep{ + MultipleDataSources level2 or NComponents 4 eq and{ + AGMCORE_is_cmyk_sep{ + MultipleDataSources{ + /DataSource DataSource 0 get xcheck + { + [ + DataSource 0 get/exec cvx + DataSource 1 get/exec cvx + DataSource 2 get/exec cvx + DataSource 3 get/exec cvx + /AGMCORE_get_ink_data cvx + ]cvx + }{ + DataSource aload pop AGMCORE_get_ink_data + }ifelse def + }{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + /DataSource load + filter_cmyk 0()/SubFileDecode filter def + }ifelse + /Decode[Decode 0 get Decode 1 get]def + /MultipleDataSources false def + /NComponents 1 def + /Operator/image def + invert_image_samples + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + 1 AGMCORE_&setgray + currentdict imageormask_sys + }{ + currentdict ignoreimagedata + }ifelse + }ifelse + }{ + MultipleDataSources NComponents AGMIMG_&colorimage + }ifelse + }{ + true NComponents colorimage + }ifelse + }{ + Operator/image eq{ + AGMCORE_host_sep{ + /DoImage true def + currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse + { + AGMCORE_black_plate not Operator/imagemask ne and{ + /DoImage false def + currentdict ignoreimagedata + }if + }if + 1 AGMCORE_&setgray + DoImage + {currentdict imageormask_sys}if + }{ + use_mask{ + process_mask image + }{ + image + }ifelse + }ifelse + }{ + Operator/knockout eq{ + pop pop pop pop pop + currentcolorspace overprint_plate not{ + knockout_unitsq + }if + }if + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/sep_imageormask +{ + /sep_colorspace_dict AGMCORE_gget begin + CSA map_csa + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_avoid_L2_sep_space{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + }if + AGMIMG_ccimage_exists + MappedCSA 0 get/DeviceCMYK eq and + currentdict/Components known and + Name()ne and + Name(All)ne and + Operator/image eq and + AGMCORE_producing_seps not and + level2 not and + { + Width Height BitsPerComponent ImageMatrix + [ + /DataSource load/exec cvx + { + 0 1 2 index length 1 sub{ + 1 index exch + 2 copy get 255 xor put + }for + }/exec cvx + ]cvx bind + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Name findcmykcustomcolor + customcolorimage + }{ + AGMCORE_producing_seps not{ + level2{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ + [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + currentdict imageormask + }{ + currentdict + Operator/imagemask eq{ + imageormask + }{ + sep_imageormask_lev1 + }ifelse + }ifelse + }{ + AGMCORE_host_sep{ + Operator/knockout eq{ + currentdict/ImageMatrix get concat + knockout_unitsq + }{ + currentgray 1 ne{ + AGMCORE_is_cmyk_sep Name(All)ne and{ + level2{ + Name AGMCORE_IsSeparationAProcessColor + { + Operator/imagemask eq{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor + }if + }{ + invert_image_samples + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + [/Separation Name[/DeviceGray] + { + sep_colorspace_proc AGMCORE_get_ink_data + 1 exch sub + }bind + ]AGMCORE_&setcolorspace + /sep_tint AGMCORE_gget AGMCORE_&setcolor + }if + }ifelse + currentdict imageormask_sys + }{ + currentdict + Operator/imagemask eq{ + imageormask_sys + }{ + sep_image_lev1_sep + }ifelse + }ifelse + }{ + Operator/imagemask ne{ + invert_image_samples + }if + currentdict imageormask_sys + }ifelse + }{ + currentoverprint not Name(All)eq or Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ + currentcolorspace 0 get/Separation ne{ + [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt + /sep_tint AGMCORE_gget setcolor + }if + }if + currentoverprint + MappedCSA 0 get/DeviceCMYK eq and + Name AGMCORE_IsSeparationAProcessColor not and + //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse + Name(All)ne and{ + imageormask_l2_overprint + }{ + currentdict imageormask + }ifelse + }ifelse + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end +}def +/colorSpaceElemCnt +{ + mark currentcolor counttomark dup 2 add 1 roll cleartomark +}bdf +/devn_sep_datasource +{ + 1 dict begin + /dataSource xdf + [ + 0 1 dataSource length 1 sub{ + dup currentdict/dataSource get/exch cvx/get cvx/exec cvx + /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx + }for + ]cvx bind + end +}bdf +/devn_alt_datasource +{ + 11 dict begin + /convProc xdf + /origcolorSpaceElemCnt xdf + /origMultipleDataSources xdf + /origBitsPerComponent xdf + /origDecode xdf + /origDataSource xdf + /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def + /DataSource origMultipleDataSources + { + [ + BitsPerComponent 8 idiv origDecode length 2 idiv mul string + 0 1 origDecode length 2 idiv 1 sub + { + dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch + origDataSource exch get 0()/SubFileDecode filter + BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx + }for + ]bind cvx + }{origDataSource}ifelse 0()/SubFileDecode filter def + [ + origcolorSpaceElemCnt string + 0 2 origDecode length 2 sub + { + dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div + 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx + }for + /convProc load/exec cvx + origcolorSpaceElemCnt 1 sub -1 0 + { + /dup cvx 2/add cvx/index cvx + 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx + }for + ]bind cvx 0()/SubFileDecode filter + end +}bdf +/devn_imageormask +{ + /devicen_colorspace_dict AGMCORE_gget begin + CSA map_csa + 2 dict begin + dup + /srcDataStrs[3 -1 roll begin + AGMIMG_init_common + currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse + { + Width Decode length 2 div mul cvi + { + dup 65535 gt{1 add 2 div cvi}{exit}ifelse + }loop + string + }repeat + end]def + /dstDataStr srcDataStrs 0 get length string def + begin + AGMIMG_init_common + SkipImageProc{ + currentdict consumeimagedata + }{ + save mark + AGMCORE_producing_seps not{ + level3 not{ + Operator/imagemask ne{ + /DataSource[[ + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def + /MultipleDataSources true def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + }if + }if + currentdict imageormask + }{ + AGMCORE_host_sep{ + Names convert_to_process{ + CSA get_csa_by_name 0 get/DeviceCMYK eq{ + /DataSource + Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + filter_cmyk 0()/SubFileDecode filter def + /MultipleDataSources false def + /Decode[1 0]def + /DeviceGray setcolorspace + currentdict imageormask_sys + }{ + AGMCORE_report_unsupported_color_space + AGMCORE_black_plate{ + /DataSource + DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse + CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get + devn_alt_datasource + /MultipleDataSources false def + /Decode colorSpaceElemCnt[exch{0 1}repeat]def + currentdict imageormask_sys + }{ + gsave + knockout_unitsq + grestore + currentdict consumeimagedata + }ifelse + }ifelse + } + { + /devicen_colorspace_dict AGMCORE_gget/names_index known{ + Operator/imagemask ne{ + MultipleDataSources{ + /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def + /MultipleDataSources false def + }{ + /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def + }ifelse + invert_image_samples + }if + currentdict imageormask_sys + }{ + currentoverprint not Operator/imagemask eq and{ + currentdict imageormask_sys + }{ + currentoverprint not + { + gsave + knockout_unitsq + grestore + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + currentdict imageormask + }ifelse + }ifelse + cleartomark restore + }ifelse + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end + end + end +}def +/imageormask_l2_overprint +{ + currentdict + currentcmykcolor add add add 0 eq{ + currentdict consumeimagedata + }{ + level3{ + currentcmykcolor + /AGMIMG_k xdf + /AGMIMG_y xdf + /AGMIMG_m xdf + /AGMIMG_c xdf + Operator/imagemask eq{ + [/DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ]/DeviceCMYK{}]setcolorspace + AGMIMG_c 0 ne{AGMIMG_c}if + AGMIMG_m 0 ne{AGMIMG_m}if + AGMIMG_y 0 ne{AGMIMG_y}if + AGMIMG_k 0 ne{AGMIMG_k}if + setcolor + }{ + /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def + [/Indexed + [ + /DeviceN[ + AGMIMG_c 0 ne{/Cyan}if + AGMIMG_m 0 ne{/Magenta}if + AGMIMG_y 0 ne{/Yellow}if + AGMIMG_k 0 ne{/Black}if + ] + /DeviceCMYK{ + AGMIMG_k 0 eq{0}if + AGMIMG_y 0 eq{0 exch}if + AGMIMG_m 0 eq{0 3 1 roll}if + AGMIMG_c 0 eq{0 4 1 roll}if + } + ] + 255 + { + 255 div + mark exch + dup dup dup + AGMIMG_k 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_y 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_m 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + AGMIMG_c 0 ne{ + /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop + counttomark 1 roll + }{ + pop + }ifelse + counttomark 1 add -1 roll pop + } + ]setcolorspace + }ifelse + imageormask_sys + }{ + write_image_file{ + currentcmykcolor + 0 ne{ + [/Separation/Black/DeviceGray{}]setcolorspace + gsave + /Black + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Yellow/DeviceGray{}]setcolorspace + gsave + /Yellow + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Magenta/DeviceGray{}]setcolorspace + gsave + /Magenta + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + 0 ne{ + [/Separation/Cyan/DeviceGray{}]setcolorspace + gsave + /Cyan + [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] + cvx modify_halftone_xfer + Operator currentdict read_image_file + grestore + }if + close_image_file + }{ + imageormask + }ifelse + }ifelse + }ifelse +}def +/indexed_imageormask +{ + begin + AGMIMG_init_common + save mark + currentdict + AGMCORE_host_sep{ + Operator/knockout eq{ + /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ + /CSA get get_csa_by_name + }{ + /Names get + }ifelse + overprint_plate not{ + knockout_unitsq + }if + }{ + Indexed_DeviceN{ + /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ + indexed_image_lev2_sep + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }{ + AGMCORE_is_cmyk_sep{ + Operator/imagemask eq{ + imageormask_sys + }{ + level2{ + indexed_image_lev2_sep + }{ + indexed_image_lev1_sep + }ifelse + }ifelse + }{ + currentoverprint not{ + knockout_unitsq + }if + currentdict consumeimagedata + }ifelse + }ifelse + }ifelse + }{ + level2{ + Indexed_DeviceN{ + /indexed_colorspace_dict AGMCORE_gget begin + }{ + /indexed_colorspace_dict AGMCORE_gget dup null ne + { + begin + currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse + get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and + AGMCORE_in_rip_sep and{ + [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] + setcolorspace + }if + end + } + {pop}ifelse + }ifelse + imageormask + Indexed_DeviceN{ + end + }if + }{ + Operator/imagemask eq{ + imageormask + }{ + indexed_imageormask_lev1 + }ifelse + }ifelse + }ifelse + cleartomark restore + currentdict/_Filters known{_Filters AGMIMG_flushfilters}if + end +}def +/indexed_image_lev2_sep +{ + /indexed_colorspace_dict AGMCORE_gget begin + begin + Indexed_DeviceN not{ + currentcolorspace + dup 1/DeviceGray put + dup 3 + currentcolorspace 2 get 1 add string + 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub + { + dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put + }for + put setcolorspace + }if + currentdict + Operator/imagemask eq{ + AGMIMG_&imagemask + }{ + use_mask{ + process_mask AGMIMG_&image + }{ + AGMIMG_&image + }ifelse + }ifelse + end end +}def + /OPIimage + { + dup type/dicttype ne{ + 10 dict begin + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /ImageType 1 def + /Decode[0 1 def] + currentdict + end + }if + dup begin + /NComponents 1 cdndf + /MultipleDataSources false cdndf + /SkipImageProc{false}cdndf + /Decode[ + 0 + currentcolorspace 0 get/Indexed eq{ + 2 BitsPerComponent exp 1 sub + }{ + 1 + }ifelse + ]cdndf + /Operator/image cdndf + end + /sep_colorspace_dict AGMCORE_gget null eq{ + imageormask + }{ + gsave + dup begin invert_image_samples end + sep_imageormask + grestore + }ifelse + }def +/cachemask_level2 +{ + 3 dict begin + /LZWEncode filter/WriteFilter xdf + /readBuffer 256 string def + /ReadFilter + currentfile + 0(%EndMask)/SubFileDecode filter + /ASCII85Decode filter + /RunLengthDecode filter + def + { + ReadFilter readBuffer readstring exch + WriteFilter exch writestring + not{exit}if + }loop + WriteFilter closefile + end +}def +/spot_alias +{ + /mapto_sep_imageormask + { + dup type/dicttype ne{ + 12 dict begin + /ImageType 1 def + /DataSource xdf + /ImageMatrix xdf + /BitsPerComponent xdf + /Height xdf + /Width xdf + /MultipleDataSources false def + }{ + begin + }ifelse + /Decode[/customcolor_tint AGMCORE_gget 0]def + /Operator/image def + /SkipImageProc{false}def + currentdict + end + sep_imageormask + }bdf + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_colorAry xddf + /customcolor_tint AGMCORE_gget + << + /Name AGMIMG_colorAry 4 get + /CSA[/DeviceCMYK] + /TintMethod/Subtractive + /TintProc null + /MappedCSA null + /NComponents 4 + /Components[AGMIMG_colorAry aload pop pop] + >> + setsepcolorspace + mapto_sep_imageormask + }ndf + Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put + /customcolorimage + { + Adobe_AGM_Image/AGMIMG_override false put + current_spot_alias{dup 4 get map_alias}{false}ifelse + { + false set_spot_alias + /customcolor_tint AGMCORE_gget exch setsepcolorspace + pop + mapto_sep_imageormask + true set_spot_alias + }{ + //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec + }ifelse + }bdf +}def +/snap_to_device +{ + 6 dict begin + matrix currentmatrix + dup 0 get 0 eq 1 index 3 get 0 eq and + 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop + { + 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def + 0 0 transform + AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch + itransform/AGMIMG_llY exch def/AGMIMG_llX exch def + 1 1 transform + AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch + itransform/AGMIMG_urY exch def/AGMIMG_urX exch def + [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat + }{ + }ifelse + end +}def +level2 not{ + /colorbuf + { + 0 1 2 index length 1 sub{ + dup 2 index exch get + 255 exch sub + 2 index + 3 1 roll + put + }for + }def + /tint_image_to_color + { + begin + Width Height BitsPerComponent ImageMatrix + /DataSource load + end + Adobe_AGM_Image begin + /AGMIMG_mbuf 0 string def + /AGMIMG_ybuf 0 string def + /AGMIMG_kbuf 0 string def + { + colorbuf dup length AGMIMG_mbuf length ne + { + dup length dup dup + /AGMIMG_mbuf exch string def + /AGMIMG_ybuf exch string def + /AGMIMG_kbuf exch string def + }if + dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop + } + addprocs + {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage + end + }def + /sep_imageormask_lev1 + { + begin + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + { + 255 mul round cvi GrayLookup exch get + }currenttransfer addprocs settransfer + currentdict imageormask + }{ + /sep_colorspace_dict AGMCORE_gget/Components known{ + MappedCSA 0 get/DeviceCMYK eq{ + Components aload pop + }{ + 0 0 0 Components aload pop 1 exch sub + }ifelse + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ + {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer + currentdict imageormask + }{ + currentcolortransfer + {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll + {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }{ + MappedCSA 0 get/DeviceGray eq{ + {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer + currentdict imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll + {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll + setcolortransfer + currentdict tint_image_to_color + }ifelse + }ifelse + }ifelse + }ifelse + end + }def + /sep_image_lev1_sep + { + begin + /sep_colorspace_dict AGMCORE_gget/Components known{ + Components aload pop + Adobe_AGM_Image/AGMIMG_k xddf + Adobe_AGM_Image/AGMIMG_y xddf + Adobe_AGM_Image/AGMIMG_m xddf + Adobe_AGM_Image/AGMIMG_c xddf + {AGMIMG_c mul 1 exch sub} + {AGMIMG_m mul 1 exch sub} + {AGMIMG_y mul 1 exch sub} + {AGMIMG_k mul 1 exch sub} + }{ + {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} + {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} + }ifelse + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end + }def + /indexed_imageormask_lev1 + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + currentdict + MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ + {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceGray eq{ + {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer + imageormask + }{ + MappedCSA 0 get/DeviceCMYK eq{ + currentcolortransfer + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }{ + currentcolortransfer + {pop 1}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll + {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll + setcolortransfer + tint_image_to_color + }ifelse + }ifelse + }ifelse + end end + }def + /indexed_image_lev1_sep + { + /indexed_colorspace_dict AGMCORE_gget begin + begin + {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} + {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} + AGMCORE_get_ink_data currenttransfer addprocs settransfer + currentdict imageormask_sys + end end + }def +}if +end +systemdict/setpacking known +{setpacking}if +%%EndResource +currentdict Adobe_AGM_Utils eq {end} if +%%EndProlog +%%BeginSetup +Adobe_AGM_Utils begin +2 2010 Adobe_AGM_Core/ds gx +Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx +currentdict Adobe_AGM_Utils eq {end} if +%%EndSetup +%%Page: (Page 1) 1 +%%EndPageComments +%%BeginPageSetup +%ADOBeginClientInjection: PageSetup Start "AI11EPS" +%AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 +%ADOEndClientInjection: PageSetup Start "AI11EPS" +Adobe_AGM_Utils begin +Adobe_AGM_Core/ps gx +Adobe_AGM_Utils/capture_cpd gx +Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx +%ADOBeginClientInjection: PageSetup End "AI11EPS" +/currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 + + + + application/postscript + + + Adobe Illustrator CS3 + 2009-06-10T09:20:27-04:00 + 2009-06-10T09:20:27-04:00 + 2009-06-10T09:20:27-04:00 + + + + 256 + 68 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgARAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ab/zj/wCe/Omr/mZZWOq6 5fX1m8Fwz29xcSSRkrESpKsSNjm51mKAxkgAOq0mWUp0S+q80ztXYq7FXYq7FXYq7FXYq7FXYqx/ 8wLHXr/yVrNnoEhi1ie1kSzYNwYsRuqt+yzLVVPYnqOuW4JREwZcmvKCYkDm8n/5xr8o/mHoV7rE uvwXFjpMsaJFaXRIZ7kMD6qISSAqVBPeo602zdfkhICty4mjxziTxcnvGa1z3Yq+Pbz/ANaYX/wJ Iv8AqIXN6P8AF/8AN/Q6c/3/APnPsLNE7hjX5g+fNH8keXJta1KslD6VpaIQHnnYErGpPToSzdh4 9Muw4TklQa8uUQjZfONp5y/Pb81dWni0C6msLKE/vFspDZ20Cv0Ek4IkcmnTkT1oKZtTiw4R6v1u tGTLlO2wTeT8p/8AnIvywFvtI15r+QEM9vaX0z/Z6c4rtYo5B7b/ACyv8zgnsR9jPwM0dwb+L6R0 ePUotJs49UmSfUkhjF7NGvFHmCj1GVR0BatM1U6s1ydlG635ovIpYL+ef/kp/Mf/ADDp/wAnkzJ0 f96GjU/3ZeAflJ/5KT8z/wDmEtv+IzZs9R/ew+Lr9P8A3c2Wf84f/wDTW/8Abv8A+xrMftL+H4/o bez/AOL4fpfRuat2TsVdirsVdirsVdir43/5xp/8mxYf8w91/wAmWze67+6Lp9F/eIb8vPMf5u+a PMsWhaV5o1AXF7G6yT3V3PKkMSjm8gDM9GAWgIFd9qZLNDFCPEYjbyY4Z5JSoEqvn/y/+Yv5WeY7 Kc6/cTSXiNNbajDLKA7IwEsciuTyI5KWBqCCMGHJDNE7JzRniI3ZevkT84/zL8sf4vvPMPD6wkk2 m6KjSRRssdVARIyI0L8aKSCTtyOU+NixS4APi3eFkyR4ifgt/wCce/zJ8yTyav5Y1C9mu7UadPda dLK7PJBJAo+FHJ5BCrVp2IFKVOOswR2kB1XSZpG4nuYd+Xfm/wDN3X/MS+X9J8x3sl3q0T2xmvLq aZbeMESyTJzZuDqkRAYDlQkDc5dmxYox4iBs0YcmSUqB5p/+Zf5eefvyx+qeZdP803d/FLKIp71W khlSdquA6GSXmj8T1PsR414M8M3pMWzNini9Qlb0vTPz8B/JqTzfdQJJrltN+jWtvsxyXpAZHoDU IYz6jAU6FR45iS0f73hH083Kjqv3fF1YD5B8kefPzehvfMWveabq0s4pmgtlSrAyhQzenErxRxov IdBvmVmzQwVGMXHxY55vUZJl+UPnrzV5W/Myf8uvMmoPqFkZpLO2mmZnMU6AtE0bPV+EoFOJ6Ejp vWGpwxnj44jdlp8so5OCRtgSfmL+Z8X5hXlppOsahe3Mt5d2djp8tzNLDznMkEdInf06xlwyVFAQ PDMk4MfBZAaPGycZAJ5l6F5R/L/82PKOl+c9Y17VLi3gTQ72WH0rv1TLdmB3WSoJZHhIJ57HkRQk VzFy5sczEAfxDo5GPFkgJEnov/5xi8z+a9c1PzDFqes3l+0VrEbU30810kbs7DkEkf76EVx1+OMQ KA5ropykTZa1X8n/AD7qcVzrP5hef49If1HFqrSVt13IB3ktoogwFQqA7Heh2xjqoDbHC1lp5nec qYz+SX5keZtF/MK18r3Wqtq+iXs7WIrI80QbcRTW7P8AEqlgNtqqdxWmW6vBGUDKqLVps0hPhJsJ def+tML/AOBJF/1ELkx/i/8Am/oYn+//AM59hZoncPlr/nLXVLt/N+jaUXP1S30/60idvUnmkjc/ 8DAubjs6I4CfN1evl6gPJ7j+Tfl+z0P8tdBt7ZQGurSK+uXAALzXSCVixHXjyCA+AGa/VTMsh+Tn aeAjAM0zHbnzX+cX5u+bdX86/wCBPJty9ksdythLcQMY5p7tmCMnqijRojHj8NO9TTNtptNGMOOf vdbqNRIy4IqPnD8mPPHkfy1J5r0jzdd3OoWCiTUYozLCeDGkjRuJGLhSdw43Wp9sOLVQyS4THZGT TzhHiEjYRkP5sXXnn8jvNlpq5T9PaZBF68iAIJ4pJl4yhBQBgQQ4Ap08aZH8sMeaJHIshn48Ur5h in5Sf+Sk/M//AJhLb/iM2X6j+9h8WnT/AN3NMf8AnHTzRa+VfKvn/wAwXSGSKwi09xEDQvIxuUjS vblIyiuV63HxyhHvv9DLRzEYyPuW+StM8/fnZrGpX2r+YptO0uwKn0Lfl6SvLXhHDAHRRRVNXYlu la1rhyyhpwABZK4hPMSSaCM8q+aPNf5X/mxH5I1XVZNX0G4mht6zM3FFugpinjDlzEVZ/jUGh39j gyY45sfGBUmUJyxZOAmwifzw/NjzRqXnEeRPKNzLbJHMlncS2zGOa4u5SF9ISCjKiFuBApU1rUUy Ok08RHjknU55GXBF2u/lH+ZX5f8Ala58x6L5unubm3gY6rZRerGnpMvGR4mLtz9MHkGKqRTkKEUx hqceWXCY+5Z4J448Qkhf+cfvzF1tL7zLqXmXWb7UdO0vS2uzFdXMs4BSRfsLK5Xm32R88lrMAoCI AJKNJmO5kSQAgvLdz+YX53+ar6K51ubR9Cs1E0lvbl/RiVmIhjWNWjEkjb/G57H2XJT4NPEULLGB nnkd6CrLrPm/8lPzHtNHutZm1by1diKeWKYsVa3mcxu6xsz+nLGyMfhb4qCuxpg4Y6jHdVJPFLDO ibix7/nGn/ybFh/zD3X/ACZbLNd/dFr0X94iv+cXv/Jor/zA3H/GmDX/AN2nQ/3nwZj/AM5gf9Ml /wBvD/sVzH7N/i+H6W3tD+H4/oeufk7/AOSu8s/8wMf8cw9V/eSczT/3Y9z5o/Ib/lP9U/7Zeo/8 RGbbV/QPeHW6X6z7irf84yajZWf5owx3PEPe2c9tasxpSU8ZBTxJWNlA98jrok49l0RAyPZ/+cnt RtLb8sJbWUr699dwR26H7VUb1WYCo6KlCffMHs+JOS/JzdaaxvBrby/qZ/IO+1UIxtT5gt5Kb0Ec VtLCZOlKGW4VK+IzYmY8YD+i4AgfBv8ApJ/+S/5QeXPPmgXdzNrd1ZajZXBjnsoOFBGyho5KMK0c 8h/scr1WpljI22bNNp45Bz3eoeW/+cafLmheZNO1qPW72e6sJ0uo4nEQ5mJgaMQK8egOYc9fKUSK 5uVDRxjIGy8k/KaNH/5yKgV1DAX+psAwqKrBcMp37giozN1P9wfcP0OHg/vviX07+ZP/AJLrzV/2 x7//AKhZM1GD+8j7w7TN9EvcXzB+SPmq48qaB551+2jWW5s7C2Fur7r6s1x6KMwHUK0gJHfNxqsf GYxPe6vTZOCMinf5NeRIfzR1HVfMnnfULjUkspEjFs0pUyM4LHmwIZI1UUCpx+YpleqzeCBGAq2z T4vFJlM2xTymdFP592A0NFTRl1vhp4Qkr6CSlYypb4qMorvvl2S/BN8+Fqx1423K0wvP/WmF/wDA ki/6iFyI/wAX/wA39CT/AH/+c+ws0TuHzl/zll5RvJJNK82QIZLaKP8AR98QP7v42kgY96MZHWvQ Gnjm17OyDePxddr8Z2ky7/nHn8zdJ1zynY+W7u5WLXdJjFskEjBTNbx7RNED9rhGArAbile+Ua3T mMjIci26TMJR4eoetz3FvbwtNcSpDCn25JGCqKmm5NBmEATycwl8caep0H/nIhRqrf3Wvv6k81Vq J5z6czFjtUSK9Sc3p9WDb+a6YenNv/OfUP5q6ha2H5beZri6YLE2m3MAr0L3EZhjX/ZPIozT6eJO SNd7tM5qB9z5O/LvT7t/Jnn/AFFQfqkOlRW8jdjJLdxOg+fGJs3eaQ4oDz/Q6nCPTI+TIvyk/wDJ Sfmf/wAwlt/xGbKtR/ew+LZp/wC7mkfkbTrq+/Kf8xRbAs1sdIuZEUElo4ppy/Tsq/Gflk8sgMkP j+hhiF45/BHfkl+Wfl/z4dTtbzWLjTtRs/Tkit4Cn72FqhnowqeDAA/MZHVZ5Y6IFhlpsMZ3ZovV YP8AnFXyxBewXL69fPJHIroHEXxFDyp0/wAnMP8AlGXc5Q0Mbuy8kvp49D/5yJnutU/dQQ+Y2uJX k6JDLc+osh9gjhszYjiwUP5v6HEJ4c2/859Sfmlqdppv5c+Y7m6cJGdPuIVr3knjMUa/7J3AzT6e JOSNd7tM8qgfc+Uvyr0+61Dy95+trVOc36EMoQdSIbiOVqe/FDTN1nkAY3/O/Q6rTi4y9y78lfIW g+d9YvtJ1HVbjTbxIlmslgKD1gpIlX4+rKCpAHavhg1WY4xYFrpsQmSCaeuy/wDOJ3lhqNL5gvz0 UFli7mgG48TmF/KMu5zDoY95X/lR/wA4/eYPJnnO21691O0ubeCKaMwwiTmTKhQfaUDauDUa2M4G IBXBpDCVkqv5Q/kJr/kjzeNcvtStbqAW8sHpQCTnyk40PxKBTbHU6yOSHCAU6fSmErJT388Pyk1f 8wv0L+jr23s/0Z9a9X6wHPL6x6PHjwDdPSNcq0mpGK76s9TpzkqjyZt5G8v3Hl3yhpOh3EqTT6fb pBJLHUIzL1K13plGafHMyHVvxw4YgdzyjyV+Quo+StW1PzBcatDeRGwvIhBHEyNWVKg1LEbUzNya wZAIgdQ4mLSmBMr6PFvyZ8hR+dvMd9pgvpdNu7Wwa9sL2Lcx3EVxAqkgFSRSRujAg0PbM7U5vDiD V7uFpsXHIjls9Tm/5xx/MPzDqttJ5y82re2VuOKurz3EwStSqLMqIham7VP05ifnscR6IuUdHOR9 Unt8Hk3y3D5VHlRLJDoQgNqbRtwUPUk9eRY8uXXlv1zXHLLi4r3c4Y48PD0eHXv/ADjF5r0jWzf+ SPMwso/i9J5nmt7mNWJ/d+rbh/UFOpotfDNiNfGQqcXBOikDcCyv8vfyV81aR5rt/NfmnzVPqmp2 qvHFCjSSqyyIUKvLcVYrv9kINwDXKc2rjKPDGNBtxaaQlxSlZQHkr8hNf8v/AJpR+cLjUrWayS4v J/q0YkEvG6jlRRuvGo9UV3yWbWRlj4aN7Ix6UxycVvW/NekTaz5X1jR4XWKbUrG5tIpHrxVp4WjV mpvQFt8wccuGQPcXKnHiiR3h5J+Xv/OO91omm+Y9L8wX8F3Z69apbD6qHDxtG5dZPjAFVahHyzOz a0SIMRyLi4dJwggnmx7Rv+cYPOlhf3NqnmpLTQrz91emzM6TTwA7JJD8Me/u7Ae+WS18CL4d2qOi kD9WyNsv+cZ9Y0bz1Z67ompWq6Zp97BdWtrceqZjHCysUdlUjk1CKjAdfGUKINkMhoyJ2DsmU/5A 6/J+bI86DUrQWQ1VNR+rESerwWQPw+zx5beOQ/OR8Lgo3VMzpT4nFfV7jmuc1DalpthqdhPp+oQJ dWVyhjnt5RyR1PYg4YyINjmggEUXgfmv/nFCGS7a78p6v9TVm5JZXoZlj7/BPHV6A9KoT75s8faO 3qDgT0G9xKXRf84wef7+WKLXfNELWUZFOD3N0ygfyJKIlH35I9oQHIMfyUzzkz78x/yA0rzdZWVx FfvbeY7K2itpNTkUOLsQoFDXCDj8ZI+2vTwO1MbBrTAnb0/c35tKJjnuxG7/ACD/ADc123tdK8ye cop9EtmBWMNPOw4iing6xB2ANAWfbLxrMUd4x3ajpcktpS2eh3H5P6ZZflbqHkjy84ge+Qepe3NW aSbmrNJKVHglAANsxRqicgnLo5H5cDGYhi3kn8h9e0DyV5u0C41K1muPMUMUVvNGJOEZjEgJeqg7 +p2y7LrIynGVH0tWPSmMZC+abfkv+TmoeRYNet9YurXUYNZW3j9KJXK8IhMHVxIoqGE2Q1WpGSq2 pnptOcd3vbEfMP8Azi/qVrrv6V8i64NMHMyQwzvLHJbk9oriEM5HhUVA6k9cvh2gCKmLaZ6Ig3A0 m3lb8ivPQ8yadr3m/wA5T30+lTJPaQQyTXFeJqV9S4oEVujARmoJyGTWQ4TGMebOGmnxAylyTb84 fyHs/PN0us6bdrp2uogjkaRS0Fwq7L6nH4lZRtyAO21Mr02s8MUdwy1GlGTcbFgusfkl5ytfKN/c eePNzXei6DZTXGn6bDNM8ZlhhYQqWmCBQGooAUkg8QRmTHVwMhwR3JaJaaQj65bBA/8AOJFpM/mP X7nhW3js44ZH7cpZeSr9IjbJdon0gebHQDcsj85/84wPNrTax5K1VNKkeX1hZzc0SFyeXKCaEM6A H7K8dvHKsXaG1TFtuTRb3E0qaT+QX5h32sWV95w87T3MenTJcWqW8s9xIHjYMCj3HFYmqPtcGwS1 mMAiEeax0syQZS5PcLfVNMuZPSt7yCaQioSORGag9gTmvMCOYc4EInIpdirsVQurQS3GlXkES8pZ YJUjWoFWZCAKnbrkoGiES5PBf+cevyq8++UvOl7qXmHS/qVlNpstvHL69vLWVp4HC8YZJG+zGxrS mbHW6iE4ARPV1+kwThKyOj6EzWOxdirsVSTzV528r+U7WG68wXy2MFw5ihdkkk5OBypSNXPQZZjx Sn9IthPJGHMovQPMGkeYNIg1fR7gXenXXP0LgK6BvTdo2+FwrbOhG4yM4GJo80wmJCxyTDIsnYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8e/Mfy3+eq+b5te8k6qjadLFFDHpZkQcAi/EWiuV9A 1dmPIHlmfgyYeDhmN3DzQy8VxOzB/MHkv/nJrzvFHpPmERWumF1MimazjgJB2aQWrSSOF60od+gz Ihl0+PePP4/paJ4889jye0flZ+W2neQfLn6Nt5PrN7cN62oXpUKZJKUAUdQiD7IJ8T3zX6jOckr6 ObgwjHGmY5Q3OxV8b/8AONP/AJNiw/5h7r/ky2b3Xf3RdPov7x9kZoncLJpoYInmmdYoowWkkchV VR1JJ2AwgWqRJ+YfkB5hCnmbSmmJ4iMX1sWJ8Kc61yzwJ/zT8mvxYd4+bIAQQCDUHcEZU2JXZ+a/ K99eixstYsbq9PIC1huYZJSUBLfArFtgN9smcUgLINMROJNAoST8wfIUcxgk8y6Uk4PExNe24YHw 4l65LwJ/zT8mPiw7x80+jkSRFkjYPG4DI6moIO4II7ZU2JZq3mryvo0qxavrFjp0rjkkd3cwwMw8 QJGUkZOOOUuQJYynEczTxH/nKTVtK1XyZoV3pd5Bf2pv3UXFtKk0ZIhNRzQstd82HZ8TGRBFbODr pAwFd7PP+cd//JO+X/8Ao8/6jp8xtb/en4fc36T+7H46sw1Tzf5T0i4+r6rrVhp9xQH0bq6hheh6 HjIynKI4pS3AJbpZIjmQETpWu6JrELTaTqFtqMKGjy2k0c6gnsWjLDBKEo8xSYyB5G1uq6/oOkel +ldStdP9fl6P1qaOHnwpy4+oy8uPIVp44xhKXIWspAcyh7zzh5RsYILi91vT7W3ul9S2mmuoY0lQ /tRszAMPcZIYpnkCg5IjmQiNJ1/QtZjeXSNStdSijIEj2k0c6qT0DGNmA6ZGUJR5ikxkDyNo/Isn Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+N/+caf/JsWH/MPdf8AJls3uu/ui6fRf3j7IzRO 4fJf56eePMHnD8wT5L0+Rk0y0vE0+3tFJUTXbMI2klp9qkh4r4D3Jzd6TFGEOI8yLdTqspnPgHJ6 Tq//ADi95K/wjJaaZ6/+IoYS0OpPK376cCoV4i3pKjNtsAR4nMSPaEuKz9Lky0UOGhzYX/zjJ+Y+ rw+YU8lX8z3GnXccraakh5G3mhUysiE7iNkVjx7N06nL9fgBjxjm0aLMb4S818o+Wb7zP+ZK6DZ3 TWbX9zcxz3KEgrbgO8/SlaxKwodj0OZmXIIQ4j0ceEDLJT0784P+cfPLXlXyTN5g0G6u2l09ovrU V06SCSOWQRchwSOjKzg+FMw9NrZTnwy6uTqNJGMbHRFflF+Z19oP5I+Y7uZ/rFxoEyxaYkpJC/Ww qQpv1VJSzUHavTBqdOJZo+fP4J0+YxxE9zFPyX/LpfzP8xavq/mm8uLi2tOD3TCSk0885biC5Boi rGa0p2Ay7VZ/CiBENWmw+KSZN/n3+Uun+RWsLvQ5pjo2pMySWsz8/TuIhVSDQVDIxpXcUO++Oj1J yXfMLqsAhRHIsqtPzAvPJ3/ONGgPpknpavqkt3aWko+1Ev1u4aWVduqqOI8CwPbKDhE9Qb5CvubR lMMArmUB+Qv5P6F5006+80ebPV1FHuXggtjNInNlUNJLK6FZGJLinxDoa1yes1MsZEY7MdLpxMcU t2OfmNoV/wDk9+Y9tceVr2WK2mhS7tA7Fvg5lZLeanH1E5J37Ed98twTGfH6g15onDP0sh/5yW1+ 38w+W/IGuW68ItRt7yf0+vBnW1LITQV4NVcq0MOGU491fpbNbLijE9/7E0/LT/nHbQPMvkyx13zH qF7JeajCGtkt5EVYIB8MS/GkhY8V9gOlNq5DUa2UJmMQNmeHSCUbkebAvy6/SXkf887XRorguI9S bSbpl2WaGST0gWWvur07EZk5qyYSfK3Hw3DLXnT7LzQu5dirsVdirsVdirsVdirsVdirsVdirsVd irsVdir4t/5x81XS9K/M2yvNUvILCzSC5V7m5kSGMFoiAC7lV3Ob/WRJxkDd0ukkBOy+r/8AlZP5 df8AU1aP/wBJ9r/1UzS+Bk/mn5O28aH84fN8p/mIk3lX86zrzhbmyk1GDXrCeM8ori3klW5UxsNm WtUqO4zc4fXi4fKnVZvRlvzt9Y6r548t6f5Rk81texS6QIDPBOjik2xKRpX9tz8IXrXNNHDIz4a3 drLJER4uj5f/AOcaNC1DU/zPh1eND9V0mKee7loeIa4ieBEr/MxkJA8FObfXTAx13ur0UScl9yn+ RX/k9bT/AIyah/yYmw6z+5PwXTf3vzfQP5//APkofMP+pb/9RUWazRf3o/HR2Gq/uy+fvy+0O51j 8lPPsNqjSXFtNZXiRr3FuWeTbvSMMds2eafDlh8XX4Y8WKTIv+cU/N+l6dqur6BfTpby6mIZrFpG Cq8kPJXjBP7TCQFR7HKu0MRIBHRs0OQAkHqi/wDnK3zhpF62keXLG4jubq0kkub702DiIkenHGxU kBj8RK9Rt45Hs/ERcj1Za7IDUQk2veWrvUv+cZfKuq2qNIdGubyS5UdoJrydGf8A2LhPoJPbLIZA NRId9fcwlAnAD3M+/wCcVvNGn3Pk658vNOq6lYXUkyW7FQzQTAMHQdWo4YN4beIzG7QxniEujfoZ gxrqHnX/ADk55istc8/Wem6ZILttMtltpTEQ4NzLIWaNeNakAqD77dRmVoIGMLPVx9bMSmAOir+f fl+fy95G/LfRrgUubS0vVuVrWkzC2eRQd60diMGknxTmfd+ldVDhjAfjo9//ACd/8ld5Z/5gY/45 rdV/eSdhp/7se583Xn/rTC/+BJF/1ELm1H+L/wCb+h1p/v8A/OfYWaJ3DsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVfG3/WNn/f0f9Oeb79//Q+1037j+k7/AKxs/wC/o/6c8f3/APQ+1f3H9J7f 5+/5U7/yrXQv8Vc/0d9Rh/QNf+Olw9BOPp+n+1x486/u60r2zX4fF8Q8PO9+5zsvh8A4uXTvfPUH /KlP0kPW/wASfojm3H/eL1Om1afD4Vp2zZnxa/hv4uvHhX/FXwfV35Vf8q7/AMKxf4F9L9GV/fca +v61N/rPP956n+t2+z8NM02p8Ti9fN2uDg4fRyeTflZ/ypr/AJWpB/h79Of4g53fp/XPq/1WvpSe rXh8f2eXHM3U+L4Z4uGvi4uDwvE2u3rn5tf4d/5V5rH+I/rP6F4RfW/qXD6xT14+Pp+p8P2+Na9s wdNxeIOHm5efh4DxcmIf84+f8q6/Rmtf4N/SX1f1Yfr36V9GvLg3Hh6W1KVrXL9b4ljjr4NOk4KP DfxePfmd/wAqC/xDc/oX9J+t6p+s/oz0P0fy35+j63xfa/l+D+XbM7T+Nw+qv0uHm8Hi2v4ckZ/1 jV/g6D/js+v9aH1nj6H6R5em3Hny/dej1/u+9OXbB/hHF/D+hP7jh6/pe9/lR/hH/lWGnfoT1/8A DXC69P8ASnp+r6f1iX1vW4/u+PPn/seuazUcXiG/q8nPwcPAK+l85+fv+VBfpqX/AA7+l/U9Q+p+ j/S+p9Dy9H6x+96+Hw+G2bXD41eqv0uuy+De1/Bm35Ff8qI/Tlv+j/rn+KKD6p+mvT/vePxfVvR/ dcv5eXx+GY+r8bh3rh8m/S+Fe31ebKf+cif+Vbf86/8A41/Sn/H5+j/0V6P/ABR6vq+t/sONPfKd F4m/BXTm26vg24r+D0H8uf0L/gbRP0J6/wCifqqfUvrXH1/T7epw+Hl8sxs98Z4ubkYq4RXJ4xc/ 8qa/5XaOf6c/xV+mY6U+r/UvrfrDj/xZ6fL6czx4vg/w8PD53ThnwvF68VvorNU7B2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2Kv/2Q== + + + + + + uuid:E91ACE223257DE11A0F08ED6CBC828CA + uuid:EA1ACE223257DE11A0F08ED6CBC828CA + + uuid:55F5DC886A8011DBBFC999F43516EBD7 + uuid:EB35FEDC6A7F11DBBFC999F43516EBD7 + + + + + 297.000002 + 209.999994 + Millimeters + + 1 + False + False + + + PANTONE 541 C + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + PANTONE 541 C + SPOT + 100.000000 + CMYK + 100.000000 + 57.000000 + 0.000000 + 38.000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 +%ADOEndClientInjection: PageSetup End "AI11EPS" +%%EndPageSetup +1 -1 scale 0 -94.6885 translate +pgsv +[1 0 0 1 0 0 ]ct +gsave +np +gsave +0 0 mo +0 94.6885 li +360.923 94.6885 li +360.923 0 li +cp +clp +[1 0 0 1 0 0 ]ct +0 39.8398 mo +0 1.89844 li +7.44043 1.89844 li +7.44043 39.8398 li +0 39.8398 li +cp +false sop +/0 +<< +/Name (PANTONE 541 C) +/0 +[/DeviceCMYK] /CSA add_res +/CSA /0 get_csa_by_name +/MappedCSA /0 /CSA get_res +/TintMethod /Subtractive +/TintProc null +/NComponents 4 +/Components [ 1 0.57 0 0.38 ] +>> +/CSD add_res +1 /0 /CSD get_res sepcs +1 sep +f +18.3574 15.9355 mo +18.4629 15.9355 li +20.2573 13.4961 23.6851 12.0879 26.8003 12.0879 cv +30.1206 12.0879 32.9683 13.4434 34.5542 15.9355 cv +36.7729 13.7695 40.2007 12.1426 43.3159 12.0879 cv +49.271 12.0332 52.3901 15.7754 52.4956 22.0059 cv +52.4956 39.7852 li +45.4741 39.7852 li +45.4741 23.3086 li +45.4741 20.166 44.4194 16.9141 40.9409 16.9141 cv +37.564 16.9141 35.4546 18.9707 35.4546 23.6855 cv +35.4546 39.8398 li +28.4351 39.8398 li +28.4351 23.3086 li +28.4351 19.5156 26.8003 16.9141 23.7925 16.9141 cv +20.4663 16.9141 18.4121 19.2422 18.4121 23.8496 cv +18.4121 39.8398 li +11.3926 39.8398 li +11.3926 12.7383 li +18.3574 12.7383 li +18.3574 15.9355 li +cp +f +63.3882 12.7383 mo +56.3745 12.7383 li +56.3745 53.3926 li +63.3882 53.3926 li +63.3882 36.4785 li +65.3433 38.8672 68.0815 40.4883 71.2983 40.4883 cv +78.8452 40.4883 83.5938 32.8496 83.5938 25.6934 cv +83.5938 19.7305 80.2202 12.0879 71.937 12.0879 cv +68.771 12.0879 65.3433 13.7148 63.4937 16.4766 cv +63.3882 16.4766 li +63.3882 12.7383 li +cp +70.1421 16.4258 mo +74.1479 16.4258 76.1538 21.0879 76.1538 25.748 cv +76.1538 30.5176 74.5737 36.1543 69.8804 36.1543 cv +66.0796 36.1543 63.3882 32.3066 63.3882 26.6152 cv +63.3882 20.3809 65.7104 16.4258 70.1421 16.4258 cv +cp +f +110.641 26.9375 mo +111.162 18.8633 107.732 12.0879 99.5039 12.0879 cv +91.959 12.0879 86.0508 17.4004 86.0508 25.748 cv +86.0508 34.6934 92.0098 40.4883 99.9785 40.4883 cv +102.984 40.4883 106.73 39.6211 110.318 37.4551 cv +108.313 33.6621 li +106.574 34.9063 103.826 35.832 101.244 35.832 cv +96.8652 35.832 93.3848 32.0352 93.5449 26.9375 cv +110.641 26.9375 li +cp +93.6484 23.0352 mo +93.5957 19.4102 95.3867 16.0996 99.3984 16.0996 cv +102.879 16.0996 104.305 18.918 104.039 23.0352 cv +93.6484 23.0352 li +cp +f +120.99 17.5078 mo +121.096 17.5078 li +122.518 15.3945 li +123.361 14.2539 124.893 12.0879 127.055 12.0879 cv +128.639 12.0879 130.324 12.957 131.805 14.5254 cv +129.168 19.5156 li +128.008 18.918 127.268 18.5918 125.844 18.5918 cv +123.418 18.5918 121.041 20.5977 121.041 26.4512 cv +121.041 39.8398 li +114.023 39.8398 li +114.023 12.7383 li +120.99 12.7383 li +120.99 17.5078 li +cp +f +133.367 4.61133 mo +133.367 2.54688 135.055 0.4375 137.43 0.4375 cv +139.855 0.4375 141.756 2.49609 141.756 4.61133 cv +141.756 6.93945 140.117 9.16016 137.531 9.16016 cv +135.055 9.16016 133.367 6.93945 133.367 4.61133 cv +cp +141.066 12.7383 mo +141.066 39.8398 li +134.053 39.8398 li +134.053 12.7383 li +141.066 12.7383 li +cp +f +160.02 35.8828 mo +160.02 37.3457 160.176 38.918 160.701 39.8398 cv +168.143 39.8398 li +167.297 37.9414 167.033 35.3945 167.033 33.2266 cv +167.033 22.1719 li +167.033 13.7148 161.074 12.0879 156.219 12.0879 cv +152.58 12.0879 149.363 13.0098 146.088 15.7754 cv +148.355 19.1895 li +150.205 17.5625 152.316 16.4258 155.326 16.4258 cv +157.594 16.4258 159.754 17.998 160.123 20.4902 cv +153.896 22.3867 li +147.775 24.1738 144.137 27.1016 144.137 32.2539 cv +144.137 37.2363 147.564 40.4883 151.68 40.4883 cv +154.107 40.4883 156.486 38.8105 158.438 37.2363 cv +160.02 35.8828 li +cp +160.123 24.1211 mo +160.65 32.0859 157.014 35.666 154.217 35.666 cv +152.529 35.666 151.047 34.041 151.047 31.6543 cv +151.047 28.5664 152.791 26.5078 156.219 25.4199 cv +160.123 24.1211 li +cp +f +171.414 39.8398 mo +171.414 0 li +178.427 0 li +178.427 39.8398 li +171.414 39.8398 li +cp +f +224.733 8.78125 mo +222.934 7.80469 219.93 6.66797 217.077 6.66797 cv +209.483 6.66797 203.999 12.1426 203.999 20.7617 cv +203.999 29.7598 210.067 35.0703 217.29 35.0703 cv +220.141 35.0703 222.778 34.2559 224.733 33.1719 cv +226.79 37.8887 li +224.522 39.2441 220.565 40.4883 216.975 40.4883 cv +204.151 40.4883 196.081 31.8164 196.081 20.6543 cv +196.081 10.3008 204.104 1.24805 217.077 1.24805 cv +220.932 1.24805 224.522 2.6582 227.049 4.17578 cv +224.733 8.78125 li +cp +f +240.711 40.4883 mo +248.999 40.4883 254.583 34.3672 254.583 25.9648 cv +254.583 17.1836 247.834 12.0879 240.711 12.0879 cv +233.639 12.0879 226.889 17.1836 226.889 25.9648 cv +226.889 34.3672 232.481 40.4883 240.711 40.4883 cv +cp +240.711 36.4785 mo +235.698 36.4785 234.329 30.7344 234.329 25.9648 cv +234.329 21.4668 235.909 16.0996 240.711 16.0996 cv +245.618 16.0996 247.145 21.4668 247.145 25.9648 cv +247.145 30.7344 245.829 36.4785 240.711 36.4785 cv +cp +f +257.608 39.8398 mo +257.608 0 li +264.629 0 li +264.629 39.8398 li +257.608 39.8398 li +cp +f +269.051 39.8398 mo +269.051 0 li +276.065 0 li +276.065 39.8398 li +269.051 39.8398 li +cp +f +303.567 26.9375 mo +304.096 18.8633 300.667 12.0879 292.436 12.0879 cv +284.893 12.0879 278.977 17.4004 278.977 25.748 cv +278.977 34.6934 284.94 40.4883 292.911 40.4883 cv +295.915 40.4883 299.661 39.6211 303.252 37.4551 cv +301.247 33.6621 li +299.508 34.9063 296.76 35.832 294.176 35.832 cv +289.799 35.832 286.313 32.0352 286.473 26.9375 cv +303.567 26.9375 li +cp +286.583 23.0352 mo +286.524 19.4102 288.319 16.0996 292.327 16.0996 cv +295.813 16.0996 297.235 18.918 296.973 23.0352 cv +286.583 23.0352 li +cp +f +360.872 26.9375 mo +361.397 18.8633 357.971 12.0879 349.741 12.0879 cv +342.194 12.0879 336.286 17.4004 336.286 25.748 cv +336.286 34.6934 342.245 40.4883 350.215 40.4883 cv +353.223 40.4883 356.969 39.6211 360.555 37.4551 cv +358.551 33.6621 li +356.809 34.9063 354.067 35.832 351.481 35.832 cv +347.1 35.832 343.624 32.0352 343.778 26.9375 cv +360.872 26.9375 li +cp +343.883 23.0352 mo +343.833 19.4102 345.624 16.0996 349.635 16.0996 cv +353.114 16.0996 354.543 18.918 354.278 23.0352 cv +343.883 23.0352 li +cp +f +333.37 12.7383 mo +326.352 12.7383 li +326.352 16.0449 li +326.249 16.0449 li +324.772 13.6055 321.604 12.0879 318.385 12.0879 cv +311.209 12.0879 306.145 18.918 306.145 25.9648 cv +306.145 34.6367 310.737 40.4883 317.754 40.4883 cv +321.766 40.4883 324.506 38.2129 326.249 35.9355 cv +326.352 35.9355 li +326.352 39.5137 li +326.352 45.8008 322.766 48.7285 318.12 48.7285 cv +314.534 48.7285 311.526 48.0234 308.944 46.3984 cv +307.569 50.8418 li +310.684 52.4668 314.696 53.3926 318.649 53.3926 cv +326.512 53.3926 333.37 49.4336 333.37 37.4023 cv +333.37 12.7383 li +cp +319.969 16.4258 mo +324.192 16.4258 326.352 20.8164 326.352 25.5313 cv +326.352 30.9512 324.346 36.1543 319.649 36.1543 cv +315.588 36.1543 313.586 31.0586 313.586 25.8008 cv +313.586 20.5449 315.432 16.4258 319.969 16.4258 cv +cp +f +0 56.1045 mo +7.49414 56.1045 li +7.49414 88.9443 li +23.2656 88.9443 li +23.2656 94.04 li +0 94.04 li +0 56.1045 li +cp +f +64.4346 70.1377 mo +66.938 67.5361 70.4297 66.2881 73.9292 66.2881 cv +80.4248 66.2881 83.5361 69.7588 83.5361 76.5869 cv +83.5361 94.04 li +76.4854 94.04 li +76.4854 77.4014 li +76.4854 73.6094 74.7632 71.1162 70.9316 71.1162 cv +67.3188 71.1162 64.4893 73.4434 64.4893 77.8877 cv +64.4893 94.04 li +57.437 94.04 li +57.437 66.9424 li +64.4346 66.9424 li +64.4346 70.1377 li +cp +f +108.516 94.04 mo +115.568 94.04 li +115.568 54.2061 li +108.516 54.2061 li +108.516 70.0869 li +108.404 70.0869 li +106.739 67.6982 103.521 66.2881 99.9121 66.2881 cv +92.4678 66.2881 87.25 73.1191 87.25 80.165 cv +87.25 88.835 92.0791 94.6885 99.3555 94.6885 cv +103.687 94.6885 106.573 92.4131 108.404 90.1357 cv +108.516 90.1357 li +108.516 94.04 li +cp +101.797 70.6299 mo +106.241 70.6299 108.516 75.0195 108.516 79.7314 cv +108.516 85.1543 106.409 90.3545 101.463 90.3545 cv +97.1895 90.3545 95.0801 85.2598 95.0801 80.0029 cv +95.0801 74.7461 97.0254 70.6299 101.797 70.6299 cv +cp +f +133.893 94.6885 mo +142.609 94.6885 148.493 88.5635 148.493 80.165 cv +148.493 71.3877 141.389 66.2881 133.893 66.2881 cv +126.451 66.2881 119.344 71.3877 119.344 80.165 cv +119.344 88.5635 125.231 94.6885 133.893 94.6885 cv +cp +133.893 90.6768 mo +128.621 90.6768 127.172 84.9336 127.172 80.165 cv +127.172 75.668 128.836 70.3018 133.893 70.3018 cv +139.06 70.3018 140.666 75.668 140.666 80.165 cv +140.666 84.9336 139.282 90.6768 133.893 90.6768 cv +cp +f +159.324 70.1377 mo +161.824 67.5361 165.321 66.2881 168.817 66.2881 cv +175.314 66.2881 178.426 69.7588 178.426 76.5869 cv +178.426 94.04 li +171.375 94.04 li +171.375 77.4014 li +171.375 73.6094 169.653 71.1162 165.819 71.1162 cv +162.213 71.1162 159.379 73.4434 159.379 77.8877 cv +159.379 94.04 li +152.327 94.04 li +152.327 66.9424 li +159.324 66.9424 li +159.324 70.1377 li +cp +f +38.8838 94.6885 mo +47.5996 94.6885 53.4854 88.5635 53.4854 80.165 cv +53.4854 71.3877 46.377 66.2881 38.8838 66.2881 cv +31.4414 66.2881 24.335 71.3877 24.335 80.165 cv +24.335 88.5635 30.2192 94.6885 38.8838 94.6885 cv +cp +38.8838 90.6768 mo +33.6035 90.6768 32.1641 84.9336 32.1641 80.165 cv +32.1641 75.668 33.8281 70.3018 38.8838 70.3018 cv +44.0474 70.3018 45.6582 75.668 45.6582 80.165 cv +45.6582 84.9336 44.2661 90.6768 38.8838 90.6768 cv +cp +f +%ADOBeginClientInjection: EndPageContent "AI11EPS" +userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse +%ADOEndClientInjection: EndPageContent "AI11EPS" +grestore +grestore +pgrs +%%PageTrailer +%ADOBeginClientInjection: PageTrailer Start "AI11EPS" +[/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 +%ADOEndClientInjection: PageTrailer Start "AI11EPS" +[ +[/CSA [/0 ]] +[/CSD [/0 ]] +] del_res +Adobe_AGM_Image/pt gx +Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx +currentdict Adobe_AGM_Utils eq {end} if +%%Trailer +Adobe_AGM_Image/dt get exec +Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec +%%EOF +%AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.0 %%For: (Beth Elzer) () %%Title: (IMP_ML_1CS_PS.eps) %%CreationDate: 6/10/09 9:20 AM %AI9_DataStream %Gb!!kfs522E?4fXq%*3'B&j'B@NP$)\5au_qiZUETVOK6$s(SEJ>LOq"fhYY_Djq`0o3nq<]T*Xj=`Vm__i(+2@dE2rB,ZiStG54Fd+i %]C17EeXKpYqn)_%pYUApq#7no?bcI-Btb%,`Us%7s7FR6YQ*RZf73VkrNDebBE75QbBO!a_cM?cpo>e<]7U(NgCKp*qYK5j5(3+_ %j4AeT\pjPZIaEQtJ,eoV++IOZrS^gRnM$0iT76S*]2tKCe)1)ch*:i*+91D.>G'>[DgS\Lm[r'ZTh3tXoJX,*n7TtY5E.MWN`=G**VjQ0I;&M; %nrJ;"k2X5TlKRcPqXDb=5CW@E^FC.Oo?@NZs1@`Lr9ZHCF('0T[;f]:V`O.ue8*O*s3jc95(so>s7Gj9hgP6kAE(@_E=l3jPfcpP.nagJC%Oi99a4bi?>[J+ %K1>5Fh4PGThUb6qB$nO]IfIY7^\RS)2S&has7#tG?Z/!il"T@"1B4iDnGhSL3mY4r++O4`Xj)2)mdo?)IR8;VpV55ZIeU%(QGM^A@B#?Tkf_e'igEpck@!rKeTl^1$u_)8EY8hrhrHcd.:,N'DC':NONOF4QttIugf+X4;"*n+]t"B[n#) %[J'S_qj\=:k!Y]LIc9TQd:uF`_VaiE>!5*FeakT2I"'(2StFEmrHnJ7rVP18p&"LYq>9p_NQtYhX7O^Nor%SJ5L9/M0CV&,@86M; %Xfs.T<.BW;iHMZFMXW^Y9hac[=;-/(^T\p[Nh-q\g+uc_hm%(s#q4AX0bp0=5$DB#p`45.^B]_pK:+6M'oRqqr2sDlb'!D=GFb4` %NgXsLfKt(]("S/td?F!kY$-=P4,,uI$L?^^.ou:HX:N)+?W`le5CV4P"+oFX$L>Uu\r00,MH:f?,E`6bF4(Tn9]rP4.SXj4qa&Tc\ %k1gQO:$7O;**mpCn+Gl?94tCT;lNpo>]HN%]U)tt^\bD(2fF/]e%/)WF?G]1adEIDCet8US4V_7=U#**<$f %04PF]$\'X-N:nbJrQ5%;J!Hc.hLFgo2nu:k+o>(6e[tg-s/EcQd!t(O*IHGBGOP/OqbR1`lX/tmpRhM2DFcQ%lMmT_B^J++FqtFHNGOOFMV+-/>VuCJ>au-*kp"d6b+MYqAUk'o?i=U(0+H,A/c1mkF+\4P4_(-R7`5'"[J!i]^QgN? %ICHri!c+sfB.^mT%H&r<>5M'Io=1>U`dTjITC:YDY5=Q$%0DZSjOYgV2ui[iTaLeNfXo\GWSc].r(G%ZYM[lSCTlUZ^\9?5Wpm^] %Sr?S)aXBNk28&^V\h_K?NVuUQW,n@a^RI.501%DiQo[=J4u"!;E3ALCS-7Ti2/@'>l%#fJLsa2RZ$/l]$7ZHA1osMeE)VkGK$:7[ %^N=9tDrR8gGODhB]!L6<`g1e@qLYs]Ir"FcZ5m#9*/=j4%%PL"3\/G?Sb;SlE%N$tpo2L#^!9,\%fEGWdeV.3'/U02F,t-mZ`[Eb %iKUIJa0B:SaZQ+uStCt4`nu;JSh]Rm:R'f7]rpPS3:)Fh2(?gi0%?YsHtVX(h;%mC]rY//F=TS*%pH;XjJ::!b.+9Gi4q@q??qhM %g=`+XGC:]_FjF@e^THCD1WDFn.)rIKh+^\1rZ+)<*EQtW[/`h%TKh,AqVJ1m-Q,&m4ZVtq1W_&)UGu7KncKn2p2g'jY+&UJm^p]H %mF.lE/:+uih:rV(4iFo&dc:+T["+Gd+3H1[lR=i'mC;JrEl4sM0JKeRADn]Ce(Ebme9/IR[^/?Q\gV^jm+U=cgV)'A0JdhC,Ar$Q %rO9p4SaGS+n)iK_]q<6*Y+)KQaMOF%nn2?,0h,tsXQ""Y]mcPh5P8A54n]]$qh^_Jm:[D%rciW_$'UUHq`W(M3`DT)n*)h"id"$o %QL#[Y]7UMUBEYd/.eoR.-H!C=G>P)EpEIg?(Q4']$>hjqTaAWT#ucIb?a7:m(L=T %47%!#5<*`2#N!]_jr*2hO1dQ^F*[SXggY?_c"f94-)DO@YO=8C\VqssJ$3+5ZbG&jp=_f>mmZ!KrY]Y%?1*`6JDC3+aJ[__]5bGX %Hjq(m\8n=KG3'Meqpo$L(TodjA15q78e>=f@mrHn+C9``c"DgPD3UiO7%Km.8lXKdt\Z1VC!8Yd`5<.W4g_O#`F %^.?qbZ1W8,#`KA:2Klu#(,``hn>lte$e2\q;94*$@NS*JJRq&B"?M;s^><'r_S?&nD %gFYX`=DHJYau5^gU;W$'eTFjsJh=!ArS%.<`X*,;g[pK">f84M9YOP]*fo$gNlSCR>LM028-rP3IjT6F:9RPkU#^%!3iVXjdjZ^j %ADY3Lh\RRYemGC.ClN5r=3BX]h=0pOr(V71DTHtdDGZW=[F?eSI1Cn@VX\^h^K_`B34P6Xc]+"C[_>3OpJ1=i)?5WtjiEqW]C*Si %qj^pgS6IlX:NcQnB)MBnXm]q'mIeX?X,aI_Gl>crhO/6WDYeh>a@pWN9bg0dm/%t_=?,dH*,Jc-^r?N^3$P07k5+=Sebc-J*VL-V %E'bQQ.f&c;/\C6h;<`M)3h`rh/ZPtBHE43a]gRY)F)P2th\#"ER_6^Oj2I7EpD^(p,r %?p]6Mp>,SUSZ=]aGlIB`YG8fhQ+58br$JGk:dUoNUBJS]i(hu%r5G#[IZ4VprpBNn=2aHS?u5$chgbCb]0GT,r9s3?hgYLnVa"mW %9E+neJ,!ohroRF9Ies/n[-sW9rV]MVr9Mi#^AI>^cgUQt5"u+e'^bqH(umRG_70I>X^_,h %Ou9`kl.u(urZ=)ACAiC1ou$fnH[l%[e#.-`q#+9DqU]XL>RbZBF!!u'p:i<6qbLRIs)ENAs5]e:K.R&nqCg`SqW$1s(E`\Hh=n)XZjHBJDu]b*ds$:&9[Y(kIJ`]dJ,\a15CK\MCssK?q=a,s6KC7I1k,2q-_uDXrUsU5qU7s& %mZ7DE?<[@%B9;Y]YJ0u#q^6rAQXE%9IMY5\AP!7#:@%?b@m%'2?iKW"nO320Co\S;2h1E0+90U38rS8s-9StGs8SF8Hh5]*-8MZP %ral&gs&spJmgJc+:Z^j0TDn/+$Vt-)jZgHSAaaJ"+ku,G9OU,u/kF1Ym2.i*^b9oir&0h)"Dltf+o^`817s&$s8VVlS%:f+aTcU# %;cR4a1YRrXD/RF.!4]Bj:,B.-?JbTGIaHu\e;I(8p/.s\Z21$oi:8e/@:$&*R%7_>*TK_\jos,/b9ZFMg+k=n6sJ5KdaPOF&8LJg %]3+'VX^`hoamj,=4B'`n>H@I?HeV.HBFc(2KZqbTp!GicT5A`n4iL=#f5kYINYGkRPJ,6Zp`&"D7")s]15$ajse %]dB4d:Ot\'R4GbPg!&TQ6DX>5qhuN#Qg<$-5p\(&BpI]^Rg-Y90-m-sN=)b@-R4R6%G4!`4>,qJ4Bi%JEuld=n\eb7bp'%$%dmq: %(b5&m=si:'orEY1`b\Ss[8uU(ZtMTM_pIGC[4o/"3?$Ylh?f.20?Ir0He]VMN,'@Q*"S\[-'Xdk!E5'1EoA8>-B1=^.>nh2'Y$o8 %SX2&EJJF!L6U:KPrJ"4PD2Mk^QpV;c[n5)n=_qQReGOEFgZQ=@%s\b?JT5Y>\k;UjaPl-KklBe'f*O+#74(=^3p5I@I#]6N(PQo? %[JGa%h)B'8Vc!A>>LH&)im)76Sa[aI`NT96=m$/r*-jD3,&bq&b,#rZ`an-&&ra6#%RTF@JkaQIHL8t'bomJt/nC'!XhMH#=d-7Q %fNm=uXT-X"N7k;@@nr1`X6Jk`@GL)UVIJRcE10j[Vikk&bHr#I[pr.XJ>H6ILLN5]"pAU3-CPb.l.34#-(b>L]f]RqJ2;!?"#/`B %+J%1Hm]CSp'#)a$]XPsBblWLeod5GA.4Cc4INKcF'QdD*r*i6*tK55AiU.Bc4JTrTYpnV'Z/UppR"?WW?TSE(RFq*K3g3 %@7thk)ba#2!c&m4Z8o32QinOO?=J+U&PFm=`A!*SkU]'[F0 %C6b$i=r.P8^1c'.85"._5#=6eYNO!mc79KZP-9+>DJd)i&o*fUoi$7UmPFM-2Xk.14ak?[V[f' %j4"'a*-j/_27uH:N1'8"2?VkLXFgPQBH7q^c9C.W%#D=!Fd[ijc6]VR[3`&ULs,n*[$NP5SP;GZY#CH>at1ntf$=O"jG4VIq@XEPF?HW"Z3)8@#MXf>Hn5e0aCan?L;-YOGZ%:$j_!03$?6_ng/b,-na %[T(dK%QC`ZgU0EAZF13C#CpUL5dC!NN9sX;jr+D/%CI0LM5;<;/lj[!`hk))(Q\k2-_&>!JTGra5H7%I@D>:@=_B\Og0VqB6&35W %#M0iWENQehX5!&8hplEm&jWbpBTEGrj(@c&UP#41^3kVWPeLp(:ID %;JbdN;&6[1!goOid".h[3",sfrB\Sm3`-aE%Aa]>W&h4F>ti0W*I>L%/Cc^JV,k,<5kdcL5EHICF!BPVe4%hC*)#>^XO)-)E=&q8 %\/KI3ndTWe-0mA/;c':*AY^5_mY0hIJ_T7)d<,2-jS6-]fN>psLf&;MLF,_:YW1-]?bjS)QkJ;.8h4a]g?q336IuUi>8GfL>A>:= %-S+57at@cHk:g!Ko;KepgXigHN!cY'Tq/Xk0*[piAb(Fe"P8YJT8,H=(>h)2[^$rBi@rB]&ne-.+4_2SPdbKS:rB@l)K8nC_XH0o %Z>"-iQC1!]-472>1Id14nZ %lBVd7id>[de@m5'UiJJMC9e9u4`(bNCg/qdikjK,?f3h5h$_2dC35QSc;G+"!TciXYi&K$##sBO"K5M4J?q:V(l*Y>FPft74aI@> %]6+hqAaT+rW?7c*%4WR"WP'4;U+O9sc@uR$gB8o[dP,:-h-B;!L0M*8;_Q),f'@?1P]u$*X][-,!WZM5V%J=n(`O3lAJssc %H98AJT5f$Q8k]lC3)0gV;N-?aYL7=SKDas7KA0.s\eJ#I,'P6!:2uj*c&LuA+UF[L>i6pqGe-T#QoGZ^X/8LaTmIH19;Dp@/)(hS %U.]_WN`GbfS]BW#CS+!-ak1H\qX-,j.u--gg*h.(SF#SR&[/d!;8:"3_4r,bGoo1VbpH8<83^( %%mqou10;Yh.9ij&9lX8-I**A=pt\V`UskuLa)?)JC55F;ge]+Pl,bprUko:a(9eSZ@3ut9u3?+p8IG %5d5;A1X1g-[a%,G@d:d5D2YqV+G,gt(6H45cp9aL*gg*g;+s2Wi&D_6V@n)XKr8oLdj0^;KBBVpi+,<`Et4*EATeXLdr`!-dHMbm %&94EX$P;7GEPeMo8A>D*csR+5%5sO6iZ49+)$KOE/Ke7m4hkd/@I31\kMNbCNi']X*o.Rr'Sohq%Yd%nq0b&e!k!ft\HP0Q;,UKf %E!-$kSJs`oc^s_$+b08_hr6615.aHB]S?B5mtLFs7-_m5jai.FJ'sh#\kU/,95Dh8EBeZl+3NB\QFO_5?=?qkA"(sc60aY-XH1e(FBBT+SuHStb()<*^0m+#@c$b/o]-!SK;qB7@T_HAP3WIt(6SYlt-@etWk'tE@TL;3933nS?1 %idTntpS`Fk)nYL$l_XJgaUdfJLM?Et67#$4Eu'[^#b4#$ii-MpX#!5Rc(DIqHY42C)aP@"EU$B5K:\fkd@rWH+R=2]T"?t$<)0\U %bTN$n8CZO/CNd;n^b6t3M/C=k9RROV"=@:oT''tRMa4U$N.JnE)X6Ll?Q3t>L(e4L!=+9!Yt!8Y!V9o_6_+r"\CO5h*QVF)dE\P/ %BH1/W*WEa?:%e:0;Z%tqRqbTjOAVF=]11TI%(&P!-&[rSBb"`LNQo3FFZXS_clXlp!Pe*Xo[I0E<$"PR&Us(Do'Hf!7C,%7g&`a' %%%;g>hf#SKhJ$V0\tt9N^S<1gmKGBs8Bt+XoX&(T2%>WLrVW7)l.\WS@\`K=5l#o+bAVo(6b=HNi*H=+S %641G/UPf$dq91mL\:a/>mNLi+2m@Y!U+5J*+AKJJ/;>1lIBb+Y1uKg"X*N["[#rXu[OedGMW"_VSPaOPYKKp'(lrJmi^NqH>ub0, %0=ESD$a)AJ3Sce!erF'*u@47Ucf`<%i*"l@tQH0(IYTJX2)PB@\F %qrAQ\4#?3dRfLf_6ri&V^*1Jtl4G&rP1C+$P4*!JU!X?f<+3>@4>3:D-JJBUJbNamNCb)A %Kg@Ipd&d/1EY=QIVpT;^`oG)G#0fbVP"B)5q5o\!J#pJua'ibi.D: %1Va^7jGj[&r:Sb*^NG`:2=FrS7Fed@-\F!,Js>3VGTKT6VU"ZM+:Y^lqM<]KOV?EYpm;5g1OB833'3],5eRl\'7OFU0V0IHZ[)dm %2uu'Z'/E^8GQG;.2uCV=m#erO-A#R)`uc!@N3O4kQ+YO[kQYYl=s/P@@l!Q'P2X$ %f7Y/H78>Fl]lA0:4hLc9k\?[Zkob$k.>mA%s9@406?(D)M",!8)KL;j1sCLn7@TdG!bB %$4a4.>#*ism'VmuBpDu(hJik=SpDf?BUA(_p/ql;()$n!J@-=Z0rhJ,7Jr[*B[+,">#a>@!+;fA'#M&R_m?kZArpJt`PKWQ&6a=e %$&jKH32UoXRUm>\3fjblSQ5.XrJnrPfq,=FLm[-ZSH>/#5os6Wg(PegD>KacKM %DEG7ZbceA92Oe0K8"d4U_5Wh`dUf=s^17e+''Rm)F3NLW`rB#='0o%)/)uM5W/V!Rsq#A\.i!\6?\TjH1i$N_6B``kE:7a0T&H"qB*&pH_t00#H!aD0,GG %DsW"J$F#4Li6K1Th2WL0j2=LQ`P=@@U"M35Lr!e6W;M7a1(n^ScVB%/(Wd3+ACD$s%RNrNAfL\P8"`_l(>O'c\7OAi\D?C(pAI_R %7$c*T)@1b0P,k]:WFoGFqGN0EFqkP0iSZGoKR/T-nQbEUV6S2X`(+#I?)U`;Rt=ru0P%V4p3Q7L8\Z>F.C7"omQ('!RALf%4QpdI!3lUW^BmjX^?F/Q %bWDD"eBjMaf==q#nr7bSOYA\HD]-EqRU+3WCETUG.hTSH#GliJ@@JPMiKpY@4kt)s6>c@q %pC(hnjOJ"o$.Yg"c^(.S7VfZ]VHuA:(`$6'5-lWh<].e&KBujX19T@f][>\]7i,uD13n,]()DW_%)bP>?qh?FpXh7?>1POqea^gZ0:q1.?[YT %K.6a,.'cImV-\%E_+@f#O%7:*.8(N/+_,L>.t!f7PDY7q/c^V/30qQ %mD-(7e'q@,8dBff5uW0XZFf6Dq-#t77+)G-&HHd*6R/E='FY[q\79AM%G9?6Q:XQlZb3a*mH3<1bD %2nVtB70e_RG[sO`8F^X>EL8VQG4)0jDV@Bu^M6b;:fqK?LFt,F6c;_;eDuMp(s,o*b0S=dB;j&cCK^=<.""6;JPta3=58G%_E'!:8i8+lDCKI(7WE]O*qM(`Eh57S-bq7JF>8CHkXgFptdPCdbOQZd# %*FXDR#/K3kSEA0*b^CcYZ,9ZKh5Y*;>bTKu]QMW=G4Iig"[8^;m0a&_H6TD4a6U+OVLtG.^r)cR0t"SmD%7r0Q=)^s3W4C`p2Su#P-"!dn!67Sp"Z8j>n\8^!`2"k6dm1KJIVlO`+C%k=H]RJOMFRPdgaK7G;(!V;g.^OGpe%[ %.0:SRA!Y@kh>/E]c]\UDqNb=g5Yej/P`_/HR]ik%A+9R[Gl.'$$Gb:Ve]96bi8F#?EF\>Ri8bCGW+j`=F->F1]7Suh+mYC2m9o]d %_SQ_"+&p"S0o1)XXl9s0,@nIU]Q.-L<].OO$ldoFuJXPBsp>DMWL(L#Ug=d9!!W(o^ %8Y3GbGQu!Wk2KR[&p@qBnGDYKhTf>U4Xo:Zo)PjL0[D,%m_(NU(fG9I3u'B[l&MZU-4a37\[!LPNc`HM$4?-:@$unbA:&9\7:\J[ %KBUHX-=X=YHi0&!FHG.SlYQAN/(niaE(j4hm:&epGT:E-.S\ZAd@;4'ln_qY,.Q8`3q)\Nf'sohR2@(#>\/ePit/dbPFBH*VSK%Z %q3=r$Y]Otp>F\WCT$-<$-/(NPB+g!eO99+F=TC!Jh0rt)?Bh^ilk=oU4K/>C9(6JAKP3rraYdMF9p0qop>cgJH$Vs)0A9?V]7>],\dp2+Z\FUTcR1sR3qe3,9T[hMT=m?=?STA&b %bRRt7R!d;W;hfqFdq?6PA*sTVPITr2B2P&u=\7aQM[.nndDPs>FE)PCY#JT.c>i4qM9NbVh&Gr003A&Vo3ZM/9l@VlfbJ]S+;k]$ %7hPtgpO3-eI'@Is&?X\RPBeK+/:WBW-9fnjAh%[:aaitJpAf7)iZ_%<`RV-C&k"Z2g)/PFf0aI]q_Un3gS,mqu1X3rh,)Z+B(P@NL6V10`rX>VP+V %UtcU[%IWRrVG3;$n:1Pk[b\DqXS*9WgYk(/?L1QnVHHL%BR>SV0qJs/c1ip11NTQ7PM/HV]^3SVhO %EmC5k4]hBo'[*u7fd?#-qt7&QSk'P6b*h7`0RMeUC2!-aFUB\P^1:"c#n0qpNTSZg:e6WR- %jPo=)YYmUN]!@KZDCuZjk4>U.DAg)'bgIH"9P.c[pTbkpC\O#lJ=),+m/,=uf33kj4"XeO"&?6FId8Q/-%t`2bZjZ01hfR)5BpYX %.q334U&7B"9u>\?pcNgjXr;PNR.LR\GjMcTq[/+\fbZk'i_bh'pIXjl1S?al]'3joWZoP3@&a,*ddF6[1YKT6T`tH;E1)/op9>SpAa?f_S?-XLr]d0Q!;M`3FjK;E1^:3Y[nW %k9b2\g"7&gkhK2XZ.O+rB@:5YAH@"HVeK%0ehW9W*U^AWY8O3qfZR0?7#`@%Y^nh %,qfJJ4WZD)'IYH!EXbrgXDsVrK8ZIINg^1L?4G[6/L*9?05PJ8ZcY<`*JFu^^)J)WW/+gnX*0:8 %[=)nhBs+nD,2SXV&&@83^!f7rD50[=]=T=R;r=&[Ge..IXghBG*S;WS=;K\\?NFiQF=9CaI<(60&Qm_l'ct"7MP_tbfjcFr&;GLjR)bdL^bVkZP*@`7[M(Rq"#527CNAru$O[\$)t0jHK`Ci=L1'ZRBA2oB4qb`k$m %b5E]']2QMIpaq"h3\^W<\'4qY*/5a('N2WY;IdZLq*$QLU3U!-Z[BD47H%^o_SQrH`usX/5?821T3hNJ/'n %)[F5u*oOj$ET=1G4[BPRHLtOoj,TVh_c9TIU=(^@^Xe>DD!*%&knD]X(Jf:>[ZS!!2(-VjXLI=(P++5M>Wo9gGP,>^qN=Y2[,_mY %+mWiK5c8>@-1W+gV46qe)2>/iTW5 %j3tV)?.[D/HMqCYm3i]7k5jtR[pTp+KSdIEA"OqBo]Q(S'#SD\"9Ti;Xt@;Cg+\/1%4 %dI/cVO+i15k1?S5;eUCE_+aO'),)o5>EI %JALD-[p[+_dS`hXj&+OXg;G0_`6-YIE`=MQrZH< %9_%+B[r&5gUAufqQJNq'--\ZA=/Q8Mn>'H$=!)Kk3(]!O,_i;.!!@\SZP7cjCqFB`pYX5"[AgqqE).F-/u=OPFn#OV%36)=k8bpi %/1IuU+!?a\EKklYoC=/3*gm8RlgcH1*no*=^-D9\'O4Pf,oo1Bfh;1U4:,(KI"^t3SN6/urT50rfd5gkj=sa6kaJ9U]@3TbR8(`L %Y%6B$]VQ0&3ZJY?dcHV'3hD[.q>oV&.j,8B<,9-/ENF*(q?X0W!B,ThtZA&ud!\Jjst0Fhrn %/6LZ>3PdoOkn%GhnU`j>33\AEKCMYuD7:V_g",U'$;7G0V[VT]pS>(Ieg3-M=cChnk_e:Nk5&Ic5EBT/pc4`<4PP<14540G2g[Xu %7c"9_8SB1tV`%LP_@]gB3G#?20Q_<-iGuaU;>k:B(,i[Wbt3\&m3R\q]572R/h,NrZ\Pp2Dl)ak8S)ETfZn %E((3u[,"n[DnJ;]gr4`dU"WmY0GPgM7+qFj5')&ics8Up38u2mWnM[kKqV3X@X'80o/DG-q@8Qk/ %W7AQj1oq3.!+"Hi;h`:&S-PT:K`d]q'Si$b9qGRsGEGP.hcsCTSP@T#Ffg!SiL>2JZd/o^'E:)]DqJ+8RB&L/J=#'^P-:I&n]TR33H-9#*XU[kB7HP/&.pOO(jNQfI7*h#^s+:W\f<4pFW%0a]/H,'?Ygm5UX9]P2Y'&<;ecV/K? %F?!Y'T_]YR@WW"Tk1%gk\2iN[:;d22fDPKC,8+)^"acYW7ql".UF.Zr8GaAP,V,[)HQqc+:lW)Ql7ZL;;;k>hI)s!u-IE4O,.^<\F['qTV;T:F/\DngIf8;: %FCj?u3YIgEX5Z".[<1Hrp=u'BJ(%M0g+eNR\"4"!/T;<_\8;V3fun@(DU4RfH?>r7\l5&d:8BMs"FXSBQFP*,"*o]6[A/f12mF@h %ALB)Y!;E'1QplHMj:J`)lcVn)a1rKKQ^\O(A_9^:m9i:'6Z;BfFFS^!aLbr(Ap82-al-P#S![!af@.6]44<&5aa:*nJo>lE1."\< %39rKmYTs@H+T#m?H,b_`*+hSZBl0YX3fZcE?&o8SHFJAi8K)XnOWA? %oQ>o=d@ %[:?u`h@JQ8bX$6jACqfGp)0RZf3D8QA0nII\j?/+Yk^>V;XY[dPrRq..=gn %qlkDo[lGY74'F'.u*qu2=h-+V1P,d(.Cu#pF#;aXf$FLrn]fXp"mEHdU#*Oc4mCXQu2g+U5opS@n^(*&'1?2#^2r-cfbA,jI;]dEgN\FRF(PnjI[(l?4uSC>TYQ` %@elW^e1"2W.\Z&UpZR`9[Z^Q]ECUrnr&\s-0,WHKr]`a)45 %l)\64Kh!-DMVDD,V5s4Wkj2QGZL`pc5H%(,IOR$*7-fOlT<9,,;HpP?AUn<8/SV37+%3(F10th%aaUq7i;KSGaUW0hTQ^ %&;JU@WCol7_bKad5e=IEI6qj/n[[4`@jP.@Hf-DZp3n`:\'0-=E4[_dH-IETghuZ@MS3=EW1!)8?YWF?/M;%)\,OP+;(spm_Jga< %iTAUNa[U'32N %LPOKhP",m$.]S=t[p7f>XNFZ;$Xf,<(MTVs`KJeqOVH]+@uB4GH5(+@CCUX) %>I3G8);u,![_iI;5o<:]0kt#r=F;>saKt:!+@r?XHX^),htWC_X20H@H\=b12`J!SnYf`]c.#%k*csr+=u3B]F-F?g6"Q&+*0R0= %ZcD\fa5JaCmss)$o&e3RZpaKAS*6j4pZQq%0qCmgQp$Y\-,H./oD-WW_F_)sc+2WLM^:Jhm1igM(q`B*+aa-CZ\! %\YCJ?*N)8V>L3V7"BP0ZG#4hpmXVbR>st$p3[d.*"gAd^bXu"]V8mJt,A*u8'/e*+@)M5,@nr*\@$J0nBj"#D&N16B;uJ3:,ti]VEu)N!HS1CX31Xb]c\[Zr0a&m(:2s %<+=B8nUT=!05+Bl:0(Hn*H\'qp?+="QUX`]1 %jc%*(e/f800+\$sLUc7gf:9(LiWA[*1=;Q'7VL.p?R2##[*2%ib&BBff!pblWOc_lPmO3@j2&B3^R4rofnk2)#I=i`>.M40&4mnt9nP2HkrVLsLM%H#8pLhp-j %=R%*q]ADt$;P!gt2)e**;S"nk]#q7gPrX)CZUjE^]\_h,/E0(*YLaU9C/0C%AsL$3bKUBsjQ\ELC)M %DXn]QQN[8;p`CN@b9M/=i!4UcH>,gJMqmBN83VC*R%f;pi9/M>jUQ8l.F1gB9Y'7Zom\Y7]>#V>N7`.^N[2ai9 %WJ;_)lk_ucqA;5-Lm?9>J;a(pD(AVlIsG\J+7@/jNW-:ZK'aV8pEm^NT#(]h"@\MUf00Ur2C#/m`Z5kOe=.1W %$d1i/G*XL=f"gjKBU^gk>J-OR%b'Xc\$cMmDpehtg_bSb`B`0!aD6R)&!V<4eMn--+`ZI3hTi3`7mV[O[pn9cP;04<29^ordUl0. %Yd\dQ#*$:8/%Ls5JZ@0o4B1"[.!mh4S(67`\spDkO,^A9:tQkjLA>N3)IJs=fSXX`K0GZa?uP/6kaU$2?I+p?eHb3p=<"*B(bREb %,Ys]5lG:PGp8@JWBLssqNT!rD.Z8LcJN5&YgS$73pt3j0%N0cH=jSu;`AVL1++WVYOl`G*i=]7$8b6,u7*YF'*>LDLJ1^Khb($rLlR@n2`a#^t_PM\:6&bjrN-;,*@S4sZukf:S/;19&jO]b>M]1;Tq>#@itM?bI9>HLR*T;u@_;2%NrK\B<&0c0/B\bNS4LKB''*$p,9ZO^%Uj4q$l %Xfc9,LE$:>UkL?rH:H#f*hsjJh)k?Zg %Z*3i-JGWHLch/2*%hNuBm&Ot`D]s>u/cs4e4\':kj15b1^mFTNX2sj3;"SpHG6ObB5jLEYHQW#\bhe+i2f2h4d1sLriAS\qbgO$9 %$CBc4/8Cd6>TUPE2kN++QcJpmk[1TO987IUb`<&0l@bZXBE#pflBHNAa=9;),@o,e94Q&SGp_N4/.j8!OF.i:qX*G %(27[pUWR+j;bpd!6p\t[G*tRAC^,S;=H^Gr$__fKb9YC?i=@b)UtP(GC.REHrgN*0$dVZ!;6\g@9ZLTsBkCqC_+1M5(KgYp/.6mg %X4>,=aH[VHO'T!'HNirtmt79"N>8np($L%_"j(0LK"ZqK)m9?b1*.I%:)@R`tepMu$oJ,SYU)t'$hf^Eh6>uJon-!\mB*ITYXisoX*_\I?uG2]f[ %c`HgA0..`[>'ChHZnCS9P/8kI_mT(U,s$o0%BRQs59r#K]siDaH3sAfS$cSs558?42_-l8$ssp`TW_!\4AkM;omC*fSu1H?a-5ZH %]pb*IU:f@=Wts',U$cbN9a-UQ=ut_nL.*-qWi+AkNbtV[O/k^fGjL23mEY4nR!3a!j#kqK+h:*)G3XWep[`(Mo/a")))uj;b=n$+ %>.CAsdsN7jp6g's;=Iu)EM*.K\Ob6QSqWe8fh4!dgcf9j[s-EgZMTC4aYOk/M"faQaTZ\rClkOe-,pl %(W/D'f\Ia][QAfrg?o:AMS)_4iV@f&&!%P/n+O=g<7Tj+@G1MlGsC4%oQAcZDf$6#-d>##]<$6+>4=@OiZ7r+H5<)!bLM3"/2rU$ %GX7^62ugeeomC*f)Jl;m8<"F\787m7SQDU(\m8LN?SRmJ#A^S+6!ofSM]JUlL_@-sh]UDXMVV@h09A]U:3eS8CkE\6V %?pJ$q*`.,_;+>QW@(Y87)me(\b`X&QOZ<3;g3KO5r$Z/bDfL=\?pfD>h02b53/mn>n(pC5?;'4f]tX.:`%>B@+Y*_X6'L"d/[/l)1RT&Y^.?TJ9khu/`/WbMM^CR5mPgl'L_V\:SmA9nb'jA5C1[0AcMt %<:r'J`$Lj%e?r1tY%;a&"M";\LT*EkN!3::PUf=1G/s/?d[>I&9VC\A97H %beo-lHH$g!]u7&W*^Cmge^!dJ1P2O2c4lcV^2V1[:>G"-RW]O^]>4;r*P1%NbFQBlOV9Tl??aVM>j0DPY5$fVC]*(3a$$8g478He %gZ.tgG(3LMB74#Yp99;SjM`9P*#&/BK='7grOq'.QOE4WQlLN%`k?BF/iUM&"6>8OQ=mc\f4qhJ>P %q&8X?LgJqUXVdGSVG]g;CTRBrqEhg(UH`%.bVd6XWfG\N]`55Haj?B&a4_Mm6mrpq]`H1$nd&9k'^o"N]'f1=s/s8f_S>iLgq5+l %27>OUO;C4r9\,c_4KflOcd6rGMYfbMPp.!-6d=.PqFPqTE@P)GaoFoC*h=X"B_140F4W##UWF2lXC$B53R-oo""2m(#5_10Y81*@ %*%YN:!,&+YJ-9"(?^bSIRj1XK]qef]iM.t\g`6b^oF]R`7NQk%-&:^1b/2!J].>nQ/onr4dmmg.,3(Kb]TQ5)mmkI*S`iH_li*`j %(MCPG?oYl5T<7aG9Pm72)CE)_#*b5jJAKGdF_P;)!/S9a#VZ8SC0d,1EUE?S+qrQDZY2B4D1IR8KgFc[i9!EELJiU_HV19-c'<`B7r*DFH"#rW$f*2HNV0NPMWl1BYt=bj,= %3X[^2Yp)?DIN[QiO_9[TDS)9GQUa*Aa0_Q%$:X",mDh`nJ@9-:;n,p((H&idmi#B&%BW.,S2pY^b %Tg13n`LME,eYG:0eEN@BT)`/S?]Ito1@)/sNAPO.pso@[Vd!KpeesLa3-GZQ*e8_u;dkg#9tOP)V=G5[S4n/*ZgHSC8q=7E`[Xi# %8aME&$Ig$m1IZSTdtJ4B@JL_e$MJ&pjZrC/hqWa%e%8,)"QeGg=QPIo#+G_;)sQeLmVoJP4VPtY!8*#qS?skWA5MGF^%a'BjAbT) %.F+fi9,[I@K)4=^,'2>Kd'dQZ$[VS-01lY15+YUg'V5A?)k/.qjbVQm#2[[Qr9([C\O^H@oZIAV3G*!GUnNtUmQ0fD8sr#HFFo/# %\e^Q+`h\Kr#Hok@>Y!S4>IKorCFnC):m*oOJ>fHDY8FGD=qoaEk$.es"a_"g3_3+TaUXRBUMDQ0GB*7oX\>UG7!JTYiMF[S4`FB6 %Q4P/^`Q8so]*$@r0MV\[Tq8>>[6fG;#-:Z=._mkC+f0s=>_JZIE!rD=%2%EaQS\/(A^ICUqpDlGMJef,jK:V9C7$CsWd`[KDTBW?G/YhLd(]gn_9AA35m<`&E@`PTEb756PAidF+D %-PR+N5pc=&5ui8,fGhE1-/k^QD02YfKu&ROj4i`P'G_T/*sdA(l#=)oJ>Pq=hg13Hl*jSK8n %cdJb9BXJOdVB$d,8\@$EXY>8*N(eb*KB6eA9#fI:X]XcS@!"to?RlE)h(]#Wf(H9U'\iuWb$--r*#r`Kl+mr=%XNe]O!(QN[E[uJ %pp6OZAL/;T7)r14mR'+<"A2m_AZ2,B.`5:HFRtU[!Fu)SL>t*9_^^#tHr0)h]65&^1*Z^6LPRf;-UWo7i"AB_@73lB_&\dR<23gE %B^(1U%;L`+MQ@J^csJe1aoG'0/oFa %!$=8ten03fP/m`1.kSlU1s\U>?/o`/]]]`3/-4&t4sFjqr[uPaG(r-+G0#g\@(&H`!K2"l^gcftk=b]V%S#pRZU+%Yi1bP`@-[DJ %!S]dIU.mnhbqF'I,!a*=i]#;oH\.K_g''LpM"hkm3N5\0g.dDWfXcEK935gaWZg>V\$X3t;=LV;7")qi#%%/?E0e5>n %/OQF'b7=s4qJ>`VNde+o_F-IZd#6Rue\ONt:E#\i42[*Ws$Le=#4 %o86g\aV/V^!(aoK*bO.jF]qd4?OC$@DF;[:PBS_N:m$89^]5^p*\5$f8n"n7#I9"oIPk=2]YVj3&49s^3/'IlM+6.\)26"FebT^? %#C($bf`;*j6;t[*;aD.'i!`V)\#I1S(,4MXkArMR>cSWJ.c!i0'WaF!K2IO=rj7972N+Xm/h30`M_N$k&GN<6?VAKUE(&YfD;1&g %Ykh01W0XRd"&_#\R$ZfJ*T/sIAo.d5hMZqpA8RM)k"#dj!)JW^)r"XO9)aq0T(uO'p6jK %)G-_J<[Y[h)`q0?AAAL5QQ:0N(Q:DQ0I_&d5eZWiis.T+OQtYG/8:!BJnlN=i:]an`@t>H[]fo<\-A>e(WjZ$Ch*3$C*L0,#u\C4t[*<_#s"^G^+7ceFY=b1<].\l212S09s-XHNQL^LM&^ngj-2_i3^P66M[Z$uGb(UF`fQ07TM-E4N`#1(sF95%$p %W;q;9mq:-UXSXhk]YJ0AM3f!2InqTAi*4s*9f=r.%3\]A'fO:W0F4QhkO/G,F!qOgpoBH?XA?>a\1`U@eE"Og6>['q$Y9B4aCA0d %kqtiDf_8iPn9\#F"l-3#V]=jKfgVWCJoe/"gDQR*<86*'[/5AR6=u?@$(ftCDkJEd,8@:A(OJAPcAN*[gXJ$$Y %#9Jp1DSltFntL_'@L%g!mf(k2PC)c9%0W`r$4GJsabUh>q.C"jjZ3j!C^lnb"==+O/?4LO/%Ha/iKug_'c&66Ui.esb %\I)39#U`D;gLd\#"u%s)k$C?.8Sd*?:UUG#/,RV_'9MB12Y2AU@3_L3AHb'$9cuoh'Ri/>6Hl7[^e9jWTUG4\8Z:?&%99^&3`T17 %oaM=%0gU*;ZZV?=M8B,N!h?7@4!5Nah)aaGg;6>2">Kpm3(eaU=Bnhb^c8Hm30c^1#?cln)WN[QZQ7GYFMmPYnA3HQfh3A2X*pi@ %=il^;R"PN6<$;UdYYtEF:Uc3Q<,9H/TtDW(_>k!,N/?HD9R`(8o$<*_:3e0XH1)B=`XH+m.uA'e/rS9UH&$sL4DmiASkVt^V$:N% %kOfe-i*o+fI^i@\%aU"T#&g@geH9'VXK06n.&Q1(WLB]sSD=Y,m(S#B>H44k!OFs"CR\>RJ0\W:YHt86$kAB1G7]\tO7M/'S/]]' %a8fAWb3:Y1*7f/$]!a\6K*o7?1'h>*V%:(:7lFa+ad/"nQS@K6:'E/eiP%m`L95/0oo)5/`C)U-L/t3$#.K-H2]rg_4lfnW[]M"] %8'Bi%,P6q-G$m(!cA:1[;UCE=VQq('Tu9=4N$(KIUr^hNm\+e4[-UO?d7gf79C5!WEARbeVR1kV2A=h7-+mZ/FY@`"j:pf;`gFf6 %jAc@FTZZ/Urk!84j3SB0bseBq!_f94BC@U""j9sSm&aJr/JTkQkoF<:QjRedenl>m*1C5KXd((!D%l4oRLIT\k#[JpUlaRY\&J'( %'W@f1Mf8qUPaEnS67-Y`Ea&[N8IE#6m4\_G>"XL+H*a'Kg+gU8WDF$p:ms.^-I.-X$%B2B46`7qqEY?@`b[speCq%lB'fi]*=dlF %kgRNEXj8^13Ddl)f`AGO6&MhoG&@N7QU,n/$V=TtptDGsB6uAYOOFOgJXUi[C3#RB<[ZKWF#7ioLCRot:!"gs7oIQ7W)&!@mZ'$X#M %>:h=f#(cnP<$,)4#ubaH9W0Zn5i1m,%:n\Xi!!!d!Ra2ElQ@L;aN,])PY^rb;:Q5c=MUBp+RUc%),[';3#8_TG-K?Mh:4Ba?X,'p %SAA+pRK@7\70.TBe8jiC+Q>2UdngTTM`dpq6SlJ10h[`UShd969t`kDi)DL,F3,%.i)7s.QSj(Y_HSi94E'"CNNNStljf2ip7NR% %0i=K-*+lC80R!a2O$T3m4aF1t;O])7ZnPl>`\UcWl386`VEs>49OO>A5@*8VCFnV"6I.A`@t>Cl9i%tT42G^t1YCF(E,e[c.]Obk %\1_I\^dV[I6YcTS<[tRe("al/.pq3K0F\kDT%#\'@-15*afo*XF7&6Vd\,Pne#8PUZ%Ol\Iq*l;_uZ!!h)j3<8b$QRS28"D\Em46 %.5)g(LJ"cSUof/kHQ0@IjJc2_94jRnL[sFZr2b(/2Squ2_:5hB!?62:R,m$00Etqo3&>-Mf=N>r%c=m)cPI@"j"tlc`R,'a)GR37 %UY['j'Kg82>WnQX7G-J'I;aFm6qiL/0pH\he'-lfqh?/DEoXIuf@.*C^/YF\*RgAT8oPR).UXQ%!I?`@ZkNM(W+c7WDKLW'o.&Uj %Am4.$_(AdQTF]RN!)sD*g8:dkGo?-CZE'K2`'Yd&%e@P.+e8blV'[W1VO@^@jJn3HlSNU#A(9<"_g+0nAe&s;itA:7&sX36bFpA= %g-MO@'dEao$=(02YCTHK,r,->+c*$6Oi>8!,F]+R&Y'F<4Z7#bNqJ,j]-;Xj9uE$HD:;D %.;Qb9@0nI!$#3oMR(K?09=NP0TI0t).DmMu/i9o'R@(!Wose,>nBD#=oEF(%6$u`IFNL?[.Y;ui>06P:/o8,r2'nI[;T>e9'Bs8- %Tno*c[0[R.RLt=cpa&"qS+_XNW4aO0'+'Lr9;V]S>+ERe9B$uOp[j\^]San;,aUj*qlEX)gm>),3>@g\0t)802q14fiaB?pku'nc %1"jFLL8A)D*D^u@f^7[][P$:%.*'dcBf-,mJ6br,[uh\-6q")^Y^faU6\S+?D61e[Vn%oCSj@MB5iNjm*$40C@YMUcK:S(jd)0[^ %>,#kLM2iJ-qoIDM#8!/'3'M2sbN$@;4!0:g[V\WXW(.JUFq2;_Y %5]g%\":7gt/E"^f3/adO?rWEUJLhMn5R1IloastqR;mbI!"C=V#i;\`!R/]!G-Lp[dn%'E@"k"T4d-fP-Eo)Kg*(X*H)*>=/^QDL %K*'imlq6CsQ*r!cC'_n'.!ZCO(`2,A^)epO.ju %=UE@/!aE'#)Fhk3`D)=)8_?R_L`*biLhXC=@P?44;]V=!]Pmu5,PWW#Y,c/,aKN+a]Z3;N^eTR=)&6dJ3[MgeY %`"_;W`\@)4Z@f6\#;GD2OOEaFS8p`);@b!TCgCr>C'W!2<]kaXD&J,,@o?X.?kf$1+*TnX[d[*L"8,^oXhEeDkCK27PD<%;82HfmuM.fK)dh=n2P05Al[VZ;@C1(o[OV;JS1rW5Tc9tlh9NTPCE1YlBVo!s* %(Y&1'["Gs=!LO^&Fq>0cf/.H")5PC@K,P$.>6/q'3l&/R;sH-Ag\]hcUuk[PXB:)U5JNI0:)f=q#_"I0NM@*m9Vn*,6,kl:X3jTQ;p6UlH&jT31.?IiE#-i+3261\AZot!I8tlG#Ff%5H8.*Tcs6al@*(82Mrp_0]&f"c %HCS)QK4(Z//jP/b:j[baQ4g<.__L0FMq2_Hbp'CU<.i6t-j4Z2!'$n$MIA^M.YgUISl$Ii,Xr_l:V^+h %[ZZ*57kU7hCQ+fs7?rYnk--^AcXGK]b^dOIL*02"<8u".H!3, %HIqhJ48O`ZB>Z;`cjUrn6d3u5gN9^KVa!Vu!Z6hV7r^+]4:D:]%/utZ9Zti!Q:5-ETU!?.Tpu(""t#_CkLW@QE\XZA;hch4^/0=o'*&nG[0>gU6qPAN$l4hc"JfU8ARA4 %,$AAHQ?\D2A=AA\+KBB99bWe[>t?^A#T)UIQC.*@_P;Dipjn[a)-@dHTOPd!@H*gDH3f&G'\84rI,3YX)oW:D[I%QR(g$p&))hQX %;Rhk>;5!WM1ppkKKiiK7kua4?TRo^H;q`/:_I.he4E:'?9N#-0X1W9BX*$M,\#/1#ssCOPUMm$.rP;3 %_J^g[@]:TVYf'*A+Homp0Z[a^Qs2G-F^eujNT-\/ZVT]00*VntYVk3V0@uc-3'10m.:fi2#KVqe)SCT)=3j;VVIK\[Va`!'0U3#2 %\T%F^*GF4B8dAj(;EZ=J"k&SWS:@!UZ9?0Ol_%,Hd9GKPnANADD/6'-9gplH$oMau!1^B<5Z:26nX)4=;mWg[(U>@Zk$/(d#rJ)- %rZgY5>T,'d[]GEf9%$$a;*\$R8`\X"+_W@/OUR(D5]ML(]I\ %+Ru`eOBPl?A7UQbc.W8ejsa=W5">V%1cAYlVN"/=jQQCX0h.5'\/ge+3n(-^l"K1(!H<-eh3c@A;IS\n4K:[,ZZWM@2T]gR(BZ&Z %^K+jL;W/k*X^-06:Q0ZSfI?NY/ng$'hC`&o,c8jo@;hH40(!mFeoU.SQ)#+HnrUYUQ(YST_A<<8S%[*@J?E\nPuu*#5GgL7BYh;>jCl]/WNR %8#8U-b_%MT>E*G\H8j6r4!"d>FANpke83PYJ_C8dcjhY@!jdd7AnC3AVti-pD.!*j>FUM\g_ZiU5VXX?ETfd9ApX3RlKh"B"AF:] %??]D`-KU6Oc_ZQ--P&J1"'kHQU8g3,JLZ5LFDKJB%sK0^9$Nl>GqubZKABh7SoEJ[M0/F,g&(q*ACII%ceBl9=jrlB4@\@+0J\lQ %Wrmpg=GM+9r9C0-HNDmn4QrYsUB.hqkDlP(0kn0]V@F<)(@l0NF4j-MB8/N:@FbnmhIN$rfi_q<4@BQ,':<_b6#E0A\-LU_>.R\h %Z$?6:!)Zf.WsrVeS&IaB#'rQ;H+atj6O0$V,B(NA1K4b_MPsnfh#\WZ=H7-U/XccsC9U[&b][qqUs'"V)P(C1Xs'oC[!m"3R2\in %[[;(ur@/_!7\%[(2DYTF=d$1hnHCrh^Sg;3,OC&EH8bG`64g%>&h#&^$lGp69A"h:kj;cGXi=RlG$jCeZc_\n[G5Ts^)Y?,L;8_#h5[Eoc4ak1sbc89`MHhUX6(^I`FR,j_0p\o/8M:5@CpD[Q@A#SCN.IuK8dc#?[1I;fU2.IGlFsW?#m>8t5_b3Q"'=/3 %87Qj5!CU_]4#U)E"Xl5W["HAF?O4Q<)NF;qG(%!\$*J*XL-X'Wbp.N>Q<>FQBO!<9^G8eP.l,i%$0lKGF\=>1'OE/IM(8jXR7p_m %qXPD`_+p6_@I+I;E-LD[j[]CCnSX;VmGLcUi3DM5b@RV/-]?]'eef/\[P(s3+b7`ZVW[lU:?r]!\u9Hm3D)h2ns'Wc(-dJ %A*mZ;cG">XZ=tXR^V"B?dKc_a6k_Xi%jrSei$_4;:2QO`]5O@;eJ9dNMjUbpW,'c73UYq.q$AZBR(/j4rEYgJ$l0i8PJe)_!5X2a,M`*^T:8dc#7 %;a6.Ub_u!@-Ckj#AjXRSVpTqL7u%OH5$N.Y4Nr&f(u\Md7;!]VQ6hod4T](h;tj`"F\%02kdE2/4gF=X+hAn98I:\hT2`37.clZ2I!nB)Wm %9n'8=\R\C&[N_F2aF$VoI9=5*_l35[*@lScd*;`$`\sSJ1kYu?ib@EAVH\dJ;THHO#B-NG*#5Q2i+5#kfH&0i/`Y@/B!BU@Q%F7E %hiDl(G!D4IP]-$9e7t;gu-OfHhT$B.S3o:IrPRmKBL[htg_$OO$GI$jhkd44_aY?rl1'Y5E8@oM#J_ %?"$d%(Fg8j31m6apBkYu%_RU\TgGq*AU3n&B6a8>1,gV0&HHG>;0sO%,i"O*eh8gBjUD?4fS^j%"B\M;L,rckn&tiLH:i7&0RC.B %;0.N>Ba*S*aatC6'S[+(#[\@h7[W8[F_gPOG;+cMm4#'beKEei)^A0W-XBbnO3PM3@8[l\'8D-J?Op*h+0u20NSVp6$ %D5mRJQ$K7cZl+8FTt+kD:N3UfQ.Xg6FXJh#pVQe8h,L.N"#"]8CrCN1=MM.T0M,L?qYru3HgX!FLcUj(!il'rGCjEiSL\Jmh1uL4 %.OR[BPYcokGZe9LD-jAL^\Bu=f,Gum_/?QZ#i`_`L03RP>0kb?I+J[O*t7lRMf$-G\8%`f^o4SVD2Y=lCY^QC%dG/(`9bY:_/j-:t7>?8*"!0u;*ARRAa7s)QpS%p_D=g0I2m %njZDBdJ6o.3322rX`Q!]HYGaZ(H7HQS.[t"h;Sb1H]?1+K]ZDt:LIBrHJqeM+J(qFQ:A$!GBDPTlFR^;NjMBTKmjEus!YCPI(9#< %9_4=iMAb[o7?]:#)=4=3YuZC2$L2W,Kk*_aStt#QlGTWmT8Z3O?$&5?r/.s[mnZt[D3YTo%@2e(PBSg-pALeG4^J5Lh#l5oDIC6o %X=Yr?MA'u39-GEQXa7ap_\qj8.i?!C$aiiL%CKH#_pXMM.G<\uMY3@"6(=p/L %g:kD&We4g5E^)p/?XV>DkC9idDtFL3gHj0DQiBK.+6\niY2jTtDD)8=`?XUtSOFc.$C$-U$CptZ9ej-G#(GM-ITjno[dDLba'Gl? %[1eT#r9mbBh%IXJ$h)+m"CHNbHn6!^+kL-%*-gPHU=J`tI)CQ<7c.1c-PceanfpQ'.q>$1A'bqEuV %DTV#&4kSskU:;D>1WC-,-&lLr4X#kGc2&?['_g*mlgjON.e;"]Dn=:3G+qc&8;X:^Vn>K\h8C77V=luM)j%!6"6Ht.f(+,G^#F'- %d.q,TOf0nt8%/4/S*tW4#ens0bO'aD)HUHk8T8>?l4,@tY1O5SE;F=qU\-D0jkMRJ@WVj`=)%k?VnEVEO!#jTYpF1`a`'nBPc<\c %?[^BQ:JEX/pJ:R=qI/aqr*[UhqF]#;D:M8genZc/^0cMZb@XT;(&)1Z7Q+ItT3965[[5VQ.Ocg1gTG,0EZOiWoah"15VcTbH,&!-@N?;i %[@\_6!1s\1X\hU7'Zo/8KLV`KU2oA>N6I6>N8'`Q5nn]GAS6J8FS!NjOJp\W<7A6,9[2DpHcSlFMN'lSMW*>&=2fUCm.TE=g\X(mgb,+ %E'T0h]1bIXM:9%q*S7a>U\<>SeYMR/]nJ;NI)>2GOVEn*3R9_!>N=K:E4^1/G1iM%]e#5A+VjO4'6c!ScWsnI$/^gY&!u((eO(EX %4qYcg"BW]TgZ#r7LJHarp21acfB[$cs!5k%)Xa]C81fl\'5NWOaN.F7+,Rf>M`t?n!qMG)6jQ')l4STj_K->90HH,Hg/a&b %f1o[Cqr:[RIelCD#4=tP3p`1NL.7Y+hU^bD]AeT;D'P+/\CiI(Q6#AY*0uDLpfJl505[rr=0rufHT6fIql@^HI,]oj&Jc`Il#]*NQn\+jY8C$HsYSZI:n6X*?`IHhRC %91>/_u %V]j3oSiiHgS)%r&]?U5K*5>0F %X)u7@>LqUc\[a$)aEuUX4Ol0\P)G>2YEe+hUa#"#CjE^J4*[D7'OA32'.aT?B5bp=^=OJI.qL!ad:E/ %?8m^T2M]h4CRK+M`80RdgM!L2r%^K>B5`$7bI'8K7bnG:7\*)4Y$eg,2WXD1iDJDF;&n`cEG932&aV6%l1H'PDcbt:h`62qeRqa'uX%]K;pk]h;:2,KSE[T?,VNp5K_iX!DlD?;Bk$/S9lB1aD<0:T-6#=q%):%3tgh\BdcfSpm>oNAWUoA3^=1 %%*#eMGP',$!hh1lOi2D6=j?hUKQ$#DB&:!Z]&i&fk;BEM1Z)P5!-]c#5-(!R[6\VhXc:Bc8UOptZ]=t[!AThJa?\!% %.EMkdR>sBlKEOFM8_*4T%KsleiL]-:CbY$fW?a.Gk79f"EMOBs]k-AG/eomQfpj4fH'+Q-p!^]ofD9)\]J/D*=Eh[D(OeM_afdN# %r:ZFL\,:X4]k2/*0dF/[9g8034>+XhTFHfajLL13qjZUq4&;uqSTWnZf1+Qb?.p,rf[ib^XLP-Y,\@Ug#;@+o%RnHqrF0nG:8%?N %mDb\$Fhs>h?!!/,p;#L%\_C8Jb4=kW5/4e%r@OXJGl!%Dg!a8%isbf?VBck)0L5!lK"`';kS,V*HPROa`$l5=dB-Dp4M&eOhY`ZI %keRV$+JPgIokI]=BrS1[&reGKe.M@(%kYl*%jZRDV-qbnMI"@'q1H*(9lg$DjM,#-DpsL`U1(u;lm>6Jl]utXFoB:FS%WjSX)<+= %UU'eYn]u,lR<6Wt2ls2(n8Diq%.oVN:j1?rEUNs,hKrbUdRoA,Rn(T/`9^cHBnl^-"Tg8A6n67<7^Fd&?b70[2H=Ct--=hX'8Qf? %!P%tuV/M %QNfY9mk[o]8G4WfRW&`];f4H&eZ)FA&hR6_J3lT0qO1Z+ZIruVe1eZIWbfC;-lHko)pf"N&%6)2%0=o46L4BKs(>7 %^X$h:H#^m32uH+<-hC1T:$YQ,]5:>d)@qef7="f(8>l@,/SkDq2Qh;[AXJjOo.nYiRgd#8N8%pU>N/JE!T[*PlpLX\.>.;54TKEH %[]'WP."enp;VDEIEU-nqE@4qc[(U/oda(+dOZ$`b][+_Uf^-V-]HJV%&JQT_S?c!BXN4/dP8;M^ %/dd=N%u1h_\@qk1a1'qCjR%&,Vgcgd2[k+D^(7:FeDB?B]l;1#abTT8a/V8P"q&lUn8g;5)hpNAbHG8lQGR0IiY?%09,:#oimclX %W*&8Egqf^=eqGF@IttEA`a/:r6o\[Ihd/4fa#IplIrYEFP,;\)R\"poFtHL9(m=G%8]Z8)(qK %1gT_BV$:uk=_`[-&.MI"2AcOd!YJus-Af_O+2Q,1LmbsEQJ6h1ZNhTFh:J?MIX=0$>DBe!?IQ%3S(CmI&U$for-$R;Ru7\X`NJ*Y %noq'$#KcArB[C$UF=T8RI0]9+euQYBYZ9U9ETWbL[/%X\ocT$-7=_i%>mWKY^jN7DHn&_2C^3H\m %!\\?cna5`?hsQ_u?1k-%^J=b!gH.%DZL\OkTeb<[_mjB=l:GS[FHsB#P*C8l(1uqDlbFurg;i]"mVtG3JDE/bLhYN^EMULE"dYIr %j1f;rDZJ@o.:C8P^VKp%5UL=ak>F:D:"S=qW%T6oKn7#%n(h1&Y1h\=T-iS(S8PEQpj#5ujZ1Q]migT^r0JH/%86",4P.X6;eAS5Ca;2'"%<\D %6g*1m0LmL6m\8[.I:7X0FHU!g]NM?6BNe0S)SS/s4+G;LjsP3\*"%]GI*&Jcm$=LJ*,Trlf=AMos'f6M.t]@*-985 %b!am&of50;40@55m>+a>%RpL1Nu!mNgh^H!1TnG7U/[lNPulok\DuoB$G9NDgQfJ."&Bn`Ng"p'SrA3^N:B\sj.k7Pj-NhC1-[O1 %eW>?jLhXH\$SmV0TU%QR;(HM\Q0uTQ!DsCFSG?2NP68/^7J4f:g%fP&j`^H;Qhkl0]\,PGr-HrD?Web:Xsocd%NXg/X`<1?W2EYB %!d7jQGE;e$D3Zck`:kg@=_#G$RMM>Jf""^>B^pG0nK?HXZ?K %UAi;rY^sOZmZu$L/+Sa %F3Mis:N$_&koI-JiA6#7b@*:b<1`)[7oD1M?S;OO#pgFMRAnOI=,j@r+r2c`6Vf%-`($qZqZ!R[[J.mgMe*M,p#1+EfESjLn`K\hRP'^=LllYt"Gm2It%i %qO(d^2g31-%_CJ32uE0bk5@,.=]B;VElYaMCp%_D:Nk)cCM^W*i)Y`^I%Yq!^Ac@+08lc/gbc=n"U/%`AlIqfgifE/"IhEGG%L:- %9>B*-=12YI_`P06YG(;j5nCUKmrfC#5L1qao!.YoG.iY[s33U^m"m[5k@LQ^2XfhnI=?O`M-HRbj"E#JFdr;44_SH_pW)&spbgn= %rZsf[/7&ahDC9r/[;\7E4?e22G!N\5hr=+l>26:7lN3[oDrc/a`I0pMLLEqi-P,KN+R[*kpbprm0kPZ&@9M2.3uGt#FM3_!p`8dH %h_OASWGiW_)5jfL9_UNp+mBNnf9-&[[WT?4ifc:^=qtdYHJ`/.2lDT,k6T*t["^[X,5Ku.LmMA5r %S0Tlg##:_6cbHb\/@f?`m=N!Tj>Y_8bNL=64Y+p`bW?gN-2d>m&OFh4.e\-[dm2,W,PSjhJe=93J/XqfK]hA,L;V+KgYkPTm"47L %af-tA:W$to$Fk;MrqQ1+X)bh$[qgE(0Ac&g-\f=e]3fe1HadQAGm$`?Y$jhkJ4fD&5I*.aa%PtO'S\Rk-m>"%0RuaX,'P:Mi(&!m %PFihKD%1"5841Drg+3g&i,@^/$IDsgFVK=hajZu[TB[jti<"=1(m/_QnRf>hClLC.k]OYRYkQ,prPDI#k:GuBO4[@1+b5Ig#dK2c %AHpqUI?b&MmrH7k^'?;EQikulc(AqtHKO\8s4s"d"L:G-LI4NG,PT8l\*:].T*@Z6X9rZd8H#-W=&]!HAR``1([s@8sAs!i#AYVdEgha"Fm<>m:T5<.5e,K:=Q:8:,I)Ga?7C53kJT"n/f-sX3d)aTdU79ol.TFKD %X]U;>%S\$1G/#ieb5H:XP09ad'kksr`aJ=:UB9i^&MDe7I27kDV_E:de*JDuqDu:uE)($YQ*g@9a`"W.RuR'Gkt^R;o@,t=^#?dZ %YMSb+BhL`A1E+5=4YA^O5FS.QlXG*=bDfRKeiQUGM^Y+7+:46Vb8eY`]Y.I$2llVYY(-$nqok$C.98RDF_f'(tRm,d8t_c>[GGa^A")Ks8/l*j?=#noZ\rc#TH1nJnFA0+0!dT!4Sc(LFU %T6@ChYg)fiSGVOo>N_#Pp\iqXi9aWbk&njuHZ%Y[p3mJ-XOljnhX,oAG%j#qN-'&g;^&UTfdb>%\ZV'6TpTJWRuM5b[n).+;>B'M %N$F,3Ls-MKNX5Sf/3>TI(P^39(UnTB**h3W#U;+!mE+h#j>2/2DCN'ZNMnUaGh'gB>moHK^[J70GK56sc1I)so^j`#)gNIUr=%Q, %p6ILY4FG'8gSMGb_OJZ]j3'"VDjYs<9MEOlh4:UhkYXk+>t3\_@NT"+N__EB#(j00BEi!#U]Gn03HSDOJE#=92u^)`D-eupa@G_C %%AigQHd]+tfn/EhH=sgg2R>hdd`0Lrgqa9sKJi/9-Ot)KC&bh>nFOEn$3$-TpeUq^U1B4pJuEgLto,2bXq2Ck7t+^!glQ$'boobn%9QrUX++;D]lgKk?]a1#]e.T1l>$CWNflGPtZ %6MMK$"\<<@pf8]2;lP6XM;Zf9`Ks:!a=;9W33Vo2f*uug]A_*WgR"#RJa55l*GEAr"[%Er#-2$Js$s8^87R[5SV=S:ZURam-3.A'-Fh/bZPZ@K]l%ZgTrn4(X_Z#2jAP!qMjf %g=4KG[rB?2EK!4P?ROBeS,t_;.4S,f\tN2QZtMi4,XbN0&b':2-sjO:ILi3@'l^f0\2pd]Ls:k3%h%]A::/26*K8\T/BbotBY-2b %?o`LS8p!oGYOp^"!`Ia4i?;mt+sM0^Mf(nN)).7S77EnkBAn^LTcM4j\*o@J9FT;9[<[8+K:,_GG%X=7YR@]I9?5WY %]7J7gVRkeLPD+gODOZ>u9.%qooimr/XU/$4I>sd7+J?6@M>hs/m551fpFM9*KsBil[T&;hfEr`_dcE2Vm;=rT7P2RU*%H%mE5gNhET4?=4_+O[:48rE%!I[&HG\Q6uk5]%M4aV'-Qk,!Z]\+!4hZ^oudeYj_rkQc5 %=f\F&BgGm]kF:R0J`u'(piH:!dJs\<5r(&g?geGB7O@c2+H$b>)27XtKXl4*8;8BmZAKIhh2)t_[^ijT@rr96ZhFh<+YE9g>f86d'k-bI%;)s8qb].62!%S^Qd)l_TQS3Ck/C_.0+dDB\Ym[4!3g(=FoMX-u@"%$;UA?FI4)>7;3ta'ecfHB:YH4-q %UPeOqK&c5e5c8*2Z\+O;J:F8teE/')66PH:ET;cG'[DmS[>HFm?2XQp+Se"?r1(OZI)VjtiQORZgD=f;C!Ppdqi,N%p/>f50,;u) %>,5:2OjWO@GL!PqV43$NDC3=goZEVmhc=1%+Y=:&eV%*j=>:]S2@/<4gdl?OF3XPm]om@"%!3_sqAHM&Vll,<]K"oV0.>#ZqQr/F %TDX*YMeH-CBDqh>o)t*(c2e?i3G+*b`&SAfqZLE1_h2fqUKgi>5kr.L!HEQd8F@`_aaano"=?/;o&<+QQ:Z+u;OU]AIi\6okh5Y`F\=4"7-g,eKg_&**Z%g$+\Lh %lf/5Q.EDQ5.`/?Ak%he3hUXQ?M`Qf;c^X(tjApriCj$H"2$e"c^TrZA,9EbQoqL',.]YZ5WcNn[K4&*_EWfi3$S7-tVnP&pp5"Q@ %.`*5tFN='nRcM`N2SKH>:.!5Xi.h%nC':XrEcr#s_!U+4C5oh@Rko3(Oj$(b`8VPH$agSj]Qc9^_ZajFRkcYD):5Ml@AGC0dBZ.(5`;YMJ9*OHKi8;.Kjsrg.rn)/E,7+49F`>:I-'7T,o*/ %Kf.KV>booE0,[7-%kcUVgkf?]Cp-.mPU5*c@t\o2c9rg0PJEpN:Bs,<'lJKe\-jdMAt7L8M7X*ufLci)!YO-kf^&/2o,*$CAma-I %V\e9H6%sj&`H3e=2Ar;6P%-kN?L9L\LCdSOhqDQ8>UorR,6F9L=1lg8n9lOnLM,sdg)GA\]K4S^/,;A9X5/BUpWn3Pak9XLm %DN5J#94ptnDpQPYYK8VWCZIHBIef^LEJU"D]`#q^Ahr"2Qop6V"o+JBa_Q/E*JeqJ[#8qb#9aASk2aErO^2:IX-8BD=de^<^Y`76 %M*ckGOA.;'b)hBo3@:+Hi^f>r/QVB"-eENR=1/Ggf>Y0G;Oh'X+I:9<6V=MCBe2oK*0;^pIQ_^Qm;AtnlJHb>hfV7!hkqlPr"++"%eHHF3Bs+Fl#le1[Pj-X=#s6\cS1pc&HgG1&LUW"fZDeM %n.0\=f-%g4D%qKWae %ZoL5P0sAV9;B*%eA5/"F'AM+8V-VuOQO_^`PjRQpY!<,UVqmqPBh<;H_Z_i.:j]-)0%1BpYWA&F;g%N02WqXbm/nIDSA'9mUfo\M %>4G?!%g;X[:.(F\)="3<.hagC_R(FXGZ4Nb;07[;&,W`#_JYo4cY=S"5f!Vc]6_P:i^pII&USB+aPp'+7B*kS,rYNFgj?]bC_?AM %V`FA0kHGFqiN,%";d*77//thu3)<>QEa.o(S8)1Q--XRP#g0:X=AY1meGH%2<^QiQY$M('qUZb\:h[Z%h0-/ZI8$.+gn*Na]7^H.elZAo;oYK2]m08Gj`Y %/dpV>RH5naD!"[i@oPkgdLn'WIAn=9Y=/JD>i!p=iiqp:A_65Dj`Ubk4H&ti[HqMG:QhX-joB[PKeo)X*'s\E\a+/ENG4abq9W*b %M%+NPoj/4jj(4E\8&1g,bY)%n<\IHXA)Y77h[*/\ %:nuVm,HU$QMh5_Q$(-?m#o$mBrG#tK%'%-'mM8]+p8.KOA&%lu:fbM$]iIQbf&9c:7ZKfL"8-12/TciER751^-6/J*OX>Z@5Ygsl^$DNE`g`M+7+O))-FJD<$KhTpT2Gg %]UA&B/t0?WoUV>"Bh;`r[:_.Tk7<+79dCXAbm\HT0e]V#f$eA^Z$H'-?:/qp>ZOg`O4`d`4^OKPce1^"\>l$cd %YiGA7?_6"UhVUuL-sHgp'/#]88b'9EnaVVKIcAY*)n6YR2jIflFq?b[Uf%f\c3s[.>L2h %60bVYijZj$^36!'[_b=r\;ha>77$5)/.J&+57*;tLhZlL %=,6@)T:2)GJ.Ak$hKo,a#DT-HF^3((&-UG4==P6=W$h`<9K]DVU'P3mM6+hmgoWbA'L-nK(kiQ8:+jC9XK\I]kS.>hK)f,)o6R+7 %k9"JhfS:5,`5)<&O8n^jr9os'P'Z76[K;>K*TUr,5S[4H!`IBNc45>!I.o0/0BiffSZG:miRuU2?MMpts0H`No?mdU"gd>o %TT'\k+N[Z[B<`5,h*Ob&$QJ-I(0)-3o?rUU"_3145#6TY0K[`Y;'r#Y'W):q4F,crZ]RcOCW6U6lqSqrkd>T59h6;h)M4^?-r9i^UL1(Hb-X%r-o&#?TY47:IHG@O5YC6pJ_Io^_(G@>#:74I]"iV:7QYR''WEaWd/s&:c*kjL% %PbJ77q/^72`F=LU/g%+A_YnZs&*#',bpGKSNYa@I"NIZ`$ %+]KumcIIS"%9bCj>l@o[ihBHoN$=`o8>YZZ#a\o0A@(-5lWO]/i?1ck;5nP+jQ%miNWD$I90/pd.+.KZ;(&.>KQ"%J8@:%glql:. %q\ho>Tk\RUMXMd$8^G)G;PtOHG5IdR1=n?Zp+QQ(-7O[>.EGda&Rm@q;9lK\U+jnV? %m9GB0?0M(uW9j0p@L>,B4aoW.(^M1![41oVijVADD.r>IN/(9L2:Nl,eFosT,uKb0"Q_s-VQh`agu:uuZ?-U)Z9f24 %_7#86`DH2Smp)6M7T@o?N:U>5V^jVsNW+3/C\j[76V0bLh[;&2%R374[UZ\;tHLUU@`X;5CG0S&MN8ed)(PT@tuRRCAR*>"]<*U$tU^+sT7 %SLUss3DA&;f2KKVe1/9=HPY>+8e3m?uC_IdbtP<3[0iW([J\4pJo`76[i+.\m/r.XBSJ?#i@7^5DbciMQ,?JG:<@=?S;8)QPpuX %W'9Db1Zu)s0^on8JUhuPlBP!B>*IUC#Da]l&<<%9"^n+jd[b"aE,$D6,FO?b#P)l!o5l8(?1`K+FaQs*ELcls9<>sD99=K;CQNn* %N(S+,,n;GrAnDGob?Wq"(67XGD=X'Tn!;!FV($b1]bG^QZc^tOYp`P$`!se*n'o? %05j;^c.#4!Bp\$Bd=KgFOFO_P!S_VbbUZ8?kmRa,\b/u$VUJHHMmOUK:[Kr_L76%)%MkQq.c5lf:M?Ee!68T^K[_B+89oNP-m.FjSZ)ah!trrd1//F='?"SOFRCS9E%--Q]J4,pcD$[>p/- %BEXF!4bQK<$gOc_rH,DBar(RpP':(^WUB7K,-PZ3HT9a-VZg-\SRO6YmiUnHoh94\W^]*Ugg%40FCY8W><=kb:r:HYffT.mMe8,^EOWd`FD].&DHM8rS:1Pc]ICrJ"n)87Vs>a93?ME9+JURn(='$buA"49EuYb%0C+.I:! %"]TZZ4MOT_X+QW]*aloQ,S`A[8O[LM+NM00eY'Tg$``.I-`OO@L>1b=5B]T\\Xl5B!m!7*68P7-d)To1ZLnI;Dh0cN#8JR\VdUlA %kuRDFYK+ZaaAp5#:P:PK+i)H=;$gdMLYD&@p/dE0Bbk6%K*PI))X>H0$lU()N_&X^X)+>X:K):lqR1 %6`jm=AeaM?pH'mo+q62cmO;=:&u%uW:99#!O*PaCYJ78>e,&p5M$;!>h< %XrMK`Bup[Y!nD=`*Ung.f4C1-^cIf#5mkjh.c<7ZEoRqgWf"",(Wc'QK!Dl-8Rr(H)2hmWc.92A+U:#!9:/$a/:tdTMJ'U@8l`)u>\b_t@`"q+X[H%$`Hst7@]-8Ed5?nS1Io*k`)^"8 %R1(.6*d\-i.40C-amY8UbDW%sCB;V?'FD(K:rl'AM^kDB:!`J>#\[bnbDKb!braQjC^;PQ!a'atdT#L[?@mktbmKC3UEfYIf'JYYL'rE`Koa84s!-?eriNolm0N3GiU'XB,8mWIh3M=0]F>76/?'rIEL4@e&N]%]iN2fY& %.Ma[oo%hZA'X(aodKlh<8V\p;^2HMd]Eq53=4$*=Q3[\u3uq/8e!Gg)Pub.VBIKNX$CV2;N]_[PT"dElM$22iYCd %;lW0X"V(hJ2<(B$9,G+.Xg$-%P\AL.&MM(A@<>?4l&WWS0XI'ak9H_526#9b?`+[+1o0"$#V7c"ThsV%&7mZ@JdgY@L(6ZhOY;28 %_QG7e\Dl/,,/U@AqV=>WHUQ[LkR(5APRgPe:u8/Ak#M^!\hXGO`k_,WG@Aj,ARL;Cl4dFOs+HsTs:F=)Ul6>D8V+iV]!$r$XC*GmGJR3+ltW"@R$OpYA7&pftO&6b9=%]H_")S %EQZEO[`m2qfk#i*KH="r\cRCdZ"1n4LDW4qaKR_\?H9"e8:#QF+E;;sc6-CpOkiE\dpJM[&121o6!tVHAF4TGmI2A7md__EpW5J".hU$j7CfDoo+BouFK$:L;3gc0Na:Ls2[o^*/Bn?D3fioN4Vof%\$WVr?V>^%__Q`8CRbR(f5nrio %o"Hsl[6nbNMI,ObSHPL4*l2q63K^a5*-tf9?;lj5!NX6#G`:+Tab[/]"?US69CXINhq]TP34\gR)ga9d6OsiHAZ(I,#eo,s?$40W %[!4&C$YCeQ':rlD63tC@\g@F0,:gm+ASTKb0p?V\NCB^MiVlFNjm>Ca_F!rGa&nB33o_N"^sj.60T"QP7(QWCP\-T6Njo)I`K)\R %K=`IOWkno(MN=<)5R0*hb'nJZ+Tj;&/"-Ao;(GUgb'HRM/Rp6#+TZcp>I?,k"+fA7l\TY%BUB+'I(Ks_Np9X!tJUtMp\m`Mt@\5cK %E],#nGDj15>^X;^U%PRt)#DL7WWgn/#DYuR)%C*s.Oj30Mr(n(3<9RFgo7P&bJQP&4ah?6AiGA/mUm2bfB#UV=nX@[ao&gk9T@-f_ooQ=>jB(*AV\?e-e=>:BcaWP8$V:;f%5?Kg'9Df&SJK3UpWkWPN5C"OY[+q9ef\!.&]qH %8g!e5J"6D88#-5$Lt.^kPp4=_?BB*Nm+'pL:;+UN4&I=YCT7dm;s@WbU_3%fq[sHSkT-PkmLTmrg7:jE,G`U>TI/'Oe3VC&"d1UP %S+2S!Q":WB)8R%O6A\1TKl4\AKX.]CDHqEZPJ0G'dG\KDAEsZR@`5_>UaLJ>43oMWBLT*Gjp2mZ;l3%MH[8-XOBeqLP;P92IoQ6@^A-(ao8d3@2EjjWSU$Zf?Da-`9ld.2, %UIAsE'p8fIEG/@LU*P0MAK'893Q*[8caobol4s0"Ah/7:(%Sk7bIo/>ZZ3PiB.-n?Ne=QBUX:FGt %\YQLDcJUH8cX''f=f3Z5huZ(+kmZGtK!7%0Gns70oAnSM&NW3fH(mhrb:Or:`#P&`l/,QH5S9A;\B&Cg(:k[X:7RK662e1aE0h?@,6hdZn-d",0=#;futq6(Z+^Y)E]N=(8X"Y`P@VYE-'(?59E'`LZ/eI0+8;=RKT=cQgk04#q]omP&@b1&+\or#l6;L#Yao"2hQq\E_TK%eX!FU[DMqNb%_]j$SO"KMq:QS8pcC5i_'U//[MH\T\>#aBa%!kuB_HU$SXHL23&`%)9LTUE9V`"a;Wast %Ce*8oX-ZBDV8*@&RTe4KEWtMr[D;B)B;uQU5/[8H#(PTAENl'Y%G^nrEF<&no;"2``^e)o/O5E\l]k_P*L.h6"+Os:,Vs\U^/thdCp%S,%m"jNS:$(QdE*= %3_'M*N2dQ:rQM9!@3qL/mQ7s-+\8qW$<9#0[D$U7%]VAEGfY(I9dNus;M_UrK7D\NbPcuI+Y6&Yr=SisnsOB50*W.5\Q"[#PU(P> %j6W;'jH'rb]'9!14UCEdJ(7]mj"+J63p/0JW&!u/;L8%Y$udB9`.?14FTTG@(hfg1[F!%M+#AR&:LZoXjm$u:3U %Tiiu8$3i_gGeo?;jBaIXD;;B%8_IS\WYJPZ?kLZ% %h#D>K2-"WZ?afpWHq4hMdX*6.kOAP,B/Y1U/b7"mQR^GO^O*FK"Pj-=dT20q5roX"-PjLkqfHnsL;^?(jYYT)kEOhphFTG9^=+#1,$=i9. %m.M5[SG=9$SOh)/HB(*I.'+K/OI;D;K"\/EM]%t]$?[aTCL?X[5gEdfmo(Mi(@05]ba)6S@sB.KZu!&)=Ab-rIN=EuM.*WtZh9kX %7HD%ag9]0-,KZ%%]VAFs+#0jqo^QMr_i(23IF_W%WoIR^lWg$;b9]K6TI=R+m"6c&+tgYt)\j&o:n13:q[M+HX+ %Wdf5Y&X%]a?#4$r;@m7]k1-&&J]Hd%W,oT[5d(b59@Ak:&'>Bi;VNj+;J$7,\_WG(b-:ni;sClrhjY2jHYf&>RO %bat(bK(Wf7f0]dQ5B<,s\=F2nFuKWuU3-1Pnf8tcIQfHGlQ)M)MeAT^KJNQoY9l:UUHdA%e %,i0?f?khm@Y'c?K.@H(^"Ym'BqM]+Vf7A?<7H*k.0r'nL5*PVR(n7g:e9Y@Lhkt^8(Puos%a8cof$?Kr//;ck*Us"dd.LCAH/CKRt_2?(XF]mliSs/`^R5`pC/3F0h %gm0NhEAJ^mm6&!Ep-Ti'm"R&<+AVH)deS"g5@Sm\b&=^b^j5_3>NQq!#$P:1ef, %6?He'dKO+iASe]5;&a`H'`Xk,7J'[Tm91F.B'Sm(rX?hh`O%=-PbH(H&a/>t"D; %rbeu5Va4^35kti<0,;?aM>Ha-m3iZBGJp>92rq<+5BCoW5Ym+refB>^$)0El&bt.4<m*@@gbU'!p4"'Hb1_F&)k8ffsW=p1FDVZo'cEiq-E&\H(o %33hCeD(TDdR;cuu@j;HJgM8r7bTFsM^HBf*i-IW%4`E8iO&U)Xg4bpRGrsBF5sCW`+oZ^k5jTJ"OodNQEmB"`KR(0r^t[iI_2Vl' %di:Z%'"lNTpTjrP6g;NV=L+ct.#iWP9#O\H`TR0^P<`,ZKEenXD;,s',D$^r[]'[U62T1EZ-kn#iKro7Qiq?WC#@,4R_847qm`a("jk>7#g2:(JoGG<'Zl?a)` %bQKVQj.<3(#b2h:RoSOZTc3?h#Y&Xed)QWr>;EkQ%(,Ol\&cr_KqXDiRXS_s$u!B;qLfO2>j]t?3\]bf)hFgc5ISPMifL=0?JuMf %k6OrtiiUQbJMr=ak!jI)U(N+Sb@m=d6mf:Hd*;_U[CfT"Q=tmF\8.sJ(lMW:Y6a"O*N+-UJ %ANDSUGG,=PSj\JNE;[#/-5+oEZD'c3j8_@8VKhH-U7E5/-&BV#)bDaS.;Jnl:3mm1?;l\'ZPKP/`&/N@'X.jk`!FYs?F.U7-@k68 %'$>n.O*g\3nRuV>ae43[?RHmJZf4B"8igKq,*F\_\oeG+2cklpX[\gc$[aDJ-)=A,c)]jBjpk&Q!7`LgFL('tgLqsG)63u]c$Y`+ %d+f]9Hc,f_eSgICOP"+MLV.+XnN$-jFVJ=j;Co3C$YGd9%irHbOiJ,4/AN9/Rdf\tD$Sm&c2uk9kC&3sj-7Bk*Y/[L7*)V2k&?bY %bRW"2$sK_oET/FI'sK4(aP/#GDXT2K*+Z/Fq0P'#:Q[Ct\&fA"Gc4>hO"BHCXtD\a,"kJ-UVs&bFl6*L5Tp %i.aa6_P0A];O&MCY,%_Na3nN%0\DtR=`)_6hG?UkmK)5EWfk1ZnDF2:s5Ulhc[YQ,s7#Vurkj6`o=t+IJ+q.dFHHJ>$3]KYAH)1- %rl9Ne2ui\r#7KkkJ-p*8&PB&pm6kFU>gB3GR3[#4VYYI@-EW0m;Kf+'b,2(UnbOs5/)'9e5;!d %/m5n6gRe[>h*ePS<]9cY,t](4gEuED,:n?0^HB*p5('NdT2X7,?mf;=>o5RP.]V3jG\5+->WLi.Z%=nMP %l([1mP/Ad=P;oFt`L$E#pc\>gW>f_NFSlh*Z"'6#m8(3PQe$r[F[rl8^1]a@p3UVgnM7mYc.m1@qflh');n.8?T:;$[Th&UT^d., %J]?\P\uSSd)18Nj,o_?hp@4us425H/Kq?=D]bJu^q"jrnWt5(8(O5F5jPBG'oG$H7SHuo9]bcDJ<%#HgU[t%E4N[6%4@Jm-W>2>$"&tlR]*L8jE],` %CS"0SOY,kb*4$=% %9'^28Up+$Ac/3X4na3T>;^Fk:)G*]colXkR[(nlf=iOGrrZlb_NPhXa6#nD/P3QuVal82='1%3IF?OA'^-.Z5D9n8KLee-M_F^(J %Kfs7;,"pecbarZ5c0,[ijD'MRR9$M$#GH8!Lp&&u %]%K@WWd[P1JZ?n!`kh9&HEk<6@elsIcoCm^WIo79gCQ18V=!XU^2WHje:(Xdpdt&H`kRPoj+V;8X<0*d]HOVF0ALVp[3A:l[FfPH %j3mMfnao5QT!/i<"?i@;a"H:?.J&n\c[G&C8(AfY'Y/^ROi?SC*^4BBFe%lr.AhI=j(MA,E8S(e&muX!!03$ %6L-YQW-$^'/?R_d.Wf?m\KHN>,I+l(A08ZFm!MVMBYdEEaC.KC,+XHg-^HBSj>a%&cbX.b]%]a%C"@r,"#]D\>`3)NgiPukWfNg! %VO*@0f%+An]XW%gK+O.%0Bm]4r,GlsX/gE?!Z*!nJ %NAu)%hQ)2_hsR5r_oMjE%[Wi:V(m_k,0E4F6D?q+f7@-D/X5CSBOh'^hs^$-`*7WHWm@HLg814':Fdplf_0De=Fi?e&3Q/*+X7S+ %B%CDL?4UmM)K=kHDFa2C.+&h50dlTbEoKAb"dUOBD_.GqG.)>T4RL.:^F]!(CMiGoV:uU[*g6,G`TK?\g()]kF7^RKXhX:5.`kVn %:8`W%Uduqe&-`+BBF"n3oceaKdK=:!`>L1t8-C,u7o&)LkiVan0\,#)k6eg'Y4L0d/(jXEp#='6(/UmT-IVD70V)fY3E\G)c,.q#4FY0MNI2Gl51]B(@jbmO"MD(o %K)h?/B=!6%.htDobuL^g+Qr),onM6=[7t``)0h[\*1fj&%a:#aOLs,LF5j8J'FYOfrpi$JVtnXNnnOoI:lAS06[F!Z,^Q;:,?gAE %K*[N,WPO.;=EPk3:"Eig#Ed:BX#(/*9t-Y-';06-X%CAK:(SmcS==A9fJVr96T=_ %hJ6RcW"GB0LXEERF`tQ79]gpkE%rga?+C5BCm2L+g`=H>@d"92=H*\hK=d$$".:SCE<`)"OcOXR:@9EQOE-nY[L[`1C0d1Y0t!Dc %g6*Tt2qQjao77.jk0GXZ),LZk%fF\^8)t(.";a-V86P/Q4mlf1nsRf6\D1RsmY9/`A./Im!)6qX2?3dHT]heV\,pOs %[P5jL=YH]C/Tb:9HE7-sSCgRk!2(4VpU/[t:a/t-[bbFnT\_UMJ@Bi-hH$Kj5\^&[:0"CfnXAW`A,A7?EWK=!$K9dH-bn_mR(*$> %@e%,O.]W!S-=nq;>M4ij/]oX92u[=mdoA"gWpHRIb,mf56BkP-@gdse;Y7/O#5E%Zqf9)B,Pb4%f$N733!URoQLAW?\W?T"`S1kH %RQZUP"I,k0lo6<;,A=#XZ[E0]9['slbmXtkf5$Bub]k8?q5:u=;)b=TUm7eb,&/fH=;N$O^5qZsV)%an1oG27>XpS7aan#coB.jZ %/[_:>%j!\DbE#=b7JWYs'aP@7KlaULal_3a0!g_3KB7'm;XG-@<.9u4QKiBl7:u%STq4HH %)W%dn_O#ldOKKS5=EQ/"ae*^@V.Zs_R9J;M:/te*Y;YB4M.*4UMe)?IJ'ie\::p(AHa9OkqBDP9cj2-R;)1-PD$Q?a#@aUFH]:`M %V^2<\P^HZ.1?keL'',=3^PA?`$q6"fqaqsD`Bn,pdU%SNLjbW1 %)ZZ.VgEK#-P/d2\[[$jMkE)peel@k!%mAYq]If*G@K?5=Uj60;m>I*QH!Zg.>>)k^RIBTQeHu,#lmT>L.6=V%8q^F4>G]c]7sU&G %l^+o*=%en$h_3iDDA=dZg\m6oAR_7bMII?J;6JnABu%GI,V0'^.H %4hHf%FIM;"kq+DPP#f7([*fW"]%Roi3-Zc*9_IB'@eFW/Hp2RGq_'9kf5=!:G%IR?Uoi)m*U9@QhsGEin>D/IFGFA8_C/XINB)*m %Lj;)fhiuH-q,4P8O2hc:[U4"g^Jce5$5#2Sjt&kMf?"ZG>^*^IhCus@j)Zl*p49.imMY[j=Ph*^g27)i;LR>!q#8R"],tZtf,ii4 %T!ZpA>B?Y6fQ*FL3p!6I9\"EC331rr_+p%"-m$:rr>H+C49@Q=]S?@HA?B%,[>j\(30f40)_obg$i"oF+PGUC7c'S%*-]:G/0`[# %q/3ZF"R;=.h:e1[2n6a*.5LjC-Pf2XFR_(k0S*>.(+"Wn_URI8b"QZg>SLQI!G3Nj__,s_SbCU/XNN81atft %,h(J`O1E/fq>jZ1>_KQ:OYZ6C2d*gCD>Holn<;B%SSi6m(9D'?q/VUq#g0fAiM#-haQhgq3BHt&L]-55cqRs-d.-;2oXl!&_MHf" %5JaWPjW8[2p@n'f?'^tC;hLF`Iuq[]1MT=NTWg+@Qq!pF'"$g#b07j>??hiGNrb;57QNYGL\-8H-9oB %KD)0t_9K2rG?oZ194$-Z9$p),\/sW;;-cBP!/9&fli;YJj-N*[GT-OIT!p)\6Kd`8@uU?U6FKkIO-`VuOP.bEE]dPDrM%to5+Pl; %ktsCNW,,OP#=2P>YFES@Q(Fu(7/Arr03k,JbZncsl!@.XL_[%;(u,4u-0n@]8GYIAd,U^$mWHK.;VY4Bb#4c3[4GqthXrH4mt6tqJ))Oj&Z5l% %K"0]6P-&oaKA,/k3iDpsH9=Gt$E&KT@ORV=cTb[Z&l*.G355?^-l5:_7&Y;4>L]S69OCj'$sD?DV:#1&]\u]YH?s4`Us**q"CHkd %%/?Q)[dP:)2-`jO?H5;S'TC8Ipm;K#1=NqE))9uZ/Mdf14aGugFPE\Q@Wo1SDM:GOdW#6?ZuTDnOp]IZaM[W%%F3Os8oWa+GmD!H?%UHF*].EG.%+X0#H3lnE"2$qgL_7ccMAc %542X)To;$T7!PBV)2G,BPWZ&Ij1b3TTg->n>h@M.pIVYVa0obK!Ob%;"/iO;BV.,uF%9sEPC227&X@N&<7.b&l9ODt5*`!YWX]js %>$[C-INH\]F*tt54ik8rA4m_A@7F:bpGA4mS38dl,#&L[F0shl`Pp]^AR\a>V2$KBr7QKTkIGW;2Z6hMiZ\JbQEugr/eJpKWIL?& %amU)rp`PmAOk*:hl$2[/24^;Pb+K-K*lo%JV\Hb@fp=OrSGIWmhq<1Z`o=m8\&/kp=K%[2&U4g;^t#8,\R<4*.2m'f\Om!'^+P[] %d.977l`r2\Z@pkMPd\kWB3*4Aq>.s!\cuO'osXiF3@EY7ZK`MeI]`-^ZVT)sN'eN&&3RZ[I(:a&+H98NguKg:;/D-1q"a`:a;o%p7]RRk:=\mSB#\$dHFFmOo4`oQqq$QDu8-"L4D)rjEM^6 %mpYF6a@^KRfhU-r3Mk$c/:274L$Ned.8T9)94<0UP6\ed\nL79p2F\PqYdu[G6H!rp,qJ9ftRsaJ_7O(IAq,.6R^prGmF3g\kn4C %_\a)oofB<1NDj_;eB?baV^tOcpjCim$b&es#lf;*1*Pha]AlKtqbPoDi$t<(r7CJ"o8#_g2*^[-U"=EN0jY(XV<;BL>q]]:$57n' %6eBn-aO\K%;@EQaB2V`6m$*,bGH/tNAIM^-ZpGl/Sbt,*r]$LG'(2VoID1fbVahd(M>YlFn&!Tm;8R\\I$3j(kT31d6YgaZ^68;L %pd4!dD63SEkULIj1hb75!/rTWC*_-D-rKZcmhb+@")#M1h`r4XduGe60i2&"MKh;0EeF\FNKWSd[bn8-o,3pRRM,t/r$6PlM$9"4 %)/RMBdD=PH::(GNK*YSnSBiTk[q=Yk2Lfb3NUl&Z[\)N07pg.B;&)oc.R>>Q-^G5&PAGpX[^Gq94Gns6F&OcE#eqnpKO#WhCF+=e %l!o(J_XH)I`3J,PjWdkU/8shYhm>V[Wl7Do7KkaUZ/CIo?Y09/lRb=;uAp3]Yimc#==EEH*X9bL\TVlZ5TAaMp7BmORluftE9p$F2nr+1!BMjA5FTbJ]bf#\+G>.q/"hHA+ %qbJcc]Do-)H0<*HfT&R;-.s9lBZq?UM^3d7P4=(Yq&6pK>?3G.]M %M-tALc+oBY^]1-'Dls)tQ]#Fl6(UZK4KSmI'>*PVZd?Fg*"OT$Y1ltP6>eAUH+"[OmF'=HViK?Xk$)'b3E?7J2n3X7XNB9Q1t^J\ %o%n+mgp5l<&,$otQ_S=VqO-a:+V6.k_'"lu52.f&`SO3VD!#m3\4pD]Y@-&P2nO_6Nl;0Wd@<'(L:nuAr6Z9].@7j//jX:SPW+tE %G)ua-P_=_SfTmY_/EG)[[s,'[B[88'XJ2qR:eD#>0m40[=.j>]3+>uDR+q(,nTY=qRLkP_RJC,BQGkT,a1`b>10`(ND*q$SBn\hZ %*i-=+OCrnu:12EZmAi_3Ah0OBFU&5'E-5G$a/0E\Eh*iU0`DFFl+bRVRMPWH!/tHp<_fn?K>^47N.[^R(6?e#gP[ %gl+[8LC5D%Hr_[sMm0*[4BD(9X@0emDQa"Q0arH,j+jOiX\#bQs;I72fqja.V[9KiLrI&-gS+q"mAa^"3V^9\LEL*GhZ3$>SpJM5_G;<8.SM3jK %0Oh4H@@^7chR7*92=]s:lla";H69D@%RK5ug@K"`^>Ao>Fs)jmQ@d7@h_*4]:>F4>GTE]VG32o"D7L`UbeZQB5 %'@!2n%NHH0V>RA(Z#.j[lsQa8M,hF],t'DqWGUn(`sIHPF=muqc:7jg5)hf0!.:sA=2B9ZGi.rMMo"97pB83/[j6.!WlL8_Z"RR1 %o^(Y8Q6q8sWpYUQT+1o1@Ve]6&fJ5]4jtC\jWHJ5gRUk\;8j$@6em^,SlUTjkQ<'l1m1U5jV(V;Y^mE1TY4m-1LPuM1*-#=QrVgP7Y:%cAoFH]K91ghEi;U[ilt\" %Zc!5r3!7[_F1Mgsni3<'U?)W1#b`FG4!.Pb090+HDh_g_[kPAm,Ym-fg.S(E!4Dnl_WCJ*EaKir0YKYkGD %V;5=`!/hg*IeLeuOm],b$k&J>_?1VN+(2KTj4k;!/uCPN\=QM,@S?k%H(b:lN>8TG1e=gKE@_G6m2^<52mZ9HCZN6O>$*u'EpsPk %EXF8Hs/J\>%54`-g.95'(9%[G"jJn]#Z+Sj#S22hDjQ;Z@6'5'W`rHQ.Hk-_=EBEC*&<1;jTtQ*3BdNEPiA>ZbYkWfP>Hpos7S8'Y#qpF^JR><:P*C_r/AiOJo`Rbb9Fig+4IJ>1+$@&BEjR76Z7na?Kni+B!P))>CTKa:@*'um(h3%ph>oeRS;Sl[c"dE5,m!#q?LXPZR %+-3_WW>"<#6h?1mllX.X0?>cLkolMcJ7-0K]mIDEjgr*e]i(F6'h&3$PJ7i[\Vi\[IX_0$^A/.kpVesK@DR7c0>>UIp])5(hRe\Z %ej-m+X>%%X$[]qiS\:[%Vr`eZLN;\Kg)d],hHXdXZkeX@IC]UK+;:]h(VqTc+2kYo%D7&@$Y7UQUn-/on28e-Q&fG&mE-?jCF]4Y %YKLB9&E2-5",(!k*Ir@='3k(i8mW+KM=fd/=U8O5ahso;>N2o=pMKS_#YhdK\]mrZ1]tD<$nNXQ^Qn_62@L4lq7"ot%fn=haDJNi %SVPI`(@3F`GDKZ>nqsZ;kmN^2&5U2N(_#=F-roH]D$+W]9MCDu3LGOFCbe0M?0?fpmuiURUp2b0T3@\C>'8V&5IGHKWrkd"%2P>k %a"$gled,S?o$:rW3f,W[41r*@0g9ohk!=Y;khKO:Q0,mT^'nLYG.m+b4RBl%=U<>OZpnm4CMLY<'BrDa2+Vao*2Eh5;=Gfp!( %,t#h3+7\[rl6rLD@Xh7&2-4S'^U3&7M0(jq"qonE'n*O&q/OVPiA5)BeRF$iEj!\],hp8I]VA?PRVhk?&X[)/q=Aq^1;Dn"ROSD< %Nu)_!N[CFBoHH$\`rim3d=g[K>fj16b>8.37:uMXU\a<:ci<8Lb'!,ZbdL_ArW=4Rs7.,ZqYq?RZt+"EMC-NXVHXn:rFYDJiL'Vn %N+Xq1CI#i;\/`"PmWMXs1[H!d*Tc<)HE$A38Jb9X2XF+jNe?+)2)1.FnFmA0VfqSMK:^%7hk!iId9=sagQNh(d,gYgZ>;3O&%;k^s(Fp4[><9iZD$Y' %fhmKak9"#W[b"?[hrD%.j;hY2V+J0J:OG78VFug#6X*hoY^33$E4R:<<,Q"S\TpnFP>1BD95V`Z8$C\=B`Ci)X(?=U,>Y'Lg=bZm %0KFK!pb-?Z)V"t)LW+#L5%,MYK?.9Z]>aGFeGhhAUh#1c<"E]NI^PW^cU)h*P8S`P70^8SI#3WPbMs_2i\+t9FnbL%b]Uj9=euA8c"`0bJk!0r!\/_9$6:=+3&)-Y %"%+]H.qY_;%R[l""Yj/g@&5!W-rW;aYAa<#+K3ECs+JTCh#kafjc+!L!AgM\89B#$93%gTW?:q=[NhRU1R#a=Tlr6='^=^J+,F^Wdo[EoL(dZ`FZr[DWS0< %TiMVH]=U0Xd3!6%,JjmMo\lJ0pRhRMXMgVoW^/^VhDKF %`OMXgQ]IcT)m`^9j7Kn9/'GUV/ALC"QnCmgqif@bjYfFQg1`^+1S"JV4)Tpu0WMa*:jLqM>_apq[0-n^2VWcp,mbI_M/]=Y<&n=^q5pZ9F1e'P79tIs1qe&_i^8D6A05V`$C`kiVbJB&i\sO"o6t8"2&4gRCs<$DJ9'.NqFHEQS^VN6 %lrGd0Non?5;Z>&)dl.*c6#%ejhrC5B6;/cn&[4[a/!KQgYYQ7E,L#3TO'jlqG$Effs_qBV1\oW7cSG<5m[Y^2a))XT]HO2-r]u0 %V84/kE$Ml37EcO.>ZSLsfmWVG?7k+CHeQ8"n+S[u4=Z%e/5n^mV<,sLnj5L28u?GQ%i'+rf-#]>fe'k^@,1Ll-d3Q:55BUXbi/>) %Os/&>%c-J4R1Y52_4aR3T:3,=2u.)]Ggn<$5/$N@EFI`B/oFT<8K`jHfe:f=Nb^8X<<_pTk/5L6)@_BM>A2eHrp>X-2Zf.er'G87 %b.K'UaXFZ>M`W[jQ)3\Q&J5/Cs6S%#+u9LI0sKH#XiSqW(&3'h0NbT`Gr)=qbcgrf^\CTChN$&N;XRkQJ=,i8O58Ma(@`Lh\&2n] %Fqa9O76ga\n'Rbi2EJJsO!e,O,mu)e4WY.$-o;l*]k,,bmbRR;%=aNZftsWb@k0kRVe`+Q>GX!65h^8afi1KiA"/CHOoe]:WpkY5 %4G24X:OLrY&(^![L&0.M)$F5unc5/9+!B4[YQ6t&kUJ2k`cUJBX-&>48#Vc1A,)=k8OdP>kU=3o_HWOhZo%Oa7GcRd#@d_:@:%aT %Kq.f17Q(7L)Kh3WeHQk2&c$!!^X=lu;Vm6B1mT0Takhrj2Xsm9jS#d_RF;^8XP"H$0,bOM30\iI3EE'T+o_06P8m6994cQ43FHqD %cdbb_Z4Oe!W'gh06VOa!%D#SK-eMZLa52O[ChQ/%dkX$al;qjG)SD/2$q'EcpB,N2+HmGd1+#ae"0CMH4h;]VQ/t0o/CS7s>s4dl %r5eTm%VpJf(ImD#(].U&o-!otF#YN:Y;?M,=pAK5;S.%%'79SB796c)eUJt,_`=plACd661V@)bSDLL76[<^f"/JK7-*Te'kE5&Yn[V-gO5'2M&^51 %S[[L>eVStj5>;dO*!:SW,%c;j8:(DL(jNU_7eSl&[Q>\X&mNRVr(N!-;b2T01mespLRo\9?fl"82Aq40VjdTi;kk%3RIfD_ua*MoTRFNemkd*DO!Wa0% %eA%B)a:H`W5GVLG/j/(PigDYaUAHSP090lE0J]OhETY^?SF,"kKmcsU]24Uq<:7?c_YFc3^j3UQl %AK&t^A\KmL#L:,;f@NA_3/IOHm'<*6UPR`RTj;m6Km_RukB&Ahq;b69k!pb)g7IZFoQh,l %cI5?KO'ZpS4ejYMq"]$>II/=^*\P"\0GiO%FQoO;s&Rnn<6UPhmO=K93EcXdtDCur!oMf@3 %\OQaXbAN/$M"\>:q`&E2gKpJZaOrRh;?h8@Tm618bi*Ga'Ju:OR@,[$c,H=ci03\A$i$5SdruRr6d=4/4Dc=H@BW,p./'D4VJK23 %b*hdO?[3htWKp-E*Yhd?.UASR`IL`3(N524,9KkXC4g-$`HU*$5-80@?_WN %1.mP`Mqco*+&92E0Onm2+sF\]#r(:[52R-76S";I68;m2 %T_;cucOqb7."7d`DM`c5D8N?u0lYEBA&Rlua/!8I<58'ei0IfqMqF"[)&-!VQFc$MQP6YRT[M`#Pq"#4W&j6$;"\hMLha)>#V>T3nGqLPACcjY7*Yf1t %d7qnLOlnO:VIQR3_8qnSaWbi#\=b9N(4N!3"eK3dmoNaTT^\\M(D5-i1p47)d93>4s;3RO1HoD^GIa*%k&3Y*A]3Oe2[8CV8`U$0#],g>l^ %j'j6[rEqB2L%f0H'_Lar=.#@$KB>KSRBFUS9WC6R!PfC/,\t_9?mjnO^Z3Y(?#:gKd0OX-TIL0/6TTWt@;&Qui+l5C"d^p$KX,et %\8,?9>?7\Cd4?'EV`]f$7>o/q&.Z_;iLm_P2&2d,,Uh'ahI#Q.?mdpn8RR;c+..AHma:2GJ56Deb%8q$`#]f%`#ZU\1W_S3<5:UM %m"%$sP:$+P=<=-mbjXT@0OXGkQ.m%tD5LgS'8INI*`(ghS,>\up197+D"MNu.XUE6B;72LB%'j'f%'KtKRK?UM%7-p_8l!kfBpY3 %nDEa@9!@Q'[+A.b\bIZ"@a553sJ9sn.kJJeIfk7=U+O)]J>J=`SOaP:j@iA5r'3X %/i@#27X/Hp07lilj8PpBaCX@pnSs1($b;(),Y%3N*D<'6B+n0.s,=oR(Pb1qB-&]9GF(fK>HVp_RMprC^+&cc6&3Gg[4q*HZZr=# %:nrk)BY\T0A8&+7jVg$YZ2dPN>QT$V7neU;&57;c9VhrK$qC$_^+A`),n08k?oS]LMthHLps*:(/;$DS;guRj[1R@!Tl@ %6VSTFVG5t's(4X&"N8B.R#;iU8CPAJlu]`r$Y?6V+1Li,<4")KO/\RYJA9bU=9+SBeUM:p6?Knj-Y"TKf!u-i\EXMH\pTX_NG.00 %'DABcd_5H5HB5@OR`@9tfOQ6r.EE22MopTPk%J3n^F96SYcgJ/-0!Lp&Ym7+`f-[[A/6ut1>,fTo_S(G6JO3'Zd@Oq?*uO*1.>^VKoSZE#FH4OJ$TT:R,R`EGoJ$O1U %^bRdMgu*,#a'l48fY9EgUPo60'jS+Sp,O&CJ51)@DWZe.Oemk#a>o\7$?hJgIM.kZh![eHVGo]FIha'Ycul3.d;5s?)u`R($EGgp %%%jHd1OY[k*LVU6XC;gZ9EbdHW+X8r'XX]M#!.[159!;IlC,`+>)pFo.bQn5[%EbWLN8F36_!_bRQCLOi4l6:.s-'F*RgdpiB.F? %@0XB`.."Z5,9#7)Ht:LgS\6Zth`E.q0I!^u%A$@GjB8,X#b+9i.)RGQ)?YP/Ufl,B$r!@0SV*oZGe?!#'@boJMfc0K$HM[^LluKD %?rrC1Wbp,R"oLQCjVYK"J.I59HX^Btc?O]s'M1h5dK,Koe4ogi-iT`fip'f*L(r(7LAs@,s3rhh=5N2?oo1dGdLs50Ukc/DX"'=g %Zan:m7\[YS2X4J+0!&SaXMD)dF>o&RfD5;fioK2^Ysf`n@YHE-ONZ/K/NuXJUJ%0c3PB78$Z#0A1GEa.cXOVb[fCh2oJQei5'/sH %``%]n34ARr$jqimi-u=Y3k<=aAPbkb4l/97Ei1m>6_L/B9?#8I>`X.5GmLH:ngH4K!u3G;f-_;#mV"IG_D$)W4#V]hhle(?$%D'3[`rTj-2BJ6"a9t72':35kZ)L`7Z'Z4<&]jT4N$-/b*@-2mX`6QU:!TKTpQ[@l-UEePZZU,UB5#)Z@?Y?8 %nTk+$h%na5_*MT1Fe9VaQGsU7U?b>QLZ9le>%NGQ0Jr#7+o3dh2caP5M&p!'iq%X)rL\8[M+m@;Nqu!)W,nmt;25b0Peg?nNS\^# %;nmm$n[&Z.nIj-rXQ;8L+G,6FD)U7$S,C"Wi!shX2eaI%]H^h0!0:HY&g9mi)]`pCf$qMD5U.pj>lFlG&6Ubk.4=X0 %d1qA-Ydr&\2:bI\S[j@eo;Jl5?>;9V9lC%e!Zc4Wlg[oZ.i=m@e\N?g[>qGlcsZD",l9QN:WK1dadfdY*^&-r(aKslN@=ueS=7)Z %n@3rZo+lU63<@gc.oXu$1JT-gR@.t9fSZ'u/C.@OhuTpFU&!YZ]\oV],fA8Y7\hLlnJ'AC9B?!C58d4,%`jk'iB+(h!.4lU %iOoGb$1lP20s%&armep]&UWV-[`/t8#1fS,)`6`_8;,n+R+1/_>h>rFMfUTO>6.4 %AsskPEsrtIbhs.<8N-../.S;^cfII(/7+R*2<.!g(P[fNXW8LNA!`)-K&ej4k$'C<8*M1d3ieq4l'$2fK;Y$;>)*:<+imTm@aBh7r3j$.gHp*k8Rsgim7oc&R %9+K/+:VRmD6aH0L1fff\30R[B+cb#:&_e&(&u2Mb@/5:gHLXB>J9OSg]U:(Z_>"t%';<[7g4c"`KCG$A=>l1AQ'fT!h^#s+R`PqM %b(>$;MuXf";GM&(!M$fBKRbPFj"0-Z\3t,=olsni.sEq)U1Rj#@NbcI-k`*S_(gqFoOQF%>)![>TRg!q)mdM91lH37XP@%d$e&t?C)FA7s``W/D)7fZ8)-iBo/KVpOsMLGaDQS7.'' %(HsFuTtnI[f2kp`lNT$#ajO[?+\0<7nn,C%mXoD\=t[[j3Xi@_B:jYE`5SN:&9!fLC^rj %TTJ8.PC'f_4%"`5cCN"q.RLKP*2;\5g;0mV.p7btG//*gp?Ep2e![`G5&`G["HnV,?+N0BJSZ%rdGou5'>oDoA4eItX#EB%TNY]QBV6sjV+.r-$8UX[d)dgRE* %E%C;>K$r94jWW/DLSc7$%q'HEJj';5`#%[%duVI8`Icu+H"@ij54THBW6ksp,Wd85&Q/NDZ.j5.[9Y+f*E1B)asu\aYXC)FbWn_: %1b_G3/gsh@2Pa.bK8-dpkjajYQh:)0aggKtMCQT5.!ml@.)g1RU"i8J$e[LN6bkkfnq4BLY`=`5_8O]tVe%(n8(=rc>c2DIJOW[D"-6LH!fRFq8&jsO0g(_RLn_=2Peah\eK%[G/u[Z:_)T_j8Odc)Wu;BVQZm"[`p-pt8-=iF5Gl]<[ZN35$Xa$5H81F+8/V>f0E[XfoKliNcd-PF93nl% %,?/G;Mp.IKgVF?/-5Et:!+oc7:RrFp_A[AF;.q`3kW#a?5$sU%O,DKT-;9[=#FUWOa>\_8DaB"g7q2():W06RIBb?j#B+3%D0%na %)%bZ!;dI5iBtAnUciCYu@NbR-;4AUs("SSQ:u;t?`g\R%m51sIW/\7k/9_fCa!3eP:heLCq_Q,lq:I^ZX)u:^LV9- %:gII$-Sbdr+GQd%#(fGQPo(d!UVcM7liU:Z@7gJ>&J0LC2LV/>(Zefbr,H"Pa,HYI&inrFT"PUU_Qg2R-:Wb/_>g[ %Q`D`4&u$`YO;-jcbZ)ZQp#LL^O6`a//BOBb+NbcaL@;D>LZtBDan%6@0M-MDf!qKO1rn[<$[==#iq#$K%Fa64IAf#]4NK8YZt"tM %mfn4=c!B9R;jJE!cHR>aQQIMWQ?'n-;@U;\R9sQ^[g[:c8k]ASqf+3M+^X?r\#G+tdt>!dFPORtdeJ7BQq(RZ.YqaRRWe-i"3;5>aN?*C^DnPYhlIe.rT$R %5m#LBS#7X3D"2 %@_iaQ/5].\*LgBm,S[PW&r([gOlZmc7gbugKZU;QIS/*>ilrI'jOT,.#C6PIJWC]kgXA0kcdOR/T=kJL^:C"TK+t9WI;uWQpoq6FPM9S^*fH(2&HVBRhofI`@9[>tA$"K`AJ@=bAV72q)#V=?oKfYj4qd#4 %OXZkJ91&;DS=h=.jH]4*H,P"kW-Kit9`Z>],PK8N5SnfL;MM>H4$e!7eVfM+&ulfJ_6DNj`(kDHNi!$*BggL"Xsma%-3fV50>a/k %Or"EKO9p&K&BVS%+mV7U?Ut0CP&k&s-;R[ldF_YQXOG*o+U=HmEb(&4crRZAJ6_[:clOWE`)Z(WGY&spCmQYIQ>kq1piMj:80fh5 %ia,/th/Y>^WCZNsA;q1f5:&g`>7;.8Ot.:`LFVjBK3pd1,&8YXiaPe:<(][$U6#Gc1%D9eRjC73VI3W:>U&_XQ7Rs(qq)Nq5tPBU %>*+pt4uMX"$8nkqE%pdBaYB&-8Kh=G/8TM)PeJM'0+aFYRRF+THLlbSmd9UZlj*a))X8iRP?L!"L7iUU2I9=$*W929#cdG'Y@XO- %Otti(JDk-=Ng\Cug>se+5`gq5N&K=,LUpeLd@Mh]!)kR'+oWGo/m8mpQ1_ %HF6t9lQ>>jCY4s^EUp_FcgG^ZJ*\'lRg]o#"jhGfij2ZQL8Yf'NA$pu5JJQn'c;-8@+_Cn%r9^f8iJLnV!hIZiOR\+(=0VCG1r=q %n#t7G"m:'2Q9+tfrGP@8[LV-Y[;\VkK\CdVnPVJfOUonF`GV14AdeHs+\9Y]G5%e`fu=)!:MYseB5q1]IHX-YSuV2TAi78;EVo^. %(=RmWWpI1IrYlZA51WK:?N'2.hM2LOhspWYh5o4J/&f\Hqmh#SYJGKB*kP5GbEP?8&<3%XJ7duVc$B([EO4AEW]e-(\!o%Yi7ILg %A;Ka,:T?(qSe44Hl[Lj.SS*g`NU/<7e>o.co=]g%`[]97YK^ea:9,qU;h1nWR6)_B?=A_s![MX\"&pr00BtIka4/2F#'I)F/[`?] %,uYscK=UCc6.Wk:38pKu_C?Cd%5#Fn(P)Ue-<_79H7^N]64<>`^!NG#,d[b]s7\-t8mA`[j4_84b&m[?Kd;T# %R)KpMcIe)]@=`%i"V-aYOsDC&*>b-;@h)c;,W(]0&>)LI-%&$)e!XcVRRHEI2KTmf`SqlK7h:WqKW7b!SR0HFPB<+tXVYicLSVda %j:eOu`)TQiT]TXf-"V.j;8j-(<=-.eb+[/a^bYF$3pasPaFtMGH'7@]kDhs/G`C3?n5G?4A,Dt@UQmQ6W9H>Y8JUOKs4i+Ih"8,OhQh&/TD2B+a`6P7W;>Gj>W=hi;!fI/N %X,Yi;(W@uq1_@98D5n9^^K)a:I4dqorED_7%S&hN3&IK@T3g_M`uI9N'k]mQ)`AK8A5OV7.R@&WB_J2\:CmQ1VK?kDA/c3fL5jW] %;^T"L'PIbZ_a@>_+D&>FkV)Nad`H)L5r!]Lbf6QQJ22<)rOZD%'Ij?Ik._hqO5`K7l=RBrZhe"sI[^Q>Ks_`[$C15Gf2fT)]*'pp %KMlgNI'&"t]m;)+:91V/iaST`JSF)XA:^s0\\--LSlY/73!usIe%:4W<._*=1\e?+D-&GP53rL9m1dF>L!tB[02nL8T"?kV&Hd?V %f'Cl`(Xbhac)&)%.o)Y<*Ig+1hC;tqrsbLVYp;!$Kb5iX#C=Q7>J;A=2#8;3=IWYS`lWpiW_u,"c)$UF*-4J2N]%O`G %J#tT>S(2BkM\>No8NhYtW'3N/lKI`Iq,!"JE3VCqf5&&#+3t%;[@cpE]$@;ajnL=J$ %MP:JW'91<)mqTJ@W)RG,]Detahg&RFmj.Nm[_qAi'R@a0s7+HM1`NhBJ>kKr?YU*s+N&QOrNlC4HYts]6M2=F"6;GFFcXWkZM19j %*n'Qh#RNX/'"R^3Hj"^+5P%kS-P?3ln(a_!?2n>l`pMTsGIl&NJ!Q;s3BUR1<)G/4R0P"'(ENN8?,0YC)_L/9JP&!gs7P8O)ZR]c %d&B7es%hgs^.$3i.=>.b0ZgIn-<4=fE:_/jM%a=khEuU2Y"#HLou;%fj2K7]frYD:^hVDG_Vq[_h0-3R %BiP2Yn,J-]5!K`Cci7"g3TO\^`lTHHF)q-$Y0*u:9+Wf+!s`hgdGYaH>B/uf\QcaoY!7.1(8o1B/j_RRe]-Wros%O[D795eL#nRK %6t<:on.0gaa,1Zh-C^[,E[T?^\mkt=je05an(L,E*&4>XVot=[s\=k9:O:Mi5\SnnuC(J_Z %(+[GMDW##1S[$S,,ZfA2&-gSLTYEN8lS=@%Z(10.as!?7D%Ddhg[M5rp8.G=l#Z9h'0Z5e[u"BG+KcpeUSX#m7>OtN[`GF*Lf9cla7`2Wh$cbmVB4qhNdeK7l?;tn,%FCI,A`? %+7>l%8QdP:'`@ff>Tm"9^l@a;IOI/08EC_^_N$j3,s=-?rtQ5ViEeo3W+3dd,L-X3XB/WfVk!^7-a0ZFq"dkmr>JYKI&'0E5\Wf] %B:eS-Tlm!>!X%or4V$qc.o81qAArbT\F^PuaE-BS1S\/Y\O"O)8jr\b[G=CT0'NWaX$$GG.BF^`B>H'Nnu7\E"]dta.='9[+hBDS.3Kp(pDY^!_CB&*.dR^jt.ALner1K7&`18[Q5;\?HH1NJM<5Bu7m:Xt5(]@KP^81huE,VsK$ %1a:k1@Jl-N#T3pH/'SnbI+:b[8[SU`/5IW+$)@L/cR[F*nr'58seHDt^>QF:*7`\Fmo%Tm!em[]u#l!3V- %7CdiPF1,\j)5\ZO!_'LUi[7'&nO>47'%1/h_Eltru`3pge'WWBE;$'aqHL3`(* %nj4P`P)Wupb0E%*>'h1?i\ll;X!"Hq5L^UBLhAUP)#77-LK9T,<:]_5KA_YTC:1Bg/GM7h"+WPM_^I`n!a9E3/`o0:VP!&9X9C[i %).s5T@8!o-?l'.pM9FoY;NlTG/'?3W]?=#i)%"9pT3q7YQNP'=5s8 %gC3ckgXu;5g;r'%VX-T%]3-r_`2SBP.hbSIdZ(+p(EElk@2rPW32Js(27AB,R)IIY1W>\9H8`9cN%p7+!`DLX/.I9SQ3m+q;ZtTu %o3Ika=jLJ?7M#[Mq7;u$4#;1\..p."<'1T4ofU0W>DJAScW+kAOi)Da7GD.-C=k;[.N#OF6dT3^ZrQm6KaP8h/Z?(\ST!l^H1khZ %m5Q).G1llRcE:F/`mI=>X)CFk8R%qE$@B@qSHbc(E__ZM;q:>rm%u7]+GdV31SrjB8051;!JT %@AHlO%n>]QI\#MkgL^!'LL6?N-*(O9Ij?gS.jmQI[G;r%/%@3MG1i9$gT7g7hm[3Y%R4kQm#@P,:H)Y'Q&`OnfC-0)2SX(_])[Xm %H_IgW1Ac1"ro;WjG7R_Uk2=S_H0E!B$=>pO+LB]F)q-CIe"piL5%%"(oji+c&P8\\OjRu*?_+3g-qd\K+]hqkp\E`/8n %STa&=3NLFEZ'0@Dc[+$8]9Zf-H\nBe_rsL^e>>NmXIe2>(N"NT3Jdq/kk6ZJ %]O9$;)oY1:[e$%aY4l2VFHZS&)aJ=MfB\La6COJ9YdbPY5Tmqoke=++C?*%BQa%ZnfH2k-+ %4gY!1VAcpFD;3rO:70NK)aD)R0.'A=rCu&G[X1Ij72u]1;J39,;RnoNSTJN4rA\fFakGe?8_g,GQhH2s9"WP5*QMl,+oqVP4gX.N %NZ`l.^I(:Md(/"GSf9bm??GERVLGrF\m%gDgD]SR`m%Y4Ul-W3%3H!83M+kPXEkASGpDTIlAm.9'W-.)I %4dc7qn5,V?`_Li/]/mIIQ_PA^2Qet%-==]VF %p\K0sDC0AOgY9.(kCcFA>2$HL:Xc"/@2:okn]BgpX3D/2Z'0Y&Q9Q]kqKb1aEKrBF[W_QC$>7TS73T5Q9NF>cHB-Y&(`hqqdZ@FCuqGg[ZiBB*gV(OmbcWVnZI*?Em&;qe2iPKQn:!JA&Q)UlG1+AWF!I/-lqdbjbqQ7B6+(U'AZ\uFgq`&:9.T8"mH1u:;(JMF=*hKb;]E3J>9tTo"*8KlJ %`Hl7X".@YD\Mu\[lu_TkA)H)R8Y\_B^-=>uebuu_P8_m^m@rEC]5(ZqQHTm1F7n")DtWGXXRu>K_r]ChnOhTGg[1ilO65`JW@@bP*<"Ahh`LYDred>&R1SX;CU^L_NWMaPt=KT^X"9& %9'i($8O9`f46KYp`ra^rInuJSB>dQ:'^ZkpW>V)Q"%sX,s0$h(SU(j_hpb6"o5PMX+'6dQ8KT9+`oNp`qj3M@X:,(G[Js;*Ut53] %nt`&8O':P=5aA;J-g]A$6gan+C!pb=Uc[9s5T^A/96?'08PuCq8-86bihXZ9[eD+8VlJ'o^-JPC^TiDNIXfGhmprL8l3EVD>gLf] %V3)`B[bl"18d`&C4U8VdN,Y2^"Q,f?;LCFmgBQq^HNZR#-qS=BV=O65)U'l?_blNlm=tfp.]R.IYgA*d %Ebjt!;j]GYo]qd?g1CY@N/7jQe-S)d_J3sHopPJ[gJgs,"5YD5HcsT:-05AN7]A+lA3Mg&q/kVUG@B6k$eG%=;@-sOrua?*N!6Yq %'=!27g#Y;:uW2";3g=LKfS^V_NXh$6LI)Go##YXEh`0G!hK6K;sik;rN58gLKXM,+(us#Y;Xj* %cs4-ZFHgosF%6XGW(drX+.7iLE,d3F=S^9]kI_DD:[Y\c"BNZQQar5a[J8a3V>Zp3]BU'9,\/?(2YHA1jR+.P(N?Rr_4@,iYE6Nb %oY_W7:FV>"^lmk!@FhdXFebd.+EjC"HDhW4GT,JKoW<&&*AN3b&&=`g$)Ws+^i&K(8N02*OnB:B5)2@?<4?QEG$AV`+!e)X"KIte %5d]uak4mrPi?2>LrirY:fq=q01mG?YX]E-K8DI4=`:l,P6$=!hgTTdD6rb58rgiRkXFKd7it6HPI4@\o908:QY=/ph=KeqWq"@-BZ/*2(tW,s`Ndob%]<[H#5o-7:6_?jhQFLU_&H-`Zjb#7KpdcZP?(8<9@<2%g^?k8IOXe+)i %\7KcdTKjB.P:.sQiI$[%'",<"+=;C$&0MbLBK^6rq6bkt``U!eSduaB]1=DU")Gr`bM?aP2[I*-RM,.4n@4rh]e5P4FG8PT-/LR\ %54/Kj^:g]loO')rqq)bLXHX@..[-,XTTe:"Mo(3`8pK-hYBc+]Um(3l15/%Da&;\!nsaltKhtF4/gZD`jB5#M\)[o'l]rDBaWgVD %AU%i_$QUQBU=QMcXkml7H7^"ZAAiJ;JR!5f"Z3'@WQf=!'-oOpp<^V28^q2.fLH!oJ/K+Qj5ZHDDFIJ>2%0Zh*6-n3[5T?8!;i8L %e_X*Who`gVUE2BQIh*4!W6K4SXq6Z%$(ANsXn/>)P$)%N8@sdQ9>4m;4M.cJ/T3lM$7,eLoP3E;8+c/]GrEqbDB[!NlK:Y3>J<#44UH"$%G!E(CMldTF=#ZJW[Ac@G)iAi]59cEjnGBldCUMI2 %kKnt9SOF&.g4/SI7i.:sk.(G'oa-uc=Dlk2^:k./Qq`<1MSDVl"d4qG^4q_)NGjreTIP@$ %g`4\_U!"))EdDIYpjN`sEZI %rN>:o<@A;dSG8Q\3D(IX34J9]I/dWc-fmN0/9jP7dpO?.ps+.PlC3B06>I@caQl11Tn;8Nki_EVnUdf9\b&J'j%E8oY!1qMV5etK %3EhLoIn\2,E3tOS3LW'sbN9?q>3@2t$)uKkIZE!)8\XhRj(RN94l2F?_2Nq*)AibCUP%%p71P?DL\LdKEM[I@qJ1dL6rnrnjC5MA5^sul3j/,!JAIFnO2t+pGTgrC:5(&1>r?X1n;ml-8=7U=#3LFWVP`O)+@&[=X3g1$DA/K.@ %f+7XO-YtQNckT0jM4mS'TIZ7]'18*-5o7]# %d!#n(H3@Lr>&]!/](?9>@'j>A0m)XlFQ$oLIUhTi,NoK2iPa*>8'lsa"oF=R995`UZ#9`bd%s7ZaV`mN@d%E&,Nob',X'/oV+8l] %^5LJGaiRt0XW0fKn-sbc,g^;mla+5s'%ZC56p'_npR.?dH.>*eX)'R)o3E"*o4%nm:'i.k.&h0Kq'kkKeG4!+8[&163TA@YV[+M=Fa0c6@>6i"IZG %=a+J19#Pna:#5tJY)Zg7qNNaohXK9kmCY`^R3AHXD9;c::[[,KhbLl.VJ_QaQRXGE_qCuXjC'E+!)_#\Wu!ELYWkVl==B3uVOO_` %jH&=/3*TkK_"SBFQ5Mc+e5Y>@V_"j[ZC`6do7n(o%m2Bmq$k!`"EU-+59>#trOa>1GVCr"0.i2;1F=G-1>o]2o-![b=U?6,b+1sS %K;H5\mi>m-0f+5E/GUckk=rso6HBV@T]=X@LS*.-Ueb#:=$?fbEAo\(OV)r7h_I9"/n##G5U++.OcQ,VqBLX(].:/9SUT*$Ik)FW %mA:_IZ)X1rIQ]_(oNLuQ`78]GX$p?16t8\a6fmm1;"S?Fg#bj9EQb*T&27RgdYsd5OX!=Jk$=SZ8"/SGS"9+\/Bp*pe0BrkS\&o= %O5.p9M@F9^adE".e*+bfOVJq(&ht*]3lqt23Pq!Ol!prr4:tqWQ^\#(ls"[K@OQ2a$nWq!Jg`:BdbQu.'M.b!Ok@0M4:TD*K%&&e %AJE,,Ua;GB8[5W.]:M,?M6GB>=Bn(0$@65`o_hN1GDA3H[k_d24e'&UL>mLRDa"'_67qutJs%Za:,:Dhg$ %*Z9nPo\Tk%+M=?7O\m<#Zf:Q\nAoPZ49DCXn=8Rt*.X$4$^:1qP$!-n`1\f2*6EXgSjuq$*=O/>ETKM_Ikd&:co@+>SN&i-:JRJ3 %6&q;3<'%iFD+t_[:Z[(F-s)MBAZ1ha*n'oceBu#pCS18E&n?+saZN3D!3Por>T7kc#WI4>n(g8VOUPoG:Z8 %JhG&lff=I$G!'$BT7>M`E4PP#%3,o!?9s>jieAHaf@p\`IcKD(n+t=b&j6kfLDqLB0Rl2)SL*fSi/lsWGW^"#,&Z''E6P(:X?3nE %Gdt77!>@h]LZ=e,d[jY9'b;+c`=f=rd$HM@OH,a:m7p-`=RJ,1Td7Ot\n.HlOc`]XrR(V`i8O@MKQ=e[bV;jLX[UPp]Jr[-Gj]W1 %W5K2dabAbcjs"ATi3QcQ?_fa$1;X>G`'RuOF-VMHCd!kgL^4*K"WYIr8RXPEM1>o:)dYqt %f=)nkV!=`6TUWY>;QHQ_F$9'*KSWSEB*`ku7T"%m"r\kMq32bZRQh7'MG&m)P`S..P,@sLa9^J:S0UEUbJI5u60'OClP[nE>O?hB?Nb5USKZ.f3Qk0!&dVa>*sq.&!,hfhhhkN'YVe^s0n@rcj:PDUUEmT'2,QdNO%MGDgq[1u_1`9*-,mX0JjjNe]I1rAjk%V'F4F><\X4\.$@/2TR?ck(HJqEKZ_>16)&2\qn+q>Z,+%PJlbA6\T)J2jDgC7* %Ah>I_H;D_\7ed=d*VG!YMiC;9*)Yr%c27Aaj_ht=L %PO$(E5.#"7Hl56TNMc#-+qG5Z(HbG29:*P3h.&9IS=`6l5W,?N]!tkRjL7;N7ao=*L,!Un#)oEX*q"nf\s0i7I7D])`R5@1Ei@B- %ED'3jbE/I_iaV/(RaNmal/Iq+iTV@d1gSo4;&s89d<'Bn@)"Y5ajG3M6Y4;>p)6Yl%^BG2e&B;S%0Edc`@qC'"%C\X?)&[ZJaY[h %:)Q;V#!'VJ*[6g,W3LG4+qHQ"0)c=XYbUIB#,")(R*g"qiFAZMmSK\Cif*%e\kBVqBY#$g)#:Mb,_@7rGY?>$fP`TPS4]g4j3&p> %Q>HW)9Pq4*#,(Lgo@PYU7H3q>Z&s.<(NKaEjc7$6n`D5^Gt@VnQ=HrFoj9X$WErjMIT#Jh),?TbD,]@-Ut^'Y2P(^[RFPq;*%#5o[>]2HE@b&B6^5L,gc`F?#=Uu'qkH9F\c#sLL<:iBh`O7O1CFggsu9^/p-TAaY^jhst%oR4B)[@l]Vo4jR-o?taNq.gmFH %o:0C#dLBDbQl7rMVfe*e/OgF="&[Ap(StC0Fu"p]7Y?T8G%JBQ\mF:n`lLc20MHr6OhYe+')\3%7V[MVI?6CZ8BI]o>%-ah2&]84 %qO1L4A_`2P\6=1IJn`,M%5(gf6S01%)#oK,fo9W]:gg6F,I$mV?b\kj<4!m*Fd]N`q+1L>6e_0QTmtX;+$Aa=OKYpl;ddR<*)*)I@.C(H9PeUrhl(F!9pR:f1)RQp:E$,7iAJAhc>N1KXW%[_mW(rCI\SMaGPFt8PYCb_E %1N+C'.d_FdqP[=3I]>W=[Q%2&6B.[0QK#VrX3!='`H1T2O%W-ccWie]#>1(GM3#G0JU)siHP %=1CnO&WrOkZRXc':q(b$$?tIMa+;F.a&]_9[o-ONjHEgtD^b.GRmW$*b$![UO)KF8$?tHTYMgCDbBYSmjiqP#O&U.bMp;[NMLVeV %8)@)_lo%?bXJ4j-DOD>D>91E#j"a._>s=H2:.'hbb`OG(1X?dVB0^ANnVtFG6O9d4;%ap2Kl"$\EK]q1V$&N0aHUYS]Y, %oBc+%A9]sc)2e2G/VT63L+t!)o!Y)1Z6J/Cj9fD.lI0R14dW4CV)HAf^hiJsD]+41]'\@,?&=-(I0MDTr\4g;]M)q]]d\]GV!qTB %*jbEm'uQ%%Hpf^E-n>[#b1`*'5.f*;mSV)MO^4+;.5=ag7_-PVI;G[K@2@s"9a*o;=V/auj18(tkN;)7LP`\$kk/s>=Bfb6(fr8O %(DV5c;9q6(1K/A-KnVld%O+KZ>%RSS5&NP*AldZ"[o`27%FP'[ia-PPftRHmq.6V?]!gpPg+S[Kf$!e,)s`akI)^HgihE>M%k`og %QU5iI/m@q;pis:Z,<%AuMY\q,Z%!i3:/t7#`5BhPhOc%siRq!_V%4fq\4I&S%+n14rTfD[5?&7Ce[@]EInZ6Z)3Zdam.>p-@R!a; %h3n#&8],]'(1oX;;C+0%:a,nJY+?+>'4Uu2V\2AGg@%8uj<2+g%u[W+B!?4k?:o?'lhVq[o'\FoglP%&D)X\-MVBYLFQ0OuoT1nD %/M.7sj&LV6L;WM@Dfua?ol^GV$cA0WN1;?-'5%]'hZ]l1`:])R\!X4gp%:!U?^]\jqNU\`@e.m&;*$_rDSOdJ[@^@q`2dm]b0uqV %c:5.`SPD"s?=unrm3f]c6PW+>D=2Yg_n@Ue80:" %0R_8m3R"&a4rbM%j:"f/#+X`)HTUoFS7;0qhchFPN0.CheH %^Sg6TkUFM$lWnnR)k4&WiZ5-IjuLMVNN5\Z\N@cnLd'C"-t&.ok6^6DdZe)99Of4>q-D9Y>8I#>99/f[E^0S3Z$5NulUn+u"G:8$ %s38;2I@(R=0!a"4`0-&VoDpZsENi!DE3aZ.@K;&OV:R-2"HnY\!2ej$8K=JfML$H3[Ds]2]J4qqoCqKFc5QkQU0Hc9!mDScR&c*I %!_i/de4YW5bn1,H2[1s3PYH04@/_"D6u_da"su23YU:AMl1Q\l##I\r71M>R4UkSZ0>/RaY_r#Ek(W-1-sn,u)b=.3^I@s-.^K#( %U3uKYCtM2P$$lokU?[YuMd2sl]WRl36X3X+^2cT[eFi.f/R0B?r=U6mWqm/L %2\aj9)uR*\T"9B=n!&Q)f.Xh;?gc]G)0PoKk(XeUY+H+m9[+#(?sUP>-]8hd0oW\mkmDdm$_i+8qLuBtXQgVf;sL-\?i#,H6FK6? %='`T5XVFIGWTuL%$6\#ErR*XCUtEJ*rHQ+`>#t72lh[Hm3/`hhlneQ1I@#"nB4)u/FVo9"fS)pabZ1ElU+8?,-#iY"5X-T6:+\X839%O0=<__.iT;#0u3OWqm1$*abcWT-KdL>1YE?gdCFDgO\Yd`Panf.7KM) %#-.!e^0-Isp$4C`XiL/R"I"U;f.Zg2Glq`0.!>L:c0/L!nb$7i4&CuV#\4cZeZZ`6I(e7^ES2;*Fo?V9`>9RFS5EpL\pimDrDFg] %H`HBj0H\Jp06-%4^^#lo4/pt:Uf``Wd[+E*_`R!Q`_/THu,IeId)_ujAD\]p/"r;YJJ4!FmD#f2\o7pFEV%JltK!QG#.8-OY+YAO" %EUB4Tr_"QufI`?IDDC`H]FT`KL0\!2LIGe97"FX%?<*=.@EbGg#RM1&+]+cqljd3n(_8M[FYit[11-G3+u*-t3:CtABt')Ig;qKJ %qdX3OZnPp;5-idVB=@E==)#BM-[0?t5I5Adrag1^Y<+nQ[XD0o^&IFNN1YS@gFU#pc4;:<:T\p*r:'+)I^cEfr)>'beBWLB %q!7A&jgj5/pj)l2n[X+R;`T0=]\T!I]"QpeSc3bKs#PEgSR)0HRf0PGD3rPG-JNBYHt9TeCK=']ps\6pQc&^D=b$-YCAD`Eoh]u` %2)a4VQ%d\LR;Y0kQP!a+UcuD8Dlmd/g<-_0rTWp^[PQJseojfKTA&\qQ21.Ne+.$^Epi]42a5)&/XPA'As^0j)a'8q')&2>?+RN4 %cK"nk<]R-.a/"$-ft!4>dcF5Jo?6j]iV(^Rd_.148a?XWY.pOH"08S/k>)oSDsc)0F$0$hpgBESZquY9lhcb6prl.jl?(fcXKRsc %cZf(1J"5sZ=oQ@%1Fn&EiL%>sc+A`E^Aoit[l^A>Hh/KLkAM(Di&h+hEmbHM@['K\G4hV0&,91&SRDHJFh'@YI8i2-\<@:69uG]] %]`*)b>3X=K!f-O00UD[m5dIlB75,@A_S:kHeA,%5IO4.C91dgDGe7tjYN6I5#:-U;mVs7V>'AVh7Yt"lhePS %NTY%Fa2;V-h7pVu82"$to>^1c_jjc,^s'*@_n$B.L!FCl+6%njon/7PSbQSfrSU"l.$VY?AbDh=V4Z`L:&/1GI.)oAE'-j]7qhNm;!*q"3#Tq:(dT(*<7HT?;6kD0k!dN;>P*Z)p$9qYTQPFuc_"U^5!d(1tX6%9]5UCaCoSBM]jZH5osaL=Iea %SI`%CMf!,&_E)"E^HG7f\siV=4sD]VqSlWaD'!lO%R,CA+VDtdIXcV$5kqFRNNp%+KKA()MW`"AQT^lP^ukTPc$l^#)!na+S+"Q' %Der-LD^."K-(>N)]@8;Z$p`0P%L,`X&Jb@gDLI&m54#IR3is.6"ZG8=V^J_X+B1RliSshe2(F,F:QoVq+58/"4"GCiqsk3;H*3*= %0ElrTmGR/mfr`Gu>m07jp86NoVb!LU;@sTAFD!#h=%CRg1,`;pDr`_\m?:@^[)ENW0-Jq$gD!@tVsXf44F^Zggr)6DJ2;Ra=<`4P %#Q!6:;[)E1=s\.&9D2g:W!#2+3/a#D0MeZYm^l[:>QBLt06]@(]W=8hW`!3-O#FGaquDk?*$$egZEZE>1Q+6$ZT=$-FsITiC+2Hl %!W[;Q&O>N8>>;+FJLe7J%d"rh3iaB;]m$K$9\<(9*\;.Ih,kVM0:mG2'/PK-b'iBtaH)cQaD.A\k8)]`3j %fjP6*;KG<-WrQp$6>i.N!*X6hY(R!-Pch/af>J6H;i3J'Y*Om"+t'bjF`H9.=M3#^T/PkoiDNsI["0]T=f-&n3k$G%dd8XHaFiAf %Z"f"#H,+ltX2&uX-jpQ\jt\E-7%ar.`=K,(na_lQ6VfKsD=`c879DDRNZBuFNT4r]:hqGK07e+'4;[>[Mc?$pjbnBj8,s#l/Kp8p %'M@CuYK$n@]lUd^pujgQlgDhjU`h3p:9%gTd?5KOqHn:QOL,1,0nHp %*)S8YekeTn#t#cATT/kZ:/;ocf-]Yh3>KMSQA+F.,F%/k18?D#@4n.+ZBu2/!+bA0LJ!Yr[BF@+Pk.3jUn7Sujd\^HWp9C%;9f2O %61t/:.-H:^83Qttb.2Qm6IkZlU7CgXP4[ts.-EtGq(n7VlK_Buo08t>"""9'o8%F)*4k.n-E+pMe`!@j.B3krI9e))35Z?h]Z%G^ %_82bqD/ttR9kfm\<10[(>k-I;`(6O[9I>d9Dg.XX"C;_)5N0Y*ZcqdpeWFd/Xu;)BEsdfKqhMl-o2W9D.tBb./^+jQ@?*!YmDn$5 %Qn+ND#@*1!5Oa:5-J=aAB`[74^i`mAe)dE/fg]N6*[pL#)hdp_N:eh?.u`dFmo;4AmU1asU/[7V/mIYCbKds]ds_>'^h,]T,l5g* %PR!)`isF1jfDaZJ_0'%ckZOKY2I+udUWY(c8YIj4F=DXhgD@; %kD8R!6_K#MRl^L-;SX80;Z_csL:[NHgm+7^bGF-[[G?-,ObV$YX(b+#-K9<^B?g%4I2H>p=3>Z]O;dKA-+G2I+ %[TRCL^Mh@<*Icj-fGci;RQf,PmJ>YigZFi>e;;e#m=j!Nb3[U%qN#.Hgc\bFR=d`mkGc9eCkn\`'*Wq;S>F8W!%O`2G:,kW59*n; %ND!OL-L>;ke#SGO9s:^/li+ula3iq0g&(=pI]tR_^LfZgbT1!VNm,.q[1V4XDR_T3i+S*QHF.(&/[Ej_^:iWmHJ0WD:nSL)I/IuP %)Np?<]o3T**X=Rl[B""?jU*jVCXq/gp=le)$mQ[\:E^YIkJ@o7A!^A;e:qL$JC3$22WgSX;-VeWG(#Cm5rt)h#S;Vp*T'uY+)CqD %QQLq&6@Jp1q7+F/375\Mhc\gJSY[4WVTui\0h4EX=ia+UgcKjo[(g7haSAFroJB,"?gmL#R83_a)*\1PT!$5@Doi(_B\OksHNs7I %D4P&R>2:7i[iTk6BaL>*.VQ?<_$"]:nE0rmG(q&5jn-P,JdK4Wp0ioi#@N-=R&8Jjo9*t^=U<#s!JkSnWZNQ'*ZL:ZgE3l*?Qgp, %06f[\pHe^TLgL9*qQRiVL)_pc4R1DA4X,*'O:eDb]oTn:Zb8D&qml9eZC(eO.rH=,mXK!ST?<,D=mY!:?3Q>Lr %/h.:sn#eMGmVm(_IKR,V`Q6kZA(f`qi2l@H-$Q5?75RtU6imldEc#s.dDQ:;./fe;7Tfp]V*Qb42XTo+0?*X$IJ=kS<0`Aj:2IL2Tg8WI)WGT^^jc'`SRc9h_YC! %i!=ofJ,&UWTMu:%h:4BEg!nLQVqqT_NN&T5]t?BrjW[]eQab-F;u"qSH_J0J\^lMD\c8A&7C`CPI7^MGL:UUW-UJlDG5K1nB>ru=n`e=+H#,0eit3Bk7k$R9qq^KUE@`j!IUqGrYoi[6N@\AM$K'?%`&D75 %T4U'lbe9KIiMS@jkJ:,O2V"oYnSR/Y)UknU/n4#YfE%$Oiq,'CX1li_[[5BE4?m%p2'4+!&]Y1Np[@Rt81C*/D[4LLk3n[0[rXQV %+KPU9%t)^8=3HjWiA_'d^D'K4O=#9dX/06I![a:Q5#[.nseY6h*]c)NuT4[>.f=2*rd8Qe!Wkh/8cj^cCFWTMfjgF8XI %F-8Mn#B:p(17)W?CJ[-23LjH?Wn4G02(4dUUjBCrD$*r'HlOR!rHFiMd$Fa[+hiYL?Nk]d@UI#9@pg67U>3Gj^$_E/-_Z6CjBY+3 %)Y7cc8tqia]6SiQVJ:dj(f*ff1eAQ9H@?M9D?CX6$BlT*f2bZs3Tr.jN;cD6S9)k;.m5=:mEsTrEc3fY>@=\Dn3(X:tjCkgTAJJl3]#*9$hTb %lb9j4K71@1$[Rs7?\AC=:Y.8bL0$3J)ud(Hp$f+<7J[eml/H-H:qEd1[C_pSpYG"EUY>^Z\:@:T7u%n-S&L(*m<]4h %(Q24r)XS;d_ai2>J%C=KhA3KX)Z4sTYJSM1_6>NdZOMDV^fn+NmG_$dVH99K>s&%-EkGDZ/\SYK%F'A;1q$>A[55asZRf6\J-#Npi@@jh>-4HeQL8^B\7/\-D/n\\;B,4;c1a>WS&1@#J#C %FPRJOkA+Y"Fn0Y/.N6$(2E^2?)BK;t)Pk@EF]ae-I4RW!r#0K@&36VI>P=Sml"YNlRfQ#r"^B3Viu&=Xb:]8D[:qU3hm=B/FO,&V %fn(18b*JgpEFBhk_\T<>\U_[l$grk&KsrM/lbIM.\fT`UegXfSpr-3-9.U*=eF>X_YY7$#dkT?YL`MpS#BDZ:1teW#A`*7PCSFC' %PAS*,GYWW*SK>Rj4ZJM8/-eQPr4aVa=UVNi<'Dhr6(O?qQeAq?"iakBJCp@a;3S^l^ER_pgRI9V:anpN52u#?u=Z"qfP9@i"iKD %7k>V3LMiP%=hdOqTRiRgJ0h8SB5R;YTH4G6dh(^iYW^18#\A9BE.qBAB)+Jn[:LNcR4uBg\7B.%K$=?)2LN[\%BsNh"?`u;V2nn? %1lW"*S+qnq^Y$,floo"^LE%CP^bc^MXUa!^lc@8#?U#X/OE8bUR4@'AMJqa71Us_Ei%OVP>Zs4:mLoH\K&MUeN6!L9EZ2eGf_V83$ %DAeJNdFDPMie$;))C1t&-Z*S3"S$mKfL$JX//22+"W2%sKfQU;'Ot5aOIlV;5W9]-W@V!eYROW@]?#I"ZL(lc"ii7-S7C!2!CdR9 %h[LPIE-kuZ.Rek12@P7rM95gU3YrVV75nW*#"V5YSdWutZ%S4S'`\e&,TqZ&ciW24f*V4ej'b#Efej)dZBfjCEYI,[li^NN?,Gk8 %6tuWZYXA1<6#GI("b^U-XMA*#gE_VJ+NLm0+=fb\7'c7uQHD:#Rkg<l)A:O=T_E_B\MbfQ=([:[Z %1t`Y=Q]>1)lk)W!N8tV?dntHII2h*WGd7L=!ns&R+>].nFs4l'Td/mXNuM"E$XAG4s:*]oh9$bDEqUL>2X`;CiY";V+ %^e5dQYs0KWQ\[."XW]_@O*#^a&bG3#cHS2S9"9M[@=rr^X$b<*,oE,28b"u8L_i.[=2U_dU$21!F]*CL<6.JTE %QFG5SH3PRXkf)-^!^ZR#DU]+HU4sif"8"K\N`S5e&.LnrQ8AX#keZBao(Q[a"erged!>jG#oJJt[K&jK8`9/-)d$?qpAfFT$'[QO %(!Gip6A1`J8Y0I],8Cc2hH#UsZB75ZL=1Zh!/BmqC+k+DU&!,'_Zl;EL:#=%+:ef\:`hr'TSB3a$apqEXWS#19YN)5!>Hat=H87i5%:7i+;?R6e$g'. %5m!TF#4d<+Z2UT]:RB/IW\qh+*?UUAK(`3R\B*CG7eF[iGhuZ5Ikdmsu %]oZ',6QuqVca&DP/J/3:,E%YkJhZ[g=0m#Q@:42N%T$+)Fc>lTM(]p+5Mo>^I"X=>7"I&=6M1G;0N"d(&-d8!Z4Z>AZpCd.Su]@@ %D.(Zo@4imlqk=+A$Z)=58Mh;-E0,`\(rJ*;kt/h8!/#^Mh[!`t%,Xs1OLC.?1P:#6?kpiA-lZHDSY?RYAl+\K30%^OcGf"u\=Bp_ %Z"GT$g/kh4BaMsg_dVRFZq2Y1$u`0[E&m+t!0T5k'7g8>["=e2nb)O)S'SNoQ"[1!$5=e`*,t3&%8ofU-I&I?"h"jqd52Q(PRX(W %@qu)oMVKJcL<9(gn10]aSS*9jrrm^q&,6 %Y]m=EMWja[f.+jod<6])!@hj&5X[$QSq]&d<3a(W5&N@`bCQ^ %.(m^nEJ;'m:h`9E&;h%3g&OV&kY?LEJjUbDKULu=?q3?<-Kjm!bpu) %H4cj&a6d&h.>ns0%7bWQ2k77s'bemsdR@uAj&"=+[^d;tL$LWSbRJ[lR0IfOGd&";K!'3VW^O-/!lD;.8E@W_[Q$1qb3fYC9nBJ9 %dAs.3-5TrY%U#b6FBfae^2bo@m@]dK5;RDU7\\3FN!;YXTkE$+&HNj_NWt@afn+gt-2pZeL)ba!@DGDf4,d^>A]qQ]F[`H#718sL %JSn?Wb$LaDpujZQO_g)H=0r-JB/&8bpI#tA;N9makblf[FlhT\M$kE1=q4ANn2j1pil<]7gGN7Bgb(t,Gc."RK[S`)H %n2kr23oQ:$;<]4+,Xs")iJjIepSbAYAcV9cXWY*D)JE3ddX_8A1[,n]CBA[T&PE\=&6t]fJaT09$ZAtjfd'bj..KLTYgm&4?JXR; %JsKi>g^os]&ZpjLXIoQ/X2b3$jO+:5,u/^_Npc1c2k\>7I[=p8-jTY'-RdrKCJ6Q5]9R4SFcbNHY,TnA[tuV$9ZLAa4U]8jD(BJe %echbD$mZbPCqPV.a9*1#oaGEZOf\rV';'4DUWXW(f5+(\3hR;eCQRR4LiFnJe917=i%if]io*V9V/fJECPbmuqJBMl]7OQ_p?!hL %M&$iK]M5I7=JZM_='9fZIj%`ne*%6u+qR![!'DTF9HmS`o*G3+>TnE>?(FLqYn'LJ?CK;3STH9-\O;N2;Bj1?M4!ML1L*)O8]h._ %`5R;(UKZoOP0r=]-THWoj]jLgsD1jm1/Q*S02ME`Vo@G\hpbp7l'gTgI70J2CU]Au0Vc"a+dIMk)Lc51*k%M?AIG#b5 %6tp.!KEJc>V+Wk5dn+;mV^NZN/>X.dMg4\D8!5HE51.@djagl2oK]tTnEr8%b"j9K)X+$kD$>bn.AMb#7t''b/4?jb1.%8IE/>E@ %.&q)g+>S*F&Z-[++osi'4qMX/B&cTp8M2KHpkr6tA93\J&(g%bYcYnIH)WYc?RV17X,jYamHSc+eh0(.WkW>gC892C?. %f/h`"]2n8\2?/@^n.jfn<8'Cd0)Y`)_k(r~> %AI9_PrivateDataEnd \ No newline at end of file diff --git a/Style/IC_blue.pdf b/Style/IC_blue.pdf new file mode 100644 index 0000000..a2aa93e Binary files /dev/null and b/Style/IC_blue.pdf differ diff --git a/Style/IC_white.eps b/Style/IC_white.eps new file mode 100644 index 0000000..089837a Binary files /dev/null and b/Style/IC_white.eps differ diff --git a/Style/IC_white.pdf b/Style/IC_white.pdf new file mode 100644 index 0000000..3f7c485 Binary files /dev/null and b/Style/IC_white.pdf differ diff --git a/Style/KM1801VM2.png b/Style/KM1801VM2.png new file mode 100644 index 0000000..23c6bc0 Binary files /dev/null and b/Style/KM1801VM2.png differ diff --git a/Style/KM1801VM2_I.png b/Style/KM1801VM2_I.png new file mode 100644 index 0000000..49150dc Binary files /dev/null and b/Style/KM1801VM2_I.png differ diff --git a/Style/background_dark.pdf b/Style/background_dark.pdf new file mode 100644 index 0000000..bf0cd0c Binary files /dev/null and b/Style/background_dark.pdf differ diff --git a/Style/background_neuron.pdf b/Style/background_neuron.pdf new file mode 100644 index 0000000..a8391ba Binary files /dev/null and b/Style/background_neuron.pdf differ diff --git a/Style/banner.eps b/Style/banner.eps new file mode 100644 index 0000000..d13a60a Binary files /dev/null and b/Style/banner.eps differ diff --git a/Style/banner.pdf b/Style/banner.pdf new file mode 100644 index 0000000..b7e1142 Binary files /dev/null and b/Style/banner.pdf differ diff --git a/Style/banner_icon.pdf b/Style/banner_icon.pdf new file mode 100644 index 0000000..d908c2c Binary files /dev/null and b/Style/banner_icon.pdf differ diff --git a/Style/banner_long.pdf b/Style/banner_long.pdf new file mode 100644 index 0000000..abb2fdf Binary files /dev/null and b/Style/banner_long.pdf differ diff --git a/Style/banner_name_black.pdf b/Style/banner_name_black.pdf new file mode 100644 index 0000000..e298b04 Binary files /dev/null and b/Style/banner_name_black.pdf differ diff --git a/Style/banner_name_blue.pdf b/Style/banner_name_blue.pdf new file mode 100644 index 0000000..2127ad2 Binary files /dev/null and b/Style/banner_name_blue.pdf differ diff --git a/Style/banner_name_white.pdf b/Style/banner_name_white.pdf new file mode 100644 index 0000000..59efe42 Binary files /dev/null and b/Style/banner_name_white.pdf differ diff --git a/Style/envelope.pdf b/Style/envelope.pdf new file mode 100644 index 0000000..ac478e0 --- /dev/null +++ b/Style/envelope.pdf @@ -0,0 +1,71 @@ +%PDF-1.5 +% +4 0 obj +<< /Length 5 0 R + /Filter /FlateDecode +>> +stream +xMR[N0 )rI#J,%Ʀ[Jc{3N3K#h_+}o?FwY$s(I1 P=lMI9Ǹ` +Nrl);giDRk( I7<|va1c8]Ƣ6h@DWW4KAvM{_Q4Uͦ _.S@%6ZEm_Dާ/Qcy4ǤO9[ EH +MQKu-gѪ:m_L'˻ a&Nj2,j~5c +K^Ij׏G{kh~M +endstream +endobj +5 0 obj + 327 +endobj +3 0 obj +<< + /ExtGState << + /a0 << /CA 1 /ca 1 >> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 384 288 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /CreationDate (D:20190417204443+01'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000731 00000 n +0000000513 00000 n +0000000441 00000 n +0000000015 00000 n +0000000419 00000 n +0000000796 00000 n +0000000912 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +964 +%%EOF diff --git a/Style/epsrc-bw.eps b/Style/epsrc-bw.eps new file mode 100644 index 0000000..c56f2c3 Binary files /dev/null and b/Style/epsrc-bw.eps differ diff --git a/Style/epsrc-bw.pdf b/Style/epsrc-bw.pdf new file mode 100644 index 0000000..63e9652 Binary files /dev/null and b/Style/epsrc-bw.pdf differ diff --git a/Style/epsrc-color.eps b/Style/epsrc-color.eps new file mode 100644 index 0000000..611ebac Binary files /dev/null and b/Style/epsrc-color.eps differ diff --git a/Style/epsrc-color.pdf b/Style/epsrc-color.pdf new file mode 100644 index 0000000..ca53e90 Binary files /dev/null and b/Style/epsrc-color.pdf differ diff --git a/Style/linkedin.pdf b/Style/linkedin.pdf new file mode 100644 index 0000000..350da3f Binary files /dev/null and b/Style/linkedin.pdf differ diff --git a/Style/main_logo.eps b/Style/main_logo.eps new file mode 100644 index 0000000..26d7efb Binary files /dev/null and b/Style/main_logo.eps differ diff --git a/Style/main_logo.pdf b/Style/main_logo.pdf new file mode 100644 index 0000000..08d317a Binary files /dev/null and b/Style/main_logo.pdf differ diff --git a/Style/phone.pdf b/Style/phone.pdf new file mode 100644 index 0000000..f7ee078 Binary files /dev/null and b/Style/phone.pdf differ diff --git a/beamer.preamble.cls b/beamer.preamble.cls new file mode 100644 index 0000000..2c7849a --- /dev/null +++ b/beamer.preamble.cls @@ -0,0 +1,178 @@ + +% Modified Beamer Style sheet for NGNI publications +% Last edited by: Lieuwe B. Leene 2017 August +% Modified by Lieuwe Leene, June 2019 + +%% Before using the beamer preamble which prepares a standardised NGNI format. +%% There are a few comments regarding the file structure +%% beamer.preamble.tex will prepares latex packages/commands +%% beamerthemengni.sty formats the general style of the template fonts & colors +%% beamerouterthemengni.tsy formats slide specific things such as title & Footer + +\usefonttheme{professionalfonts} + +\input{personal_details.cls} %% Load author details + +% Beamer already loads the hyperref package automatically +\hypersetup{pdftitle={\maintitle},pdfauthor={\FirstName~\LastName}, pdfsubject={\mainsubject}, pdfkeywords={\mainkeywords}} + +% % % % % % % % % % % % % % % % % % % % % % % % % % % % +% PACKAGES - Comment any package deemed unnecessary % +% % % % % % % % % % % % % % % % % % % % % % % % % % % % + +\usepackage{graphicx} % figures, graphics, etc. +\usepackage{latexsym} % Optional extra symbols from LaTeX2.09 +\usepackage{amsmath,amssymb} % Math formatting & symbols + +\usepackage{subfigure} % Introduce Subfigures +\usepackage{cite} % Citation handle +\usepackage{xcolor} % Colour +\usepackage{booktabs} + +\makeatletter +\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +\def\@bstctlcite[#1]#2{\@bsphack + \@for\@citeb:=#2\do{% + \edef\@citeb{\expandafter\@firstofone\@citeb}% + \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% + \@esphack} +\makeatother + +\definecolor{ngniblue}{RGB}{34,57,106} +\definecolor{ngnired}{RGB}{218,30,37} +\definecolor{ngniwhite}{RGB}{240,240,255} +\definecolor{ngniblack}{RGB}{0,0,30} + +% % % % % % % % % % % % % % % % % % % % +% BEAMER - configuration / settings % +% % % % % % % % % % % % % % % % % % % % + +% suppress navigation bar +\beamertemplatenavigationsymbolsempty + +\mode +{ + \usetheme{ngni} + \setbeamercovered{transparent} + \setbeamertemplate{items}[circle] +} + +% % % % % % % % % % % % % % % % % % % % +% DOCUMENT - configuration / commands % +% % % % % % % % % % % % % % % % % % % % + +\newlength{\dpagewidth} +\setlength{\dpagewidth}{0.42\paperwidth} +\newlength{\tpagewidth} +\setlength{\tpagewidth}{0.27\paperwidth} + +\newcommand{\itmcol}[2]{% + \begin{minipage}{\dpagewidth} \flushleft + \begin{itemize} + #1 + \end{itemize} + \end{minipage}% + \hfill% + \begin{minipage}{\dpagewidth} \flushleft + #2 + \end{minipage} +} + +\newcommand{\enmcol}[2]{% + \begin{minipage}{\dpagewidth} \flushleft + \begin{enumerate} + #1 + \end{enumerate} + \end{minipage}% + \hfill% + \begin{minipage}{\dpagewidth} \flushleft + #2 + \end{minipage} +} + +\newcommand{\dblcol}[2]{% +\begin{minipage}{\dpagewidth} \flushleft + #1 +\end{minipage}% +\hfill% +\begin{minipage}{\dpagewidth} \flushleft + #2 +\end{minipage} +} + +\newcommand{\tplcol}[3]{% +\begin{minipage}{\tpagewidth} \flushleft + #1 +\end{minipage}% +\hfill% +\begin{minipage}{\tpagewidth} \flushleft + #2 +\end{minipage} +\hfill% +\begin{minipage}{\tpagewidth} \flushleft + #3 +\end{minipage} +} + +\newcommand{\sglenum}[1]{% +\begin{enumerate} +#1 +\end{enumerate} +} + +\newcommand{\sglitm}[1]{% +\begin{itemize} +\item #1 +\end{itemize} +} + +\newcommand{\dblenm}[2]{% +\begin{minipage}{\dpagewidth} \flushleft +\begin{enumerate} +#1 +\end{enumerate} +\end{minipage}% +\hfill% +\begin{minipage}{\dpagewidth} \flushleft +\begin{enumerate} +#2 +\end{enumerate} +\end{minipage} +} + +\newcommand{\dblitm}[2]{% +\begin{minipage}{\dpagewidth} \flushleft +\begin{itemize} +#1 +\end{itemize} +\end{minipage}% +\hfill% +\begin{minipage}{\dpagewidth} \flushleft +\begin{itemize} +#2 +\end{itemize} +\end{minipage} +} + +\newcommand{\inserttoc}[0]{ +\ifsectiontoc +\else +\begin{frame}{Table of Contents} +\tableofcontents +\end{frame} +\fi +} + +\newcommand{\enablefooter}[1]{ +%% Put the Footer Subtitle Here +\subtitle{#1} +%% This shows some Footer graphics +\titlegraphic{\includegraphics[height=2.5ex, trim=1mm 2mm 20mm -1mm]{Style/banner_name_white.pdf}\includegraphics[width=2cm, angle=90, trim=-14mm -3mm 0mm 0mm]{Style/banner_icon.pdf}} +} + +\newcommand{\disablefooter}[0]{ + \subtitle{} + \titlegraphic{} +} + +\input{default_symbols.cls} diff --git a/beamerouterthemengni.sty b/beamerouterthemengni.sty new file mode 100644 index 0000000..e986f63 --- /dev/null +++ b/beamerouterthemengni.sty @@ -0,0 +1,106 @@ +% Modified Beamer Style sheet for NGNI publications +% Last edited by: Lieuwe B. Leene 2017 August +% Modified by Lieuwe Leene, June 2019 + +\mode + +%% This formats the title page +\ifwideas %% this is a 16:9 paper format +\setbeamercolor{basic}{bg=white,fg=white} +\defbeamertemplate*{title page}{ngnitheme}{ + \begin{beamercolorbox}[wd=\paperwidth, ht=\paperheight]{basic} + \setlength{\unitlength}{\paperwidth}% + \begin{picture}(1,1)% + %\put(0,0){\includegraphics[width=\paperwidth,clip=true,trim={0 0 0 3.5cm}]{Style/KM1801VM2_I.png}} + \put(0.04,0.25){% + \begin{minipage}{0.8\paperwidth} + \begin{flushleft} + \usebeamercolor[black]{title} + \usebeamerfont{title}\inserttitle\par + \usebeamerfont{subtitle}\insertsubtitle\par + \bigskip + \usebeamerfont{author}\insertauthor\par + \usebeamerfont{institute}\insertinstitute\par + \end{flushleft} + \end{minipage} + } + \put(0.03,0.465){\includegraphics[height=0.125\paperheight]{Style/IC_blue.pdf}} + \put(0.86,0.465){\includegraphics[height=0.15\paperheight]{Style/main_logo.pdf}} + \end{picture} + \end{beamercolorbox} + \vskip 0pt% +} +\else %% this is a 4:3 paper format +\setbeamercolor{basic}{bg=white,fg=white} +\defbeamertemplate*{title page}{ngnitheme}{ + \begin{beamercolorbox}[wd=\paperwidth, ht=\paperheight]{basic} + \setlength{\unitlength}{\paperwidth}% + \begin{picture}(1,1)% + %\put(0,0){\includegraphics[width=\paperwidth]{Style/KM1801VM2_I.png}} + \put(0.04,0.3){% + \begin{minipage}{0.8\paperwidth} + \begin{flushleft} + \usebeamercolor[black]{title} + \usebeamerfont{title}\inserttitle\par + \usebeamerfont{subtitle}\insertsubtitle\par + \bigskip + \usebeamerfont{author}\insertauthor\par + \usebeamerfont{institute}\insertinstitute\par + \end{flushleft} + \end{minipage} + } + \put(0.03,0.61){\includegraphics[height=0.125\paperheight]{Style/IC_blue.pdf}} + \put(0.82,0.615){\includegraphics[height=0.15\paperheight]{Style/main_logo.pdf}} + \end{picture} + \end{beamercolorbox} + \vskip 0pt% +} +\fi + + +%% This formats the the footer on every page +\defbeamertemplate*{footline}{ngnitheme}{ + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=\paperwidth,ht=5ex,dp=2.5ex]{footnote}% + \usebeamerfont{footnote} + \hspace{5mm} \today + \hfill + \insertsubtitle + \hfill + \insertframenumber{} / \inserttotalframenumber\hspace*{2ex} + \inserttitlegraphic + \end{beamercolorbox}}% + \vskip 0pt% +} + +\ifsectiontoc +\AtBeginSection[] +{ +\disablefooter +\begin{frame}{Outline} + \tableofcontents[currentsection] +\end{frame} +\enablefooter{\inserttitle} +} +\fi + +\defbeamertemplate*{intermission}{ngnitheme}{ + \begin{beamercolorbox}[wd=\paperwidth, ht=\paperheight]{basic} + \setlength{\unitlength}{\paperwidth}% + \begin{picture}(1,1)% + \put(0,0){\includegraphics[width=\paperwidth,clip=true,trim={0 0 0 0cm}]{Style/KM1801VM2_I.png}} + \put(0.04,0.2){% + \begin{minipage}{0.8\paperwidth} + \begin{centering} + TITLE NAME + \end{centering} + \end{minipage} + } + \end{picture} + \end{beamercolorbox} + \vskip 0pt% +} + +\mode + diff --git a/beamerthemengni.sty b/beamerthemengni.sty new file mode 100644 index 0000000..866cea9 --- /dev/null +++ b/beamerthemengni.sty @@ -0,0 +1,57 @@ +% Modified Beamer Style sheet for NGNI publications +% Last edited by: Lieuwe B. Leene 2017 August +% Modified by Lieuwe Leene, June 2019 + +\mode + +\newif\ifbeamer@secheader +\beamer@secheaderfalse +\DeclareOptionBeamer{secheader}{\beamer@secheadertrue} +\ProcessOptionsBeamer +\useoutertheme{ngni} + +% color definitions +\definecolor{ngniblue}{RGB}{34,57,106} +\definecolor{ngnired}{RGB}{218,30,37} +\definecolor{ngniwhite}{RGB}{240,240,255} +\definecolor{ngniblack}{RGB}{0,0,30} + +% footer styling +\setbeamerfont{footnote}{size=\scriptsize} +\setbeamercolor{footnote}{fg=white,bg=ngniblue} + +% set the title color +\setbeamercolor{title}{fg=ngniwhite} +\setbeamerfont{title}{size=\LARGE} +\setbeamercolor{author}{fg=ngniwhite} +\setbeamerfont{author}{size=\normalsize} +\setbeamercolor{institute}{fg=ngniwhite} +\setbeamerfont{institute}{size=\normalsize} + +% set colors for specific elements +\setbeamercolor{block}{fg=ngniblack} +\setbeamercolor{block title}{fg=ngniblack} % adjust title color to poppy +\setbeamercolor{block item}{fg=ngniblack} +\setbeamercolor{itemize item}{fg=ngniblack} % adjusts the bullet color + +% frame title styling +\setbeamertemplate{frametitle}{\vspace{1.5em} \color{ngniblack} \insertframetitle} +\setbeamerfont{frametitle}{size=\LARGE,series=\bfseries} + +% frame content styling +\setbeamersize{text margin left=1.5em,text margin right=3em} + +%define first bullet symbol +\usesubitemizeitemtemplate{% + \tiny\raise1.5pt\hbox{\color{beamerstructure}$\circ$}% +} + +%define second bullet symbol +\usesubsubitemizeitemtemplate{% + \tiny\raise1.5pt\hbox{\color{beamerstructure}$\blacktriangleright$}% +} + +\ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi + +\mode + diff --git a/default_symbols.cls b/default_symbols.cls new file mode 100644 index 0000000..32c3da6 --- /dev/null +++ b/default_symbols.cls @@ -0,0 +1,143 @@ +% Modified by Lieuwe Leene, June 2019 + +% Round down Math Mode +\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} +% Easy use for nomenclature table +\newcommand{\csymbol}[2]{\textbf{#1} & - & #2\\} + +% Neat square in bold math text mode +\newcommand{\tsqrd}{\textsuperscript{2}} +% Neat subscript in textmode +\newcommand{\tss}[1]{\textsubscript{#1}} +% Neat superscript in textmode +\newcommand{\tps}[1]{\textsuperscript{#1}} + +% Color comments for review +\colorlet{CmntClr}{black!60!green} +\newcommand{\cmnt}[1]{\textcolor{CmntClr}{#1}} +\colorlet{EditClr}{black!10!orange} +\newcommand{\edit}[1]{\textcolor{EditClr}{#1}} + +% Auto Color Done/Todo Statment +\colorlet{OkGreen}{blue!30!black!60!green} +\newcommand{\done}[0]{\textcolor{OkGreen}{\checkmark}} +\newcommand{\todo}{ \textcolor{red}{\sffamily{X}} } + +% Color table with shade of green according to the decimal in the cell and print percentage +\newcommand{\flcl}[1]{\cellcolor[rgb]{0.3,#1,0.3} \FPeval{\result}{round(#1*100,1)} \result\%} + +%In-line bold math +\newcommand{\tmbm}[1]{\mbox{\boldmath $ #1 $}} +%In-line root Mat +\newcommand{\rtxt}[1]{$\sqrt{\text{#1}}$} + +% % % % % % % % % % % % % % % % % % % % +% SYMBOLS - TEXTMODE/MATHMODE List % +% % % % % % % % % % % % % % % % % % % % + +%% List of personally preferred symbol definitions +%% Taken and edited from various online code snippets + +\usepackage{upgreek} + +\newcommand{\ipc}{{\sf ipc}} +\newcommand{\Prob}{\bbbp} +\newcommand{\Real}{\bbbr} +\newcommand{\real}{\Real} +\newcommand{\Int}{\bbbz} +\newcommand{\Nat}{\bbbn} + +\newcommand{\NN}{{\sf I\kern-0.14emN}} % Natural numbers +\newcommand{\ZZ}{{\sf Z\kern-0.45emZ}} % Integers +\newcommand{\QQQ}{{\sf C\kern-0.48emQ}} % Rational numbers +\newcommand{\RR}{{\sf I\kern-0.14emR}} % Real numbers +\newcommand{\KK}{{\cal K}} +\newcommand{\OO}{{\cal O}} +\newcommand{\AAA}{{\bf A}} +\newcommand{\HH}{{\bf H}} +\newcommand{\II}{{\bf I}} +\newcommand{\LL}{{\bf L}} +\newcommand{\PP}{{\bf P}} +\newcommand{\PPprime}{{\bf P'}} +\newcommand{\QQ}{{\bf Q}} +\newcommand{\UU}{{\bf U}} +\newcommand{\UUprime}{{\bf U'}} +\newcommand{\zzero}{{\bf 0}} +\newcommand{\ppi}{\mbox{\boldmath $\pi$}} +\newcommand{\rpi}{$\uppi$} +\newcommand{\dDelta}{\mbox{\boldmath $\Delta$}} +\newcommand{\rDelta}{$\Updelta$} +\newcommand{\rSigma}{$\Upsigma$} +\newcommand{\rSD}{$\Upsigma\Updelta$} +\newcommand{\rDS}{$\Updelta\Upsigma$} +\newcommand{\aalph}{\mbox{\boldmath $\alpha$}} +\newcommand{\ralpha}{$\upalpha$} +\newcommand{\pphi}{\mbox{\boldmath $\phi$}} +\newcommand{\rphi}{$\upphi$} +\newcommand{\bb}{{\bf b}} +\newcommand{\ee}{{\bf e}} +\newcommand{\mmu}{\mbox{\boldmath $\mu$}} +\newcommand{\rmu}{$\upmu$} +\newcommand{\mbeta}{\mbox{\boldmath $\beta$}} +\newcommand{\rbeta}{$\upbeta$} +\newcommand{\meta}{\mbox{\boldmath $\eta$}} +\newcommand{\reta}{$\upeta$} +\newcommand{\rsigma}{$\upsigma$} +\newcommand{\rtau}{$\uptau$} +\newcommand{\vv}{{\bf v}} +\newcommand{\xx}{{\bf x}} +\newcommand{\yy}{{\bf y}} +\newcommand{\zz}{{\bf z}} +\newcommand{\oomeg}{\mbox{\boldmath $\omega$ }} +\newcommand{\rOmeg}{$\Upomega$} +\newcommand{\res}{{\bf res}} +\newcommand{\cchi}{{\mbox{\raisebox{.4ex}{$\chi$}}}} +%\newcommand{\cchi}{{\cal X}} +%\newcommand{\cchi}{\mbox{\Large $\chi$}} + +% Logical operators and symbols +\newcommand{\imply}{\Rightarrow} +\newcommand{\bimply}{\Leftrightarrow} +\newcommand{\union}{\cup} +\newcommand{\intersect}{\cap} +\newcommand{\boolor}{\vee} +\newcommand{\booland}{\wedge} +\newcommand{\boolimply}{\imply} +\newcommand{\boolbimply}{\bimply} +\newcommand{\boolnot}{\neg} +\newcommand{\boolsat}{\!\models} +\newcommand{\boolnsat}{\!\not\models} + + +\newcommand{\op}[1]{\mathrm{#1}} +\newcommand{\s}[1]{\ensuremath{\mathcal #1}} + +% Properly styled differentiation and integration operators +\newcommand{\diff}[1]{\mathrm{\frac{d}{d\mathit{#1}}}} +\newcommand{\diffII}[1]{\mathrm{\frac{d^2}{d\mathit{#1}^2}}} +\newcommand{\intg}[4]{\int_{#3}^{#4} #1 \, \mathrm{d}#2} +\newcommand{\intgd}[4]{\int\!\!\!\!\int_{#4} #1 \, \mathrm{d}#2 \, \mathrm{d}#3} + +% Large () brackets on different lines of an eqnarray environment +\newcommand{\Leftbrace}[1]{\left(\raisebox{0mm}[#1][#1]{}\right.} +\newcommand{\Rightbrace}[1]{\left.\raisebox{0mm}[#1][#1]{}\right)} + +% Funky symobols for footnotes +\newcommand{\symbolfootnote}{\renewcommand{\thefootnote}{\fnsymbol{footnote}}} +% now add \symbolfootnote to the beginning of the document... + +\newcommand{\normallinespacing}{\renewcommand{\baselinestretch}{1.5} \normalsize} +\newcommand{\mediumlinespacing}{\renewcommand{\baselinestretch}{1.2} \normalsize} +\newcommand{\narrowlinespacing}{\renewcommand{\baselinestretch}{1.0} \normalsize} +\newcommand{\bump}{\noalign{\vspace*{\doublerulesep}}} +\newcommand{\cell}{\multicolumn{1}{}{}} +\newcommand{\spann}{\mbox{span}} +\newcommand{\diagg}{\mbox{diag}} +\newcommand{\modd}{\mbox{mod}} +\newcommand{\minn}{\mbox{min}} +\newcommand{\andd}{\mbox{and}} +\newcommand{\forr}{\mbox{for}} +\newcommand{\EE}{\mbox{E}} + +\newcommand{\deff}{\stackrel{\mathrm{def}}{=}} +\newcommand{\syncc}{~\stackrel{\textstyle \rhd\kern-0.57em\lhd}{\scriptstyle L}~} diff --git a/enginiposter.cls b/enginiposter.cls new file mode 100644 index 0000000..b34ec87 --- /dev/null +++ b/enginiposter.cls @@ -0,0 +1,99 @@ +% Original Poster Template by Lieuwe B. Leene +% Last edited by: Lieuwe B. Leene 2017 August +% Modified by Lieuwe Leene, June 2019 + +\ProvidesClass{enginiposter}[2018/09/30 Engini Latex Poster Template.] +\LoadClass[portrait]{a0poster} + +% color definitions +\RequirePackage{xcolor} +\definecolor{ngniprimary}{RGB}{33,48,79} +\definecolor{ngniharm1}{RGB}{48,33,79} +\definecolor{ngnibg}{RGB}{245,245,255} +\definecolor{ngniharm2}{RGB}{33,79,64} + +% set lengths +\newlength{\marginlength}% +\setlength{\marginlength}{2cm} +\setlength{\unitlength}{\paperwidth}% + +\RequirePackage{graphicx} +\RequirePackage[margin=\marginlength,bottom=-5mm]{geometry} +\RequirePackage{mdframed} +\mdfdefinestyle{ngniframe}{linecolor=ngniharm2, linewidth=10pt,topline=false,rightline=false,bottomline=false,backgroundcolor=ngnibg,font=\Large,fontcolor=black,frametitlefont=\huge\bfseries\color{ngnibg},frametitlebackgroundcolor=ngniharm1,frametitleaboveskip=25pt,frametitlebelowskip=25pt,subtitlebackgroundcolor=ngniharm1,subtitlefont=\huge\bfseries\color{ngnibg},subtitleinneraboveskip=25pt,subtitleinnerbelowskip=25pt,innertopmargin=25pt,innerbottommargin=25pt,innerleftmargin=50pt,innerrightmargin=50pt} + + + +\def\@intro{} +\newcommand{\intro}[1]{\def\@intro{#1}} +\newcommand{\usection}[1]{\section*{#1}\addcontentsline{toc}{section}{#1}} + +\RequirePackage{amssymb} +\renewcommand{\labelitemi}{\raisebox{0.05em}{$\blacktriangleright\:$}} +\renewcommand{\labelitemii}{$\bullet\:$} +\renewcommand{\labelitemiii}{$\cdot\:$} + +%make title banne with given hight +\renewcommand{\maketitle}[3]{ + +\newlength{\trimlength}% +\setlength{\trimlength}{0.35\paperwidth} +\setlength{\trimlength}{#1\trimlength} +\addtolength{\trimlength}{-18cm} + +% Top Banner +\noindent\hspace{1.33cm}\hspace{-1\marginlength}% +\begin{picture}(1, 0.04)% +\put(0,0){\includegraphics[height=4.5cm]{Style/IC_blue.pdf}} +\put(0.25,0){\includegraphics[height=4.5cm]{Style/banner_long.pdf}} +\put(0.835,0){\includegraphics[height=4.5cm]{Style/epsrc-bw.pdf}} +\end{picture} + +% Title Banner +\noindent\hspace{-0.06cm}\hspace{-1\marginlength}% +\begin{picture}(1, #1)% +\put(0,0){\includegraphics[width=\paperwidth, trim={0 0 0 -\trimlength}, clip=true]{Style/background_neuron.pdf}} +\put(0,#2){% + \colorbox{ngniprimary}{ + \begin{minipage}{\paperwidth}% + \begin{center} + \vspace{1cm} + \veryHuge \color{ngnibg} \bf \@title \\ + \bigskip + \Large \color{ngnibg} \bf \@author + \vspace{0.5cm} + \end{center}% + \end{minipage}}} +\end{picture} + +% Abstract Banner +\noindent\hspace{-0.05cm}\hspace{-1\marginlength}% +\begin{picture}(1,0) +\put(0,#3){% + \colorbox{ngniprimary}{ + \begin{minipage}{\paperwidth} + \vspace{1cm} + \color{ngnibg} + \Large + \centering + \@intro + \vspace{1.5cm} + \end{minipage} + }} +\end{picture} +} + + +\newcommand{\ngnifooter}[1]{ +\vfill +\noindent\hspace{-0.05cm}\hspace{-1\marginlength}% +\colorbox{ngniharm1}{\begin{picture}(1,0.09) + \put(0.854,0.005){\colorbox{white}{\includegraphics[height=8cm,clip=true,trim=-10mm -10mm -10mm -10mm]{Style/main_logo.pdf}}} + \put(0.0218,0.005){\colorbox{white}{\includegraphics[height=8cm,width=2cm,clip=true,trim=10cm 0 0 0]{Style/main_logo.pdf}}} + \put(0.06,0.045){% + \begin{minipage}{0.75\paperwidth} + \color{ngnibg} + #1 + \end{minipage}} + \end{picture}} +} diff --git a/imperial-common.sty b/imperial-common.sty new file mode 100755 index 0000000..fe12f65 --- /dev/null +++ b/imperial-common.sty @@ -0,0 +1,52 @@ +% Defines common elements for Imperial College LaTeX styles +% James Keirstead +% 19 June 2014 +% Modified by Lieuwe Leene, June 2019 + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{imperial-common}[2014/06/19 Imperial College common package] + +% Define logo +\RequirePackage{graphicx} +\newcommand{\imperiallogo}{imperial-logo} + +% Define colors +\RequirePackage{xcolor} +\definecolor{ImperialBlue}{rgb}{0.082,0.416,0.608} +\definecolor{ImperialLightBlue}{rgb}{0.545,0.682,0.8} +\definecolor{ImperialBrown}{rgb}{0.612,0.278,0.086} + +% Change date style +\RequirePackage{datetime} +\newdateformat{UKdate}{\THEDAY\ \monthname[\THEMONTH]\ \THEYEAR} +\UKdate + +% Define some constants +\newcommand{\college}{Imperial College London} + +% Defines fonts +\RequirePackage{ifxetex} +\ifxetex + \RequirePackage{fontspec} + \defaultfontfeatures{Mapping=tex-text} + \setmainfont{Minion Pro} + \setsansfont[Scale=0.875]{Arial} + \setmonofont[Scale=0.9]{Consolas} +\else + \PackageWarning{Custom fonts not supported. Please use xelatex instead.} +\fi + +% Set up hyperref style +\RequirePackage{hyperref} +\hypersetup{draft=false,% + bookmarks=true,% + pageanchor=true,% + bookmarksnumbered=true, % + bookmarksopen=false,% + colorlinks=true,% + linkcolor=ImperialBlue,% + urlcolor=ImperialBrown,% + anchorcolor=black,% + filecolor=black,% + menucolor=black,% + citecolor=black} diff --git a/impletter.cls b/impletter.cls new file mode 100755 index 0000000..1b5a902 --- /dev/null +++ b/impletter.cls @@ -0,0 +1,213 @@ +% Imperial College London letterhead class +% LdC Foulkes January 2003 +% Modified by James Keirstead, June 2014 +% Modified by Lieuwe Leene, June 2019 + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{impletter}[2014/06/19 Imperial College Letter] + +\LoadClass[a4paper]{article} + +\RequirePackage{fancyhdr} +\RequirePackage{ifthen} + +% Load last because it has the hyperref loading in it +\RequirePackage{imperial-common} +\ifxetex + \RequirePackage{fontawesome} +\else + \newcommand{\faPhone}{Tel} + \newcommand{\faEnvelope}{} +\fi + +% Blank paper +\DeclareOption{blank}{% + \pagestyle{fancy} + \lhead{% + \resizebox{52.5mm}{!}{\includegraphics{\imperiallogo}}}% + \renewcommand\headrulewidth{0pt} + \lfoot{% + \vspace*{10.5mm} + \hspace*{-1.8mm} + \fontsize{9}{11pt}%\usefont{OT1}{cmss}{m}{n} + Imperial College of Science, Technology and Medicine}% + \cfoot{} +}% +% % Personalised letterhead paper +\DeclareOption{headed}{% + \pagestyle{empty} +}% +% Logo only paper +\DeclareOption{logo}{% + \pagestyle{empty} +} +\DeclareOption{landscape}{\OptionNotUsed} +\DeclareOption{twoside}{\OptionNotUsed} +\DeclareOption{titlepage}{\OptionNotUsed} +\DeclareOption{twocolumn}{\OptionNotUsed} +\DeclareOption{openbib}{\OptionNotUsed} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +% Use the \pagestyle{empty} option as the default if nothing is given. +\ExecuteOptions{headed} +\ProcessOptions\relax + +% Set the appropriate font type, font size, and lengths +%\renewcommand{\normalsize}{\fontsize{12}{16pt}}%\usefont{OT1}{cmss}{m}{n}} +\setlength{\paperheight}{297mm} +\setlength{\paperwidth}{210mm} +\setlength{\voffset}{-25.4mm} +\setlength{\topmargin}{9mm} +\setlength{\evensidemargin}{-1pt} +\setlength{\oddsidemargin}{-1pt} +\setlength{\textheight}{220mm} +\setlength{\textwidth}{160mm} +\setlength{\headheight}{15.5mm} +\setlength{\headsep}{23mm} +\setlength{\footskip}{10.6mm} +\setlength{\parindent}{0mm} +\setlength{\parskip}{3mm} + +%%%%%%%%%%%%%%%% Adjustment Parameters %%%%%%%%%%%%%%%%%%%%%%%%%%% +% The letter has to have have the following (measured from the top): +% The bottom of the word 'Imperial' in the logo at 15mm +% The bottom of the date at 51mm +% The bottom of the 1st address line at 63mm +% The bottom of the salutation at 105mm +% The bottom of the department line (top right) at 12mm +% The bottom of the statutory footer 5.5mm from the bottom +% The bottom of the first line of text on the second page at 51mm +% The margin at the left of the text should be 25mm +% The sender's detail (top right block) should be 90mm from the +% right edge. + +% The following are adjustable parameters to account for printer +% differences. The values can be given in mm or pt +% (a point is about .35 of a mm). + +% To move the printed page up (minus value) or down (plus value): +\addtolength{\topmargin}{0mm} + +% To move the printed text to the right (plus) or left (minus). +\addtolength{\evensidemargin}{0pt} +\addtolength{\oddsidemargin}{0pt} + +% To move the statutory footer up (minus) or down (plus) - useful +% if the printer will not print so close to the bottom of the page +\addtolength{\footskip}{0mm} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% TeX parameters to account for odd formatting of headers +\hbadness=10000 % Ignore underfull boxes +\hfuzz=28mm % Allow over the margin text - needed for sender details + +%\informal is like ragged right, but allows hyphen breaks and does not +%produce such extreme differences in line lengths. +\def\informal{\rightskip\z@ plus\tw@ em\dimen@\the\fontdimen4\the +\font\spaceskip\the\fontdimen\tw@\the\font minus .6\dimen@\xspaceskip +\spaceskip\multiply\xspaceskip\thr@@\divide\xspaceskip\tw@ +\hyphenpenalty\@medpenalty\exhyphenpenalty\@highpenalty\let\informal\relax} + +\newcommand{\@dept}{} +\newcommand{\dept}[1]{\renewcommand{\@dept}{#1}} +\newcommand{\@address}{} +\newcommand{\address}[1]{\renewcommand{\@address}{#1}} +\newcommand{\@telephone}{} +\newcommand{\telephone}[1]{\renewcommand{\@telephone}{#1}} +\newcommand{\@fax}{} +\newcommand{\fax}[1]{\renewcommand{\@fax}{#1}} +\newcommand{\@email}{} +\newcommand{\email}[1]{\renewcommand{\@email}{#1}} +\newcommand{\@web}{} +\newcommand{\web}[1]{\renewcommand{\@web}{#1}} +\newcommand{\@nametitle}{} +\newcommand{\nametitle}[1]{\renewcommand{\@nametitle}{#1}} +\newcommand{\@postnoms}{} +\newcommand{\postnoms}[1]{\renewcommand{\@postnoms}{#1}} +\newcommand{\@jobtitle}{} +\newcommand{\jobtitle}[1]{\renewcommand{\@jobtitle}{#1}} +\newcommand{\@signature}{} +\newcommand{\signature}[1]{\renewcommand{\@signature}{#1}} +\newlength{\sigwidth} +\setlength{\sigwidth}{2in} + +% Header for personalised letterhead consists of a table with +% one paragraph box +\newcommand{\header}[2]{ + \begin{tabular}{@{}p{95mm}} + % left box with date, address and salutation + \vspace*{-3.5mm} + \begin{minipage}[t]{95mm} + \fontsize{12}{16pt}%\usefont{OT1}{cmss}{m}{n} + + \today\\ % date at 51mm + + \vspace*{1mm} + #1 % addressee at 63mm + + \vspace*{8mm} + #2 % salutation at 105 + + \end{minipage} + \end{tabular} +} + +% Header for logo and blank paper consists of a table with two paragraph boxes. +\newcommand{\headers}[2]{ + \begin{tabular}{@{}p{95mm}@{}p{90mm}} + % left box with date, address and salutation + \vspace*{-3.5mm} + \begin{minipage}[t]{95mm} + \fontsize{12}{16pt}%\usefont{OT1}{cmss}{m}{n} + + \today\\ % date at 51mm + + \vspace*{1mm} + #1 % addressee at 63mm + + \vspace*{8mm} + #2 % salutation at 105 + + \end{minipage} + + & + % right box with college details of sender + \begin{minipage}[t]{90mm} + \vspace*{-41.3mm} + \fontsize{9}{11pt}%\usefont{OT1}{cmss}{m}{n} + \@dept\\ + \college\\ + + \@address\\ + \faPhone\ \@telephone\ifthenelse{\equal{\@fax}{}}{}{, Fax \@fax}\\ + + \faEnvelope\ \href{mailto:\@email}{\textcolor{black}{\@email}}\\ + \href{http://\@web}{\textcolor{black}{\@web}}\\ +% \vspace*{4mm}\\ + + \fontsize{11}{11pt}%\usefont{OT1}{cmss}{m}{n} + \textbf{\@nametitle\ \@author} + \fontsize{7}{11pt}%\usefont{OT1}{cmss}{m}{n} + \textsc{\@postnoms}\\ + \fontsize{9}{11pt}%\usefont{OT1}{cmss}{m}{n} + \@jobtitle\\ + \end{minipage} + \end{tabular} +} + +% Command to add the closing and sender's name +\newcommand{\close}[1]{ +\begin{minipage}[t]{100mm} +#1 + +\ifthenelse{\equal{\@signature}{}}{% + \vspace{18mm} +}{% + \includegraphics[width=\sigwidth]{\@signature} +} + +\@author +\end{minipage} +} + +% Added flexibility to keep vertical formatting constant +\raggedbottom diff --git a/journal.preamble.cls b/journal.preamble.cls new file mode 100644 index 0000000..13d7c0c --- /dev/null +++ b/journal.preamble.cls @@ -0,0 +1,73 @@ +%Modified Latex Style sheet preamble for IEEE publication +%Lieuwe B. Leene 2016 July 14 +%Default package Import based on IEEEtran.cls v1.8b August 26, 2015. +%Please See http://www.michaelshell.org/tex/ieeetran/ For details +% Modified by Lieuwe Leene, June 2019 + +\input{personal_details.cls} %% Load author details + +% % % % % % % % % % % % % % % % % % % % % % % % % % % % +% PACKAGES - Comment any package deemed unnecessary % +% % % % % % % % % % % % % % % % % % % % % % % % % % % % + +\usepackage{graphicx} % figures, graphics, etc. +\usepackage{verbatim} % Allow comments \be­gin{com­ment} and \end{com­ment} +\usepackage{latexsym} % Optional extra symbols from LaTeX2.09 +\usepackage{amsmath,amssymb} % Math formatting & symbols + +%Specific for AMSMATH - (re)allows page breaks within aligned equations as IEEEtran normally does. +\interdisplaylinepenalty=2500 + +\usepackage{subfigure} % Introduce Subfigures +\usepackage{cite} % Citation handle +\usepackage[table,dvipsnames]{xcolor} % Colour +\usepackage[nomessages]{fp} % More advanced command customization +\usepackage{booktabs} + +\iflinks +\usepackage[pdfauthor={\FirstName~\LastName}, + pdftitle={\pdftitle}, + pdfsubject={\pdfsubject}, + pdfkeywords={\pdfkeywords}, + colorlinks = true,hypertexnames=true]{hyperref} +\fi + +% % % % % % % % % % % % % % % % % % % % +% DOCUMENT - configuration / commands % +% % % % % % % % % % % % % % % % % % % % + +% Allow different modes of the document that generates different content +%Uncomment if draft is true (Only show finalized sections) +%\ifdraft ## insert text ## \fi +\newif\ifdraft + +%Uncomment if brief is true (Only show abstract, introduction, and conclusion) +\newif\ifbrief + + +% Figure config/normalization paramters +\newlength{\lcbox} +\setlength{\lcbox}{10cm} + +\iflinks +% Configure Hyperlink Colours and inline references +\hypersetup{ + colorlinks, + linkcolor={red!75!black}, + citecolor={blue!60!black}, + urlcolor={blue!80!black} +} +\fi + +\input{default_symbols.cls} + +%%%%% sections without index %%%%%%% +\newcommand{\usection}[1]{ + \section*{#1} + \addcontentsline{toc}{section}{#1} +} + +\newcommand{\usubsection}[1]{ + \subsection*{#1} + \addcontentsline{toc}{subsection}{#1} +} diff --git a/leene-resume.cls b/leene-resume.cls new file mode 100644 index 0000000..a3d4c85 --- /dev/null +++ b/leene-resume.cls @@ -0,0 +1,163 @@ +% Personalised Deedy-Resume from Debarghya Das +% github.com/deedy/Deedy-Resume licensed under the Apache License 2.0 +% Last edited by: Lieuwe B. Leene 2017 August +% Modified by Lieuwe Leene, June 2019 + +\ProvidesClass{leene-resume} +\NeedsTeXFormat{LaTeX2e} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass{article} + +\pagenumbering{gobble} % Do not show page numbers +\usepackage[absolute]{textpos} % Required for positioning the Last Updated text at the top right of the page +\usepackage[UKenglish]{isodate} % Prints the Last Updated date in UK English format +\usepackage{enumitem} +\setlist[itemize]{leftmargin=*} + +\usepackage{titlesec} % Required for customizing section/subsection/etc titles +\titlespacing{\section}{0pt}{0pt}{0pt} % Removes the spacing around the main section titles +\titlespacing{\subsection}{0pt}{0pt}{0pt} % Removes the spacing around the subsections +\newcommand{\sectionspace}{\vspace{12pt}} % Defines a command to add a set amount of space after sections and subsections +\newcommand{\subsectionspace}{\vspace{6pt}} + +\usepackage{fontspec} % Required for specifying custom fonts in XeLaTeX +\newcommand{\fontsizeheadline}{\fontsize{40pt}{36pt}} +\newcommand{\fontsizeheading}{\fontsize{16pt}{24pt}} +\newcommand{\fontsizesection}{\fontsize{12pt}{12pt}} + +\providecommand{\fontscale}{1} % load default if not set +\setmainfont +% [Path = /home/lbl11/Latex/Fonts/IBM-Plex-Sans/, +% [Path = ../Latex/Fonts/IBM-Plex-Sans/, + [Path = ../../Latex/Fonts/IBM-Plex-Sans/, + Scale=\fontscale, + UprightFont = *-Regular, + ItalicFont = *-Italic, + BoldFont = *-Bold, + BoldItalicFont = *-BoldItalic, + FontFace = {t}{n}{*-Thin}, + FontFace = {t}{it}{*-ThinItalic}, + FontFace = {l}{n}{*-Light}, + FontFace = {l}{it}{*-LightItalic}, + FontFace = {sb}{n}{*-SemiBold}, + FontFace = {sb}{it}{*-SemiBoldItalic}, + FontFace = {m}{n}{*-Medium}, + FontFace = {m}{it}{*-MediumItalic}, + FontFace = {b}{n}{*-Bold}, + FontFace = {b}{it}{*-BoldItalic}, + Ligatures=TeX] + {IBMPlexSans} +\renewcommand{\baselinestretch}{\fontscale} + +%---------------------------------------------------------------------------------------- +% LAST UPDATED COMMAND +%---------------------------------------------------------------------------------------- + +\setlength{\TPHorizModule}{0.01\paperwidth} % Sets the units for the horizontal position used in the \begin{textblock} argument +\setlength{\TPVertModule}{0.01\paperwidth} % Sets the units for the vertical position used in the \begin{textblock} argument +\newcommand{\lastupdated}{ % Create a new command for printing the Last Updated text +\begin{textblock}{50}(70,13.5 ) % The position of the Last Updated text on the page (75% of the page across, 2% down) +\flushleft{ +\color{date}\fontseries{l}\selectfont \small \selectfont % Text styling of the text +Last Updated on \today } % Last Updated text +\end{textblock}} + +%---------------------------------------------------------------------------------------- +% MAIN HEADING COMMAND +%---------------------------------------------------------------------------------------- + +\newcommand{\makefrontcard}{ % Defines the command for the main heading +\setlength{\unitlength}{12mm} +\flushleft +\begin{picture}(1,1) +\put(0,0.2){\includegraphics[height=10mm]{Style/IC_black.eps}} +\end{picture} +\vfill +\textbf{{\Large \FirstName\:~\LastName} \hspace{2mm}\ {\small \Certification}}\\ +\Title\\ +\vspace{2mm} +{\small +{\fontseries{t}\selectfont \Group} \\ +{\fontseries{t}\selectfont \Address} \\ +\vspace{2mm} +{\fontseries{l}\selectfont \includegraphics[height=2mm]{Style/linkedin.pdf}% + \,\LinkedIn} \\ +{\fontseries{l}\selectfont \includegraphics[height=2mm]{Style/phone.pdf}% + \,\Telephone \hspace{2cm}\includegraphics[height=2mm]{Style/envelope.pdf}\,\Email } \\ +{\fontseries{l}\selectfont \Website } +}} + +\newcommand{\makebackcard}{ % paperwidth=85mm,paperheight=55mm +\begin{figure} +\centering +\setlength{\fboxrule}{0pt} +\includegraphics[width=60mm]{Style/IC_black.eps} +\end{figure} +} + +\newcommand{\namesection}{ % Defines the command for the main heading + +\flushleft{ % Center the name +\fontsizeheadline +{\fontseries{t}\selectfont \Salutation~\FirstName~} % First name font +{\fontseries{m}\selectfont \LastName} % Last name font +\vspace{0.45cm}} \\[5pt] % Whitespace between the name and contact information + +\begin{textblock}{30}(70,4) +\vline +\flushleft{\color{headings}% +{\fontseries{l}\selectfont Address:} \Address \\ +{\fontseries{l}\selectfont Mobile:} \Telephone \\ +{\fontseries{l}\selectfont Email:} \Email \\ } +\end{textblock} + +\noindent\makebox[\linewidth]{\color{headings}\rule{\paperwidth}{0.4pt}} % Horizontal rule +\vspace{-5pt} % Reduce whitespace after the rule slightly +} + +%---------------------------------------------------------------------------------------- +% FOOT NOTE COMMAND +%---------------------------------------------------------------------------------------- + +\newcommand{\tailsection}[2]{ + \vfill + \Salutation~\FirstName~\LastName --- Curriculum Vitae \hfill Page: {#1} | {#2} + \vspace{-4mm} + \clearpage +} + +%---------------------------------------------------------------------------------------- +% SECTION TITLE STYLING AND SPACING +%---------------------------------------------------------------------------------------- + +\titleformat{\section}{ % Customize the large section titles +\color{headings}\scshape \fontseries{l} \fontsizeheading \selectfont \raggedright\uppercase}{}{0em}{} + +\titleformat{\subsection}{ % Customize the subsections and places worked/studied titles +\color{subheadings} \fontsizesection \bfseries}{}{0em}{} + +%\newcommand{\descript}[1]{ % Used for describing the subsection either on the same line or underneath +%\color{subheadings}\raggedright\scshape \fontseries{r} \selectfont {#1} \normalfont} + +%---------------------------------------------------------------------------------------- +% SECTION TITLE STYLING AND SPACING +%---------------------------------------------------------------------------------------- + +\newenvironment{tightitemize} % Defines the tightitemize environment which modifies the itemize environment to be more compact +{\vspace{-\topsep} \begin{itemize} \itemsep1pt \parskip0pt \parsep0pt} +{\end{itemize} \vspace{-\topsep}} + +%---------------------------------------------------------------------------------------- +% COLORS +%---------------------------------------------------------------------------------------- + +\usepackage{xcolor} % Required for custom colors +%\definecolor{primary}{HTML}{2b2b2b} % The primary document color for content text +\definecolor{primary}{HTML}{131313} % The primary document color for content text +%\definecolor{headings}{HTML}{6A6A6A} % The color of the large sections +\definecolor{headings}{HTML}{3b3b3b} % The color of the large sections +%\definecolor{subheadings}{HTML}{333333} % The color of subsections and places worked/studied +\definecolor{subheadings}{HTML}{232323} % The color of subsections and places worked/studied +%\definecolor{date}{HTML}{666666} % The color used for the Last Updated text at the top right +\definecolor{date}{HTML}{3b3b3b} % The color used for the Last Updated text at the top right diff --git a/personal_details.cls b/personal_details.cls new file mode 100644 index 0000000..005c1e3 --- /dev/null +++ b/personal_details.cls @@ -0,0 +1,14 @@ +%% Default Author details used by scripts +%% Several fields below can accommodate URL links +\newcommand{\Salutation}{Dr.} +\newcommand{\FirstName}{Lieuwe} +\newcommand{\LastName}{Leene} +\newcommand{\Certification}{PhD} +\newcommand{\Email}{l.leene@ic.ac.uk} +\newcommand{\Title}{Research Associate} +\newcommand{\Group}{Next Generation Neural Interfaces Lab} +\newcommand{\Organisation}{Centre for Bio-Inspired Technology \\ Department of Electrical and Electronic Engineering} +\newcommand{\Address}{Dept. EEE, Exhibition Road \\ London, SW7 2AZ, UK} +\newcommand{\Telephone}{+44 (0)75447575250} +\newcommand{\LinkedIn}{lieuwe-leene} +\newcommand{\Website}{www.imperial.ac.uk/neural-interfaces} diff --git a/resume.preamble.cls b/resume.preamble.cls new file mode 100644 index 0000000..b4f0fad --- /dev/null +++ b/resume.preamble.cls @@ -0,0 +1,23 @@ +%Modified Latex Style sheet preamble for IEEE publication +%Lieuwe B. Leene 2016 July 14 +%Default package Import based on IEEEtran.cls v1.8b August 26, 2015. +%Please See http://www.michaelshell.org/tex/ieeetran/ For details + +\input{personal_details.cls} %% Load author details + +% % % % % % % % % % % % % % % % % % % % % % % % % % % % +% PACKAGES - Comment any package deemed unnecessary % +% % % % % % % % % % % % % % % % % % % % % % % % % % % % + +\usepackage{amsmath,amssymb} % Math formatting & symbols +\usepackage{graphicx} +\usepackage{qrcode} + +\usepackage[pdfauthor={\FirstName~\LastName}, + pdftitle={C.V.~\FirstName~\LastName}, + pdfsubject={Curriculum Vitae/Resume}, + pdfkeywords={IC designer, Mixed signal, Data converter, System-On-Chip, Imperial College, Research associate}, + colorlinks = true, allcolors = blue ]{hyperref} +%\newcommand{\MYhref}[3][blue]{\href{#2}{\color{#1}{#3}}}% + +\input{default_symbols.cls} %% Load author details