Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-04-14 21:41:19 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-04-14 21:41:19 (GMT)
commit9524662ce1c5f662ba684c1681178cdc9237e5b9 (patch)
tree796d7cb89dc7abd74e2565fecba2bee8177ab519
parentd30dd27d2214652ff4c1f9c28bb92dc7640c60d5 (diff)
Initial commit of HablarConSara
-rw-r--r--Speak.activity/MANIFEST27
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/CHANGES.txt154
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/README.txt41
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/SUPPORTED_TAGS.txt94
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/TODO.txt13
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/pkg-info12
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/setup.cfg6
-rwxr-xr-xSpeak.activity/PyAIML-0.8.5/setup.py34
-rwxr-xr-xSpeak.activity/activity.py61
-rw-r--r--Speak.activity/activity/activity-hablarconsara.svg132
-rw-r--r--Speak.activity/activity/activity.info12
-rwxr-xr-xSpeak.activity/aiml/AimlParser.py545
-rwxr-xr-xSpeak.activity/aiml/DefaultSubs.py156
-rwxr-xr-xSpeak.activity/aiml/Kernel.py1183
-rwxr-xr-xSpeak.activity/aiml/PatternMgr.py329
-rwxr-xr-xSpeak.activity/aiml/Utils.py32
-rwxr-xr-xSpeak.activity/aiml/WordSub.py95
-rwxr-xr-xSpeak.activity/aiml/__init__.py4
-rwxr-xr-xSpeak.activity/aiml/self-test.aiml270
-rwxr-xr-xSpeak.activity/cerebro.brnbin0 -> 536715 bytes
-rwxr-xr-xSpeak.activity/sara/default.aiml140
-rwxr-xr-xSpeak.activity/sara/leeme.txt12
-rwxr-xr-xSpeak.activity/sara/nombres.aiml1064
-rwxr-xr-xSpeak.activity/sara/numeros.aiml1103
-rwxr-xr-xSpeak.activity/sara/readme.txt13
-rwxr-xr-xSpeak.activity/sara/sara.aiml1522
-rwxr-xr-xSpeak.activity/sara/sara_srai.aiml10247
-rwxr-xr-xSpeak.activity/sara/sexo.aiml1108
-rw-r--r--Speak.activity/sara2/default.aiml140
-rw-r--r--Speak.activity/sara2/leeme.txt12
-rw-r--r--Speak.activity/sara2/nombres.aiml1064
-rw-r--r--Speak.activity/sara2/numeros.aiml1103
-rw-r--r--Speak.activity/sara2/readme.txt13
-rw-r--r--Speak.activity/sara2/sara.aiml1522
-rw-r--r--Speak.activity/sara2/sara_srai.aiml10247
-rw-r--r--Speak.activity/sara2/sexo.aiml1108
-rw-r--r--Speak.activity/sara_spanish_aiml.zipbin0 -> 26122 bytes
-rwxr-xr-xSpeak.activity/savebrain.py10
-rwxr-xr-xSpeak.activity/testbrain.py10
39 files changed, 33601 insertions, 37 deletions
diff --git a/Speak.activity/MANIFEST b/Speak.activity/MANIFEST
index e9e53b0..112c229 100644
--- a/Speak.activity/MANIFEST
+++ b/Speak.activity/MANIFEST
@@ -13,3 +13,30 @@ voice.py
waveform_mouth.py
po/activity.pot
po/voice.pot
+cerebro.brn
+testbrain.py
+savebrain.py
+po/POTFILES.in
+sara/default.aiml
+sara/leeme.txt
+sara/numeros.aiml
+sara/sara_srai.aiml
+sara/sexo.aiml
+sara/nombres.aiml
+sara/sara.aiml
+sara/readme.txt
+PyAIML-0.8.5/setup.cfg
+PyAIML-0.8.5/pkg-info
+PyAIML-0.8.5/README.txt
+PyAIML-0.8.5/CHANGES.txt
+PyAIML-0.8.5/setup.py
+PyAIML-0.8.5/TODO.txt
+PyAIML-0.8.5/SUPPORTED_TAGS.txt
+aiml/Kernel.py
+aiml/WordSub.py
+aiml/DefaultSubs.py
+aiml/Utils.py
+aiml/__init__.py
+aiml/self-test.aiml
+aiml/PatternMgr.py
+aiml/AimlParser.py
diff --git a/Speak.activity/PyAIML-0.8.5/CHANGES.txt b/Speak.activity/PyAIML-0.8.5/CHANGES.txt
new file mode 100755
index 0000000..9d4b0d5
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/CHANGES.txt
@@ -0,0 +1,154 @@
+version 0.8.5
+ - Fixed a couple lingering Unicode bugs, one of which was breaking things
+ pretty thoroughly under Python 2.2.3.
+ - Improved whitespace handling, to the point where it should be compliant
+ with the AIML 1.0.1 standard. Basically, whitespace will be stripped
+ down to readable levels, unless the xml:space attribute is used to
+ indicate otherwise.
+ - Fixed bug in PatternMgr where the character '1' was mistaken identified
+ as punctuation to be stripped, instead of the intended '!'.
+
+version 0.8.4:
+ - Fixed bug in AimlParser creation, if the aiml module was not in the same
+ directory as the script that imported it.
+ - Improved Unicode support (again) (thanks to Daniel Kottow for his help).
+ - 2nd pass at documentation. All functions now have useful, properly-formatted
+ docstrings.
+
+version 0.8.3:
+ - Reworked the way AimlParser objects are created, to allow support for
+ XML namespaces in a future version.
+ - First pass at Unicode-proofing the whole system, so that multi-lingual
+ AIML files can be processed.
+ - Added support for "index" attribute in "star", "thatstar" and "topicstar"
+ elements (thanks to Robert D. Cotey for the patch!). Also added type-check
+ to ensure that the value of the "index" attribute is an integer.
+
+version 0.8.2:
+ - Added protection against infinite AIML recursion.
+ - Removed the deprecated Kernel.getBotName and Kernel.setBotName functions.
+ - Added workaround for Unicode input crash. Feeding the Kernel Unicode
+ input no longer crashes the interpreter, but some internal input-formatting
+ operations must be skipped, which could cause some nonsensical replies
+ (like you're not already used to nonsensical replies, though...)
+
+version 0.8.1:
+ - "system" elements now attempt to intelligently convert between UNIX-style
+ and Windows-style pathnames as appropriate. For cross-platform compatibility,
+ all AIML files should use UNIX-style paths inside their "system" elements.
+ - Fixed crashes under Windows9X when a "system" element is executed when
+ w9xpopen.exe is unavailable.
+ - Re-piped most errors and warnings to go to stderr instead of stdout.
+ - Fixed bug that would cause the the bot to stop responding to any input in a session
+ if the "that" or "topic" strings were 100% whitespace (but still not empty).
+ - Fixed bug that would cause multi-line "that" strings to become corrupted. For
+ example, "Hello there.\nNice to meet you" would become "HELLO THERENICE TO MEET
+ YOU" when queried for that-matching.
+
+version 0.8:
+ - Removed support for non-standard "mode" attribute in "system" elements.
+ It just wasn't worth breaking the AIML standard for.
+ - Reworked persistent session support (I warned you!). The old method involving
+ Kernel.persistentSessions() has been removed. Instead, there is a new
+ Kernel.getSessionData() method which gives the bot author access to the session
+ data. You can store this data however you wish. Session data can be restored
+ later by repeated calls to Kernel.setPredicate().
+ - Improved AIML parser error handling; instead of aborting the entire file, a
+ parse error now only ignores the current category and forges ahead. To check for
+ parse errors, check the return value of AimlParser.getNumErrors() after parsing.
+
+version 0.7:
+ - Further improved AIML parsing; missing or invalid XML attributes are now
+ detected at parse-time. There's also a first stab at support for Forward
+ Compatibility Mode: if the "version" attribute of an AIML tag is not 1.0.1,
+ the parser is much more forgiving of unknown or missing XML tags and attributes.
+ - Added "support" for the 'gossip' tag. The specific behavior of this tag is
+ totally undefined; currently, the PyAIML implementation treats it as a big
+ no-op. Its contents are ignored, and it returns the empty string (but at least
+ it isn't flagged as a syntax error!)
+ - Oops; I've implemented 'person' as 'person2' and vice versa this whole time!
+ Swapped them back; they should each behave correctly now.
+ - A bit of code cleanup, with an emphasis on using proper XML/AIML terminology
+ whenever possible.
+ - Fixed some exception-masking in the 'condition' element processor, which could
+ prevent AIML parse errors from being reported.
+ - Added full support for the "bot" tag (previously only the 'bot name="name"'
+ form was supported). Bot predicates are set using the Kernel.setBotPredicate()
+ function. Note that Kernel.getBotName() and Kernel.setBotName() have been
+ deprecated, and will disappear in a future release.
+
+version 0.6.1:
+ - Fixed undefined variable exception that was thrown whenever there was no
+ match for the user's input.
+ - Fixed an infinite recursion bug caused by processing two or more nested
+ 'srai' or 'sr' elements.
+
+version 0.6
+ - Completely rewrote the LearnHandler class (which handles all AIML parsing)
+ to be much less forgiving of incorrect AIML. Currently, any AIML errors
+ outside of "template" elements should be caught and reported at load-time.
+ AIML errors inside templates are still not detected until run-time.
+ - Added support for atomic 'person' and 'person2' tags (they implicitly use
+ 'star' as their contents if none are provided).
+ - Oops; Kernel.respond() was DEFINITELY not thread-safe. Now it is, provided
+ you're using Python's standard 'threading' module. If not, you'll have to
+ provide your own mutual-exclusion system to ensure that only one thread
+ is calling Kernel.respond() at a time.
+ - Recursive tags ('srai' and 'sr') no longer add their intermediate results
+ to the input and output history.
+ - EXPERIMENTAL FEATURE: persistent sessions. If enabled using
+ Kernel.persistentSessions(True), session data will be written to disk
+ after every response. This lets session data be preserved when the
+ Kernel is destroyed, at the expense of a small performance hit (all
+ that extra disk I/O). The semantics of this feature may change in future
+ releases!
+ - Added support for the "id" tag (it returns the session ID).
+ - Added support for the "topic", "topicstar" and "thatstar" tags.
+ - Commented up the test.py file.
+ - Added a summary to the end of the Kernel.py self-test (since there are now
+ too many tests to fit on screen).
+ - Added support for multi-sentence input. The user's input is split into
+ individual sentences, each of which is treated as a completely separate
+ piece of input. I'm *pretty* sure this is the Right Way(tm).
+
+version 0.5
+ - The filename inside Learn tags can now contain wildcards. Besides
+ simplifying the loading of multiple files, this allows the possibility
+ of loading AIML files that may not exist without crashing the
+ interpreter.
+ - Attempting to set the value of a predicate in a nonexistent session
+ now automatically creates the session, instead of silently doing nothing.
+ - "set" tags now output the new value of the variable, as well as assigning
+ it.
+
+version 0.4.1
+ - Unknown AIML tags are handled in a more forgiving fashion. If an
+ unknown tag is encountered, instead of ignoring its contents entirely,
+ the contents are processed and returned unaltered.
+ - Added support for "bot name='name'" tags, both in patterns and in
+ templates. This also fixes a nasty infinite loop crash when a user
+ says Hello to a bot.
+
+version 0.4
+ - Added support for "star" and "sr" tags.
+ - Considered adding support for the "secure" tag, but decided against it.
+ see SUPPORTED_TAGS.txt for more information.
+
+version 0.3
+ - Cleaned up AIML processing code to remove some unnecessary
+ special-cases in the interpretation algorithm.
+ - Added support for "input" and "that" tags.
+
+version 0.2
+ - 50% speedup in Kernel.loadBrain() and Kernel.saveBrain().
+ - The optional 'learnFiles' and 'commands' arguments to
+ Kernel.bootstrap() can now be either strings or lists. This
+ allows multiple files/commands to be loaded during
+ initialization.
+ - Added support for "person" and "person2" tags.
+ - Added general word-substitution functionality. This opens up
+ the potential for localizing PyAIML into non-English languages.
+ See DefaultSubs.py for more info.
+
+version 0.1:
+ - Initial release. \ No newline at end of file
diff --git a/Speak.activity/PyAIML-0.8.5/README.txt b/Speak.activity/PyAIML-0.8.5/README.txt
new file mode 100755
index 0000000..82a7f8b
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/README.txt
@@ -0,0 +1,41 @@
+PyAIML -- The Python AIML Interpreter
+author: Cort Stratton (cort@users.sourceforge.net)
+web: http://pyaiml.sourceforge.net/
+
+PyAIML is an interpreter for AIML (the Artificial Intelligence Markup
+Language), implemented entirely in standard Python. It strives for
+simple, austere, 100% compliance with the AIML 1.0.1 standard, no less
+and no more.
+
+This is currently pre-alpha software. Use at your
+own risk!
+
+For information on what's new in this version, see the
+CHANGES.txt file.
+
+For information on the state of development, including
+the current level of AIML 1.0.1 compliance, see the
+SUPPORTED_TAGS.txt file.
+
+Quick & dirty example (assuming you've downloaded the
+"standard" AIML set):
+
+ import aiml
+
+ # The Kernel object is the public interface to
+ # the AIML interpreter.
+ k = aiml.Kernel()
+
+ # Use the 'learn' method to load the contents
+ # of an AIML file into the Kernel.
+ k.learn("std-startup.xml")
+
+ # Use the 'respond' method to compute the response
+ # to a user's input string. respond() returns
+ # the interpreter's response, which in this case
+ # we ignore.
+ k.respond("load aiml b")
+
+ # Loop forever, reading user input from the command
+ # line and printing responses.
+ while True: print k.respond(raw_input("> ")) \ No newline at end of file
diff --git a/Speak.activity/PyAIML-0.8.5/SUPPORTED_TAGS.txt b/Speak.activity/PyAIML-0.8.5/SUPPORTED_TAGS.txt
new file mode 100755
index 0000000..bbbf708
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/SUPPORTED_TAGS.txt
@@ -0,0 +1,94 @@
+This document describes the current state of PyAIML's compliance
+to the AIML 1.0.1 standard. The full AIML reference manual can be
+found online at http://alicebot.org/TR/2001/WD-aiml.
+
+The following tags are currently supported:
+
+ <bot name="name"> (see notes)
+ <condition>
+ <date>
+ <formal>
+ <gender>
+ <get>
+ <id>
+ <input>
+ <learn>
+ <li>
+ <lowercase>
+ <person>
+ <person2>
+ <random>
+ <sentence>
+ <set>
+ <size>
+ <sr>
+ <srai>
+ <star>
+ <system>
+ <that>
+ <thatstar>
+ <think>
+ <topic>
+ <topicstar>
+ <uppercase>
+ <version>
+
+Support for the following tags should be implemented in the next version:
+
+ None
+
+The following tags are not supported:
+
+ <gossip> (see notes)
+ <if> / <else> (see notes)
+ <javascript> (see notes)
+ <secure> (see notes)
+
+------------------------------------------------------------------
+
+NOTES ON SPECIFIC TAGS:
+
+<bot name="name">
+To set the bot's name, use Kernel.setBotName("NewName"). Note that the
+name *MUST* be a single word! Use Kernel.getBotName() to query the bot's
+name in your code.
+
+<gossip>
+The AIML 1.0.1 specification lets engine authors implement the the behavior
+of the <gossip> tag however they wish. I haven't yet decided what I'd like
+to do with it, so right now it doesn't do anything at all.
+
+<if> / <else>
+These elements appear to have been dropped between AIML 1.0 and AIML 1.0.1.
+They may someday be added as a part of an AIML 1.0 backwards-compatibility
+mode, but in the meantime, use <condition> instead.
+
+<javascript>
+Support for the JavaScript tag is not anticipated; one of the design
+goals of PyAIML is to remain 100% pure standard Python. So until
+somebody writes a JavaScript interpreter in Python, PyAIML won't
+support the <javascript> tag. On the bright side, it is possible
+to simulate the effects of the <javascript> tag (i.e. dynamically-
+generated tag contents) using the <system mode="sync"> tag. This
+solution has the added advantage of allowing *any* programming
+language to be used, not just JavaScript.
+UPDATE: The python-spidermonkey project provides a bridge between Python
+and the open-source SpiderMonkey JavaScript library. I am currently
+investigating the possibility of adding support for the <javascript>
+tag ON A PURELY OPTIONAL BASIS.
+
+<secure>
+Some AIML implementations support a non-standard <secure> tag, intended to
+wrap parts of a template which should only be processed if the user is
+"secure", or trusted. After implementing support for this tag, I realized
+that it wasn't doing anything that you can't do with the <condition> tag.
+Therefore, I've decided to drop support for the <secure> tag. You can
+easily duplicate its effects; simply replace this:
+ <secure error="you're not allowed">you are allowed</secure>
+with this:
+ <condition name="secure">
+ <li value="yes">you are allowed</li>
+ <li>you are not allowed</li>
+ </condition>
+Then, use the Kernel.setPredicate() call to set the "secure" predicate to
+"yes" for any session that you wish to be secure. \ No newline at end of file
diff --git a/Speak.activity/PyAIML-0.8.5/TODO.txt b/Speak.activity/PyAIML-0.8.5/TODO.txt
new file mode 100755
index 0000000..cd75a71
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/TODO.txt
@@ -0,0 +1,13 @@
+Laundry list of future tasks, in no particular order:
+
+ - AIML 1.0.1 compliance (highest priority):
+ - Unknown yet well-defined elements (e.g. HTML) inside templates
+ (see sections 3.2, 3.6).
+ - AimlParser._validateElemStart() needs to test the well-formedness of
+ attribute values (for example, making sure that the "index" attribute
+ has an integer value, and not a string). UPDATE: this works for <star>,
+ <thatstar> and <topicstar>. Still needs to be written for <input> and <that>,
+ which take either an integer or an integer pair.
+ - Support the Program D startup file syntax, or something similar? It
+ seems to be a good way to initialize bot settings and substitutions.
+ - Documentation/tutorials.
diff --git a/Speak.activity/PyAIML-0.8.5/pkg-info b/Speak.activity/PyAIML-0.8.5/pkg-info
new file mode 100755
index 0000000..908caaa
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/pkg-info
@@ -0,0 +1,12 @@
+Metadata-Version: 1.0
+Name: PyAIML
+Version: 0.8.5
+Summary: An interpreter package for AIML, the Artificial Intelligence Markup Language
+Home-page: http://pyaiml.sourceforge.net/
+Author: Cort Stratton
+Author-email: cort@users.sourceforge.net
+License: UNKNOWN
+Description: PyAIML implements an interpreter for AIML, the Artificial Intelligence
+ Markup Language developed by Dr. Richard Wallace of the A.L.I.C.E. Foundation.
+ It can be used to implement a conversational AI program.
+Platform: any
diff --git a/Speak.activity/PyAIML-0.8.5/setup.cfg b/Speak.activity/PyAIML-0.8.5/setup.cfg
new file mode 100755
index 0000000..89ca66e
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/setup.cfg
@@ -0,0 +1,6 @@
+[bdist_wininst]
+title=PyAIML
+
+[sdist]
+formats=zip,gztar,bztar
+
diff --git a/Speak.activity/PyAIML-0.8.5/setup.py b/Speak.activity/PyAIML-0.8.5/setup.py
new file mode 100755
index 0000000..3cc058a
--- /dev/null
+++ b/Speak.activity/PyAIML-0.8.5/setup.py
@@ -0,0 +1,34 @@
+# Command to build:
+from distutils.core import setup
+import glob
+
+package_prefix = "Lib/site-packages/aiml"
+
+setup(name="PyAIML",
+ version="0.8.5",
+ author="Cort Stratton",
+ author_email="cort@users.sourceforge.net",
+ maintainer="Cort Stratton",
+ maintainer_email="cort@users.sourceforge.net",
+
+ description="An interpreter package for AIML, the Artificial Intelligence Markup Language",
+ long_description="""PyAIML implements an interpreter for AIML, the Artificial Intelligence
+Markup Language developed by Dr. Richard Wallace of the A.L.I.C.E. Foundation.
+It can be used to implement a conversational AI program.""",
+ url="http://pyaiml.sourceforge.net/",
+ platforms=["any"],
+ classifiers=["Development Status :: 3 - Alpha",
+ "Environment :: Console",
+ "Intended Audience :: Developers",
+ "Programming Language :: Python",
+ "Operating System :: OS Independent",
+ "Topic :: Communications :: Chat",
+ "Topic :: Scientific/Engineering :: Artificial Intelligence"
+ ],
+
+ packages=["aiml"],
+ data_files=[
+ (package_prefix, glob.glob("aiml/self-test.aiml")),
+ (package_prefix, glob.glob("*.txt")),
+ ],
+)
diff --git a/Speak.activity/activity.py b/Speak.activity/activity.py
index 7eaf401..44925bf 100755
--- a/Speak.activity/activity.py
+++ b/Speak.activity/activity.py
@@ -22,6 +22,7 @@
# along with Speak.activity. If not, see <http://www.gnu.org/licenses/>.
+import aiml
import sys
import os
from urllib import (quote, unquote)
@@ -36,6 +37,9 @@ import gobject
import pango
from gettext import gettext as _
+k=aiml.Kernel()
+k.loadBrain("cerebro.brn")
+
# try:
# sys.path.append('/usr/lib/python2.4/site-packages') # for speechd
# import speechd.client
@@ -58,7 +62,7 @@ import fft_mouth
import waveform_mouth
import voice
-class SpeakActivity(activity.Activity):
+class HablarConSaraActivity(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
@@ -84,6 +88,7 @@ class SpeakActivity(activity.Activity):
self.voice = voice.defaultVoice()
# make an audio device for playing back and rendering audio
+ self.active = False
self.connect( "notify::active", self._activeCb )
self.audio = audio.AudioGrab(datastore, self._jobject)
@@ -164,28 +169,15 @@ class SpeakActivity(activity.Activity):
# return True
# gobject.timeout_add(100, poll_mouse)
+ # start with the eyes straight ahead
+ map(lambda e: e.look_ahead(), self.eyes)
+
# say hello to the user
+ self.active = True
presenceService = presenceservice.get_instance()
xoOwner = presenceService.get_owner()
self.say(_("Hello %s. Type something.") % xoOwner.props.nick)
- # XXX do it after(possible) read_file() invoking
- # have to rely on calling read_file() from map_cb in sugar-toolkit
- self.connect_after('map', self.connect_to)
-
- def connect_to(self, widget):
- self.voice_combo.connect('changed', self.voice_changed_cb)
- self.pitchadj.connect("value_changed", self.pitch_adjusted_cb, self.pitchadj)
- self.rateadj.connect("value_changed", self.rate_adjusted_cb, self.rateadj)
- self.mouth_shape_combo.connect('changed', self.mouth_changed_cb, False)
- self.mouth_changed_cb(self.mouth_shape_combo, True)
- self.numeyesadj.connect("value_changed", self.eyes_changed_cb, False)
- self.eye_shape_combo.connect('changed', self.eyes_changed_cb, False)
- self.eyes_changed_cb(None, True)
-
- # start with the eyes straight ahead
- map(lambda e: e.look_ahead(), self.eyes)
-
def write_file(self, file_path):
f = open(file_path, "w")
f.write("speak file format v1\n")
@@ -291,6 +283,7 @@ class SpeakActivity(activity.Activity):
# button.show()
self.voice_combo = ComboBox()
+ self.voice_combo.connect('changed', self.voice_changed_cb)
voicenames = self.voices.keys()
voicenames.sort()
for name in voicenames:
@@ -305,7 +298,8 @@ class SpeakActivity(activity.Activity):
self.pitchadj = gtk.Adjustment(0, -100, 100, 1, 10, 0)
else:
# espeak uses 0 to 99
- self.pitchadj = gtk.Adjustment(50, 0, 99, 1, 10, 0)
+ self.pitchadj = gtk.Adjustment(97, 0, 99, 1, 10, 0)
+ self.pitchadj.connect("value_changed", self.pitch_adjusted_cb, self.pitchadj)
pitchbar = gtk.HScale(self.pitchadj)
pitchbar.set_draw_value(False)
#pitchbar.set_inverted(True)
@@ -322,7 +316,8 @@ class SpeakActivity(activity.Activity):
self.rateadj = gtk.Adjustment(0, -100, 100, 1, 10, 0)
else:
# espeak uses 80 to 370
- self.rateadj = gtk.Adjustment(100, 80, 370, 1, 10, 0)
+ self.rateadj = gtk.Adjustment(120, 80, 370, 1, 10, 0)
+ self.rateadj.connect("value_changed", self.rate_adjusted_cb, self.rateadj)
ratebar = gtk.HScale(self.rateadj)
ratebar.set_draw_value(False)
#ratebar.set_inverted(True)
@@ -341,9 +336,11 @@ class SpeakActivity(activity.Activity):
self.say(self.voice.friendlyname)
def pitch_adjusted_cb(self, get, data=None):
+ print "pitch %f" % self.pitchadj.value
self.say(_("pitch adjusted"))
def rate_adjusted_cb(self, get, data=None):
+ print "rate %f" % self.rateadj.value
self.say(_("rate adjusted"))
def make_face_bar(self):
@@ -352,15 +349,17 @@ class SpeakActivity(activity.Activity):
self.numeyesadj = None
self.mouth_shape_combo = ComboBox()
+ self.mouth_shape_combo.connect('changed', self.mouth_changed_cb)
self.mouth_shape_combo.append_item(mouth.Mouth, _("Simple"))
self.mouth_shape_combo.append_item(waveform_mouth.WaveformMouth, _("Waveform"))
self.mouth_shape_combo.append_item(fft_mouth.FFTMouth, _("Frequency"))
- self.mouth_shape_combo.set_active(0)
+ self.mouth_shape_combo.set_active(2)
combotool = ToolComboBox(self.mouth_shape_combo)
facebar.insert(combotool, -1)
combotool.show()
self.eye_shape_combo = ComboBox()
+ self.eye_shape_combo.connect('changed', self.eyes_changed_cb)
self.eye_shape_combo.append_item(eye.Eye, _("Round"))
self.eye_shape_combo.append_item(glasses.Glasses, _("Glasses"))
combotool = ToolComboBox(self.eye_shape_combo)
@@ -368,6 +367,7 @@ class SpeakActivity(activity.Activity):
combotool.show()
self.numeyesadj = gtk.Adjustment(2, 1, 5, 1, 1, 0)
+ self.numeyesadj.connect("value_changed", self.eyes_changed_cb, self.numeyesadj)
numeyesbar = gtk.HScale(self.numeyesadj)
numeyesbar.set_draw_value(False)
numeyesbar.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
@@ -382,7 +382,7 @@ class SpeakActivity(activity.Activity):
return facebar
- def mouth_changed_cb(self, combo, quiet):
+ def mouth_changed_cb(self, combo):
mouth_class = combo.props.value
if self.mouth:
self.mouthbox.remove(self.mouth)
@@ -392,10 +392,9 @@ class SpeakActivity(activity.Activity):
# enable mouse move events so we can track the eyes while the mouse is over the mouth
self.mouth.add_events(gtk.gdk.POINTER_MOTION_MASK)
# this SegFaults: self.say(combo.get_active_text())
- if not quiet:
- self.say(_("mouth changed"))
+ self.say(_("mouth changed"))
- def eyes_changed_cb(self, ignored, quiet):
+ def eyes_changed_cb(self, ignored, ignored2=None):
if self.numeyesadj is None:
return
@@ -414,8 +413,7 @@ class SpeakActivity(activity.Activity):
eye.show()
# this SegFaults: self.say(self.eye_shape_combo.get_active_text())
- if not quiet:
- self.say(_("eyes changed"))
+ self.say(_("eyes changed"))
def _combo_changed_cb(self, combo):
# when a new item is chosen, make sure the text is selected
@@ -450,7 +448,7 @@ class SpeakActivity(activity.Activity):
map(lambda e: e.look_ahead(), self.eyes)
# speak the text
- self.say(text)
+ self.say(k.respond(text))
# add this text to our history unless it is the same as the last item
history = self.entrycombo.get_model()
@@ -468,7 +466,7 @@ class SpeakActivity(activity.Activity):
print "synth callback:", callback_type, index_mark
def say(self, something):
- if self.audio is None:
+ if self.audio is None or not self.active:
return
print self.voice.name, ":", something
@@ -486,10 +484,11 @@ class SpeakActivity(activity.Activity):
def _activeCb( self, widget, pspec ):
# only generate sound when this activity is active
- if not self.props.active:
+ if (not self.props.active and self.active):
self.audio.stop_sound_device()
- else:
+ elif (self.props.active and not self.active):
self.audio.restart_sound_device()
+ self.active = self.props.active
def on_quit(self, data=None):
self.audio.on_quit()
diff --git a/Speak.activity/activity/activity-hablarconsara.svg b/Speak.activity/activity/activity-hablarconsara.svg
new file mode 100644
index 0000000..2eca6f4
--- /dev/null
+++ b/Speak.activity/activity/activity-hablarconsara.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="50"
+ height="50"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="Activity-HablaConSara.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata17">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs15"><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 25 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="50 : 25 : 1"
+ inkscape:persp3d-origin="25 : 16.666667 : 1"
+ id="perspective19" />
+<inkscape:perspective
+ id="perspective2475"
+ inkscape:persp3d-origin="27.5 : 18.333333 : 1"
+ inkscape:vp_z="55 : 27.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 27.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+
+
+</defs>
+ <sodipodi:namedview
+ inkscape:window-height="722"
+ inkscape:window-width="1280"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="2.33"
+ inkscape:cx="26.863795"
+ inkscape:cy="20.573512"
+ inkscape:window-x="0"
+ inkscape:window-y="26"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g3429">
+ <ellipse
+ transform="matrix(0.6477914,0,0,0.6477914,10.158787,8.6181926)"
+ id="ellipse4"
+ ry="10"
+ rx="10"
+ cy="12"
+ cx="12"
+ sodipodi:cx="12"
+ sodipodi:cy="12"
+ sodipodi:rx="10"
+ sodipodi:ry="10"
+ style="fill:#ffffff;stroke:#000000;stroke-width:3.70489636;stroke-miterlimit:4;stroke-dasharray:none" />
+ <ellipse
+ transform="matrix(0.6477914,0,0,0.6477914,10.158787,8.6181926)"
+ id="ellipse6"
+ ry="10"
+ rx="10"
+ cy="12"
+ cx="36"
+ sodipodi:cx="36"
+ sodipodi:cy="12"
+ sodipodi:rx="10"
+ sodipodi:ry="10"
+ style="fill:#ffffff;stroke:#000000;stroke-width:3.70489636;stroke-miterlimit:4;stroke-dasharray:none" />
+ <circle
+ transform="matrix(0.6477914,0,0,0.6477914,9.7794379,8.6181926)"
+ id="circle8"
+ r="2"
+ cy="10"
+ cx="16"
+ sodipodi:cx="16"
+ sodipodi:cy="10"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ style="fill:#ffffff;stroke:#000000;stroke-width:3.396155;stroke-miterlimit:4;stroke-dasharray:none" />
+ <circle
+ transform="matrix(0.6477914,0,0,0.6477914,9.8553077,8.6940624)"
+ id="circle10"
+ r="2"
+ cy="10"
+ cx="40"
+ sodipodi:cx="40"
+ sodipodi:cy="10"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ style="fill:#ffffff;stroke:#000000;stroke-width:3.396155;stroke-miterlimit:4;stroke-dasharray:none" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.96432175;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3304"
+ sodipodi:cx="16.309013"
+ sodipodi:cy="-42.060085"
+ sodipodi:rx="27.896996"
+ sodipodi:ry="19.957081"
+ d="M 42.271638,-34.758097 A 27.896996,19.957081 0 0 1 -9.0684098,-33.771844"
+ transform="matrix(0.6789713,0,0,0.9654291,13.305764,57.674017)"
+ sodipodi:start="0.37458313"
+ sodipodi:end="2.7133165"
+ sodipodi:open="true" />
+ <path
+ id="path2468"
+ display="inline"
+ d="M 7.7871374,45.936639 C 8.4431762,47.180327 13.584711,46.000335 15.719242,44.357198 C 17.741226,42.811224 18.804163,41.55458 19.890186,41.55458 C 20.980057,41.55458 31.952834,42.547803 40.028267,35.384717 C 46.978233,29.223491 49.429243,20.499317 44.376202,12.241526 C 39.324132,3.9891322 31.070741,2.4388396 24.292956,3.0002269 C 15.043003,3.7742937 2.9399537,11.944637 3.3757097,24.255214 C 3.6296602,31.500349 6.604921,34.125914 8.1103471,35.810076 C 9.6128874,37.500715 12.482335,37.500715 10.988453,41.842831 C 10.401673,43.547504 7.2965512,44.993076 7.7871374,45.936639 z"
+ style="fill:none;stroke:#010101;stroke-width:3.28907108;display:inline" />
+ </g>
+</svg>
diff --git a/Speak.activity/activity/activity.info b/Speak.activity/activity/activity.info
index b078f88..cfae1de 100644
--- a/Speak.activity/activity/activity.info
+++ b/Speak.activity/activity/activity.info
@@ -1,9 +1,9 @@
[Activity]
-name = Speak
-bundle_id = vu.lux.olpc.Speak
-class = activity.SpeakActivity
-icon = activity-speak
-activity_version = 9
+name = HablarConSara
+bundle_id = vu.lux.olpc.HablarConSara
+class = activity.HablarConSaraActivity
+icon = activity-hablarconsara
+activity_version = 1
show_launcher = yes
license = GPLv3+
-host_version = 1 \ No newline at end of file
+host_version = 1
diff --git a/Speak.activity/aiml/AimlParser.py b/Speak.activity/aiml/AimlParser.py
new file mode 100755
index 0000000..75c2cf1
--- /dev/null
+++ b/Speak.activity/aiml/AimlParser.py
@@ -0,0 +1,545 @@
+from xml.sax.handler import ContentHandler
+from xml.sax.xmlreader import Locator
+import sys
+import xml.sax
+import xml.sax.handler
+
+class AimlParserError(Exception): pass
+
+class AimlHandler(ContentHandler):
+ # The legal states of the AIML parser
+ _STATE_OutsideAiml = 0
+ _STATE_InsideAiml = 1
+ _STATE_InsideCategory = 2
+ _STATE_InsidePattern = 3
+ _STATE_AfterPattern = 4
+ _STATE_InsideThat = 5
+ _STATE_AfterThat = 6
+ _STATE_InsideTemplate = 7
+ _STATE_AfterTemplate = 8
+
+ def __init__(self, encoding = "UTF-8"):
+ self.categories = {}
+ self._encoding = encoding
+ self._state = self._STATE_OutsideAiml
+ self._version = ""
+ self._namespace = ""
+ self._forwardCompatibleMode = False
+ self._currentPattern = ""
+ self._currentThat = ""
+ self._currentTopic = ""
+ self._insideTopic = False
+ self._currentUnknown = "" # the name of the current unknown element
+
+ # This is set to true when a parse error occurs in a category.
+ self._skipCurrentCategory = False
+
+ # Counts the number of parse errors in a particular AIML document.
+ # query with getNumErrors(). If 0, the document is AIML-compliant.
+ self._numParseErrors = 0
+
+ # TODO: select the proper validInfo table based on the version number.
+ self._validInfo = self._validationInfo101
+
+ # This stack of bools is used when parsing <li> elements inside
+ # <condition> elements, to keep track of whether or not an
+ # attribute-less "default" <li> element has been found yet. Only
+ # one default <li> is allowed in each <condition> element. We need
+ # a stack in order to correctly handle nested <condition> tags.
+ self._foundDefaultLiStack = []
+
+ # This stack of strings indicates what the current whitespace-handling
+ # behavior should be. Each string in the stack is either "default" or
+ # "preserve". When a new AIML element is encountered, a new string is
+ # pushed onto the stack, based on the value of the element's "xml:space"
+ # attribute (if absent, the top of the stack is pushed again). When
+ # ending an element, pop an object off the stack.
+ self._whitespaceBehaviorStack = ["default"]
+
+ self._elemStack = []
+ self._locator = Locator()
+ self.setDocumentLocator(self._locator)
+
+ def getNumErrors(self):
+ "Return the number of errors found while parsing the current document."
+ return self._numParseErrors
+
+ def setEncoding(self, encoding):
+ """Set the text encoding to use when encoding strings read from XML.
+
+ Defaults to 'UTF-8'.
+
+ """
+ self._encoding = encoding
+
+ def _location(self):
+ "Return a string describing the current location in the source file."
+ line = self._locator.getLineNumber()
+ column = self._locator.getColumnNumber()
+ return "(line %d, column %d)" % (line, column)
+
+ def _pushWhitespaceBehavior(self, attr):
+ """Push a new string onto the whitespaceBehaviorStack.
+
+ The string's value is taken from the "xml:space" attribute, if it exists
+ and has a legal value ("default" or "preserve"). Otherwise, the previous
+ stack element is duplicated.
+
+ """
+ assert len(self._whitespaceBehaviorStack) > 0, "Whitespace behavior stack should never be empty!"
+ try:
+ if attr["xml:space"] == "default" or attr["xml:space"] == "preserve":
+ self._whitespaceBehaviorStack.append(attr["xml:space"])
+ else:
+ raise AimlParserError, "Invalid value for xml:space attribute "+self._location()
+ except KeyError:
+ self._whitespaceBehaviorStack.append(self._whitespaceBehaviorStack[-1])
+
+ def startElementNS(self, name, qname, attr):
+ print "QNAME:", qname
+ print "NAME:", name
+ uri,elem = name
+ if (elem == "bot"): print "name:", attr.getValueByQName("name"), "a'ite?"
+ self.startElement(elem, attr)
+ pass
+
+ def startElement(self, name, attr):
+ # Wrapper around _startElement, which catches errors in _startElement()
+ # and keeps going.
+
+ # If we're inside an unknown element, ignore everything until we're
+ # out again.
+ if self._currentUnknown != "":
+ return
+ # If we're skipping the current category, ignore everything until
+ # it's finished.
+ if self._skipCurrentCategory:
+ return
+
+ # process this start-element.
+ try: self._startElement(name, attr)
+ except AimlParserError, msg:
+ # Print the error message
+ sys.stderr.write("PARSE ERROR: %s\n" % msg)
+
+ self._numParseErrors += 1 # increment error count
+ # In case of a parse error, if we're inside a category, skip it.
+ if self._state >= self._STATE_InsideCategory:
+ self._skipCurrentCategory = True
+
+ def _startElement(self, name, attr):
+ if name == "aiml":
+ # <aiml> tags are only legal in the OutsideAiml state
+ if self._state != self._STATE_OutsideAiml:
+ raise AimlParserError, "Unexpected <aiml> tag "+self._location()
+ self._state = self._STATE_InsideAiml
+ self._insideTopic = False
+ self._currentTopic = u""
+ try: self._version = attr["version"]
+ except KeyError:
+ # This SHOULD be a syntax error, but so many AIML sets out there are missing
+ # "version" attributes that it just seems nicer to let it slide.
+ #raise AimlParserError, "Missing 'version' attribute in <aiml> tag "+self._location()
+ #print "WARNING: Missing 'version' attribute in <aiml> tag "+self._location()
+ #print " Defaulting to version 1.0"
+ self._version = "1.0"
+ self._forwardCompatibleMode = (self._version != "1.0.1")
+ self._pushWhitespaceBehavior(attr)
+ # Not sure about this namespace business yet...
+ #try:
+ # self._namespace = attr["xmlns"]
+ # if self._version == "1.0.1" and self._namespace != "http://alicebot.org/2001/AIML-1.0.1":
+ # raise AimlParserError, "Incorrect namespace for AIML v1.0.1 "+self._location()
+ #except KeyError:
+ # if self._version != "1.0":
+ # raise AimlParserError, "Missing 'version' attribute(s) in <aiml> tag "+self._location()
+ elif self._state == self._STATE_OutsideAiml:
+ # If we're outside of an AIML element, we ignore all tags.
+ return
+ elif name == "topic":
+ # <topic> tags are only legal in the InsideAiml state, and only
+ # if we're not already inside a topic.
+ if (self._state != self._STATE_InsideAiml) or self._insideTopic:
+ raise AimlParserError, "Unexpected <topic> tag", self._location()
+ try: self._currentTopic = unicode(attr['name'])
+ except KeyError:
+ raise AimlParserError, "Required \"name\" attribute missing in <topic> element "+self._location()
+ self._insideTopic = True
+ elif name == "category":
+ # <category> tags are only legal in the InsideAiml state
+ if self._state != self._STATE_InsideAiml:
+ raise AimlParserError, "Unexpected <category> tag "+self._location()
+ self._state = self._STATE_InsideCategory
+ self._currentPattern = u""
+ self._currentThat = u""
+ # If we're not inside a topic, the topic is implicitly set to *
+ if not self._insideTopic: self._currentTopic = u"*"
+ self._elemStack = []
+ self._pushWhitespaceBehavior(attr)
+ elif name == "pattern":
+ # <pattern> tags are only legal in the InsideCategory state
+ if self._state != self._STATE_InsideCategory:
+ raise AimlParserError, "Unexpected <pattern> tag "+self._location()
+ self._state = self._STATE_InsidePattern
+ elif name == "that" and self._state == self._STATE_AfterPattern:
+ # <that> are legal either inside a <template> element, or
+ # inside a <category> element, between the <pattern> and the
+ # <template> elements. This clause handles the latter case.
+ self._state = self._STATE_InsideThat
+ elif name == "template":
+ # <template> tags are only legal in the AfterPattern and AfterThat
+ # states
+ if self._state not in [self._STATE_AfterPattern, self._STATE_AfterThat]:
+ raise AimlParserError, "Unexpected <template> tag "+self._location()
+ # if no <that> element was specified, it is implicitly set to *
+ if self._state == self._STATE_AfterPattern:
+ self._currentThat = u"*"
+ self._state = self._STATE_InsideTemplate
+ self._elemStack.append(['template',{}])
+ self._pushWhitespaceBehavior(attr)
+ elif self._state == self._STATE_InsidePattern:
+ # Certain tags are allowed inside <pattern> elements.
+ if name == "bot" and attr.has_key("name") and attr["name"] == u"name":
+ # Insert a special character string that the PatternMgr will
+ # replace with the bot's name.
+ self._currentPattern += u" BOT_NAME "
+ else:
+ raise AimlParserError, ("Unexpected <%s> tag " % name)+self._location()
+ elif self._state == self._STATE_InsideThat:
+ # Certain tags are allowed inside <that> elements.
+ if name == "bot" and attr.has_key("name") and attr["name"] == u"name":
+ # Insert a special character string that the PatternMgr will
+ # replace with the bot's name.
+ self._currentThat += u" BOT_NAME "
+ else:
+ raise AimlParserError, ("Unexpected <%s> tag " % name)+self._location()
+ elif self._state == self._STATE_InsideTemplate and self._validInfo.has_key(name):
+ # Starting a new element inside the current pattern. First
+ # we need to convert 'attr' into a native Python dictionary,
+ # so it can later be marshaled.
+ attrDict = {}
+ for k,v in attr.items():
+ #attrDict[k[1].encode(self._encoding)] = v.encode(self._encoding)
+ attrDict[k.encode(self._encoding)] = unicode(v)
+ self._validateElemStart(name, attrDict, self._version)
+ # Push the current element onto the element stack.
+ self._elemStack.append([name.encode(self._encoding),attrDict])
+ self._pushWhitespaceBehavior(attr)
+ # If this is a condition element, push a new entry onto the
+ # foundDefaultLiStack
+ if name == "condition":
+ self._foundDefaultLiStack.append(False)
+ else:
+ # we're now inside an unknown element.
+ if self._forwardCompatibleMode:
+ # In Forward Compatibility Mode, we ignore the element and its
+ # contents.
+ self._currentUnknown = name
+ else:
+ # Otherwise, unknown elements are grounds for error!
+ raise AimlParserError, ("Unexpected <%s> tag " % name)+self._location()
+
+ def characters(self, ch):
+ # Wrapper around _characters which catches errors in _characters()
+ # and keeps going.
+ if self._state == self._STATE_OutsideAiml:
+ # If we're outside of an AIML element, we ignore all text
+ return
+ if self._currentUnknown != "":
+ # If we're inside an unknown element, ignore all text
+ return
+ if self._skipCurrentCategory:
+ # If we're skipping the current category, ignore all text.
+ return
+ try: self._characters(ch)
+ except AimlParserError, msg:
+ # Print the message
+ sys.stderr.write("PARSE ERROR: %s\n" % msg)
+ self._numParseErrors += 1 # increment error count
+ # In case of a parse error, if we're inside a category, skip it.
+ if self._state >= self._STATE_InsideCategory:
+ self._skipCurrentCategory = True
+
+ def _characters(self, ch):
+ text = unicode(ch)
+ if self._state == self._STATE_InsidePattern:
+ self._currentPattern += text
+ elif self._state == self._STATE_InsideThat:
+ self._currentThat += text
+ elif self._state == self._STATE_InsideTemplate:
+ # First, see whether the element at the top of the element stack
+ # is permitted to contain text.
+ try:
+ parent = self._elemStack[-1][0]
+ parentAttr = self._elemStack[-1][1]
+ required, optional, canBeParent = self._validInfo[parent]
+ nonBlockStyleCondition = (parent == "condition" and not (parentAttr.has_key("name") and parentAttr.has_key("value")))
+ if not canBeParent:
+ raise AimlParserError, ("Unexpected text inside <%s> element "%parent)+self._location()
+ elif parent == "random" or nonBlockStyleCondition:
+ # <random> elements can only contain <li> subelements. However,
+ # there's invariably some whitespace around the <li> that we need
+ # to ignore. Same for non-block-style <condition> elements (i.e.
+ # those which don't have both a "name" and a "value" attribute).
+ if len(text.strip()) == 0:
+ # ignore whitespace inside these elements.
+ return
+ else:
+ # non-whitespace text inside these elements is a syntax error.
+ raise AimlParserError, ("Unexpected text inside <%s> element "%parent)+self._location()
+ except IndexError:
+ # the element stack is empty. This should never happen.
+ raise AimlParserError, "Element stack is empty while validating text "+self._location()
+
+ # Add a new text element to the element at the top of the element
+ # stack. If there's already a text element there, simply append the
+ # new characters to its contents.
+ try: textElemOnStack = (self._elemStack[-1][-1][0] == "text")
+ except IndexError: textElemOnStack = False
+ except KeyError: textElemOnStack = False
+ if textElemOnStack:
+ self._elemStack[-1][-1][2] += text
+ else:
+ self._elemStack[-1].append(["text", {"xml:space": self._whitespaceBehaviorStack[-1]}, text])
+ else:
+ # all other text is ignored
+ pass
+
+ def endElementNS(self, name, qname):
+ uri, elem = name
+ self.endElement(elem)
+
+ def endElement(self, name):
+ """Wrapper around _endElement which catches errors in _characters()
+ and keeps going.
+
+ """
+ if self._state == self._STATE_OutsideAiml:
+ # If we're outside of an AIML element, ignore all tags
+ return
+ if self._currentUnknown != "":
+ # see if we're at the end of an unknown element. If so, we can
+ # stop ignoring everything.
+ if name == self._currentUnknown:
+ self._currentUnknown = ""
+ return
+ if self._skipCurrentCategory:
+ # If we're skipping the current category, see if it's ending. We
+ # stop on ANY </category> tag, since we're not keeping track of
+ # state in ignore-mode.
+ if name == "category":
+ self._skipCurrentCategory = False
+ self._state = self._STATE_InsideAiml
+ return
+ try: self._endElement(name)
+ except AimlParserError, msg:
+ # Print the message
+ sys.stderr.write("PARSE ERROR: %s\n" % msg)
+ self._numParseErrors += 1 # increment error count
+ # In case of a parse error, if we're inside a category, skip it.
+ if self._state >= self._STATE_InsideCategory:
+ self._skipCurrentCategory = True
+
+ def _endElement(self, name):
+ """Verify that an AIML end element is valid in the current
+ context.
+
+ Raises an AimlParserError if an illegal end element is encountered.
+
+ """
+ if name == "aiml":
+ # </aiml> tags are only legal in the InsideAiml state
+ if self._state != self._STATE_InsideAiml:
+ raise AimlParserError, "Unexpected </aiml> tag "+self._location()
+ self._state = self._STATE_OutsideAiml
+ self._whitespaceBehaviorStack.pop()
+ elif name == "topic":
+ # </topic> tags are only legal in the InsideAiml state, and
+ # only if _insideTopic is true.
+ if self._state != self._STATE_InsideAiml or not self._insideTopic:
+ raise AimlParserError, "Unexpected </topic> tag "+self._location()
+ self._insideTopic = False
+ self._currentTopic = u""
+ elif name == "category":
+ # </category> tags are only legal in the AfterTemplate state
+ if self._state != self._STATE_AfterTemplate:
+ raise AimlParserError, "Unexpected </category> tag "+self._location()
+ self._state = self._STATE_InsideAiml
+ # End the current category. Store the current pattern/that/topic and
+ # element in the categories dictionary.
+ key = (self._currentPattern.strip(), self._currentThat.strip(),self._currentTopic.strip())
+ self.categories[key] = self._elemStack[-1]
+ self._whitespaceBehaviorStack.pop()
+ elif name == "pattern":
+ # </pattern> tags are only legal in the InsidePattern state
+ if self._state != self._STATE_InsidePattern:
+ raise AimlParserError, "Unexpected </pattern> tag "+self._location()
+ self._state = self._STATE_AfterPattern
+ elif name == "that" and self._state == self._STATE_InsideThat:
+ # </that> tags are only allowed inside <template> elements or in
+ # the InsideThat state. This clause handles the latter case.
+ self._state = self._STATE_AfterThat
+ elif name == "template":
+ # </template> tags are only allowed in the InsideTemplate state.
+ if self._state != self._STATE_InsideTemplate:
+ raise AimlParserError, "Unexpected </template> tag "+self._location()
+ self._state = self._STATE_AfterTemplate
+ self._whitespaceBehaviorStack.pop()
+ elif self._state == self._STATE_InsidePattern:
+ # Certain tags are allowed inside <pattern> elements.
+ if name not in ["bot"]:
+ raise AimlParserError, ("Unexpected </%s> tag " % name)+self._location()
+ elif self._state == self._STATE_InsideThat:
+ # Certain tags are allowed inside <that> elements.
+ if name not in ["bot"]:
+ raise AimlParserError, ("Unexpected </%s> tag " % name)+self._location()
+ elif self._state == self._STATE_InsideTemplate:
+ # End of an element inside the current template. Append the
+ # element at the top of the stack onto the one beneath it.
+ elem = self._elemStack.pop()
+ self._elemStack[-1].append(elem)
+ self._whitespaceBehaviorStack.pop()
+ # If the element was a condition, pop an item off the
+ # foundDefaultLiStack as well.
+ if elem[0] == "condition": self._foundDefaultLiStack.pop()
+ else:
+ # Unexpected closing tag
+ raise AimlParserError, ("Unexpected </%s> tag " % name)+self._location()
+
+ # A dictionary containing a validation information for each AIML
+ # element. The keys are the names of the elements. The values are a
+ # tuple of three items. The first is a list containing the names of
+ # REQUIRED attributes, the second is a list of OPTIONAL attributes,
+ # and the third is a boolean value indicating whether or not the
+ # element can contain other elements and/or text (if False, the
+ # element can only appear in an atomic context, such as <date/>).
+ _validationInfo101 = {
+ "bot": ( ["name"], [], False ),
+ "condition": ( [], ["name", "value"], True ), # can only contain <li> elements
+ "date": ( [], [], False ),
+ "formal": ( [], [], True ),
+ "gender": ( [], [], True ),
+ "get": ( ["name"], [], False ),
+ "gossip": ( [], [], True ),
+ "id": ( [], [], False ),
+ "input": ( [], ["index"], False ),
+ "javascript": ( [], [], True ),
+ "learn": ( [], [], True ),
+ "li": ( [], ["name", "value"], True ),
+ "lowercase": ( [], [], True ),
+ "person": ( [], [], True ),
+ "person2": ( [], [], True ),
+ "random": ( [], [], True ), # can only contain <li> elements
+ "sentence": ( [], [], True ),
+ "set": ( ["name"], [], True),
+ "size": ( [], [], False ),
+ "sr": ( [], [], False ),
+ "srai": ( [], [], True ),
+ "star": ( [], ["index"], False ),
+ "system": ( [], [], True ),
+ "template": ( [], [], True ), # needs to be in the list because it can be a parent.
+ "that": ( [], ["index"], False ),
+ "thatstar": ( [], ["index"], False ),
+ "think": ( [], [], True ),
+ "topicstar": ( [], ["index"], False ),
+ "uppercase": ( [], [], True ),
+ "version": ( [], [], False ),
+ }
+
+ def _validateElemStart(self, name, attr, version):
+ """Test the validity of an element starting inside a <template>
+ element.
+
+ This function raises an AimlParserError exception if it the tag is
+ invalid. Otherwise, no news is good news.
+
+ """
+ # Check the element's attributes. Make sure that all required
+ # attributes are present, and that any remaining attributes are
+ # valid options.
+ required, optional, canBeParent = self._validInfo[name]
+ for a in required:
+ if a not in attr and not self._forwardCompatibleMode:
+ raise AimlParserError, ("Required \"%s\" attribute missing in <%s> element " % (a,name))+self._location()
+ for a in attr:
+ if a in required: continue
+ if a[0:4] == "xml:": continue # attributes in the "xml" namespace can appear anywhere
+ if a not in optional and not self._forwardCompatibleMode:
+ raise AimlParserError, ("Unexpected \"%s\" attribute in <%s> element " % (a,name))+self._location()
+
+ # special-case: several tags contain an optional "index" attribute.
+ # This attribute's value must be a positive integer.
+ if name in ["star", "thatstar", "topicstar"]:
+ for k,v in attr.items():
+ if k == "index":
+ temp = 0
+ try: temp = int(v)
+ except:
+ raise AimlParserError, ("Bad type for \"%s\" attribute (expected integer, found \"%s\") " % (k,v))+self._location()
+ if temp < 1:
+ raise AimlParserError, ("\"%s\" attribute must have non-negative value " % (k))+self._location()
+
+ # See whether the containing element is permitted to contain
+ # subelements. If not, this element is invalid no matter what it is.
+ try:
+ parent = self._elemStack[-1][0]
+ parentAttr = self._elemStack[-1][1]
+ except IndexError:
+ # If the stack is empty, no parent is present. This should never
+ # happen.
+ raise AimlParserError, ("Element stack is empty while validating <%s> " % name)+self._location()
+ required, optional, canBeParent = self._validInfo[parent]
+ nonBlockStyleCondition = (parent == "condition" and not (parentAttr.has_key("name") and parentAttr.has_key("value")))
+ if not canBeParent:
+ raise AimlParserError, ("<%s> elements cannot have any contents "%parent)+self._location()
+ # Special-case test if the parent element is <condition> (the
+ # non-block-style variant) or <random>: these elements can only
+ # contain <li> subelements.
+ elif (parent == "random" or nonBlockStyleCondition) and name!="li":
+ raise AimlParserError, ("<%s> elements can only contain <li> subelements "%parent)+self._location()
+ # Special-case test for <li> elements, which can only be contained
+ # by non-block-style <condition> and <random> elements, and whose
+ # required attributes are dependent upon which attributes are
+ # present in the <condition> parent.
+ elif name=="li":
+ if not (parent=="random" or nonBlockStyleCondition):
+ raise AimlParserError, ("Unexpected <li> element contained by <%s> element "%parent)+self._location()
+ if nonBlockStyleCondition:
+ if parentAttr.has_key("name"):
+ # Single-predicate condition. Each <li> element except the
+ # last must have a "value" attribute.
+ if len(attr) == 0:
+ # This could be the default <li> element for this <condition>,
+ # unless we've already found one.
+ if self._foundDefaultLiStack[-1]:
+ raise AimlParserError, "Unexpected default <li> element inside <condition> "+self._location()
+ else:
+ self._foundDefaultLiStack[-1] = True
+ elif len(attr) == 1 and attr.has_key("value"):
+ pass # this is the valid case
+ else:
+ raise AimlParserError, "Invalid <li> inside single-predicate <condition> "+self._location()
+ elif len(parentAttr) == 0:
+ # Multi-predicate condition. Each <li> element except the
+ # last must have a "name" and a "value" attribute.
+ if len(attr) == 0:
+ # This could be the default <li> element for this <condition>,
+ # unless we've already found one.
+ if self._foundDefaultLiStack[-1]:
+ raise AimlParserError, "Unexpected default <li> element inside <condition> "+self._location()
+ else:
+ self._foundDefaultLiStack[-1] = True
+ elif len(attr) == 2 and attr.has_key("value") and attr.has_key("name"):
+ pass # this is the valid case
+ else:
+ raise AimlParserError, "Invalid <li> inside multi-predicate <condition> "+self._location()
+ # All is well!
+ return True
+
+def create_parser():
+ """Create and return an AIML parser object."""
+ parser = xml.sax.make_parser()
+ handler = AimlHandler("UTF-8")
+ parser.setContentHandler(handler)
+ #parser.setFeature(xml.sax.handler.feature_namespaces, True)
+ return parser \ No newline at end of file
diff --git a/Speak.activity/aiml/DefaultSubs.py b/Speak.activity/aiml/DefaultSubs.py
new file mode 100755
index 0000000..5166cf6
--- /dev/null
+++ b/Speak.activity/aiml/DefaultSubs.py
@@ -0,0 +1,156 @@
+"""This file contains the default (English) substitutions for the
+PyAIML kernel. These substitutions may be overridden by using the
+Kernel.loadSubs(filename) method. The filename specified should refer
+to a Windows-style INI file with the following format:
+
+ # lines that start with '#' are comments
+
+ # The 'gender' section contains the substitutions performed by the
+ # <gender> AIML tag, which swaps masculine and feminine pronouns.
+ [gender]
+ he = she
+ she = he
+ # and so on...
+
+ # The 'person' section contains the substitutions performed by the
+ # <person> AIML tag, which swaps 1st and 2nd person pronouns.
+ [person]
+ I = you
+ you = I
+ # and so on...
+
+ # The 'person2' section contains the substitutions performed by
+ # the <person2> AIML tag, which swaps 1st and 3nd person pronouns.
+ [person2]
+ I = he
+ he = I
+ # and so on...
+
+ # the 'normal' section contains subtitutions run on every input
+ # string passed into Kernel.respond(). It's mainly used to
+ # correct common misspellings, and to convert contractions
+ # ("WHAT'S") into a format that will match an AIML pattern ("WHAT
+ # IS").
+ [normal]
+ what's = what is
+"""
+
+defaultGender = {
+ # masculine -> feminine
+ "he": "she",
+ "him": "her",
+ "his": "her",
+ "himself": "herself",
+
+ # feminine -> masculine
+ "she": "he",
+ "her": "him",
+ "hers": "his",
+ "herself": "himself",
+}
+
+defaultPerson = {
+ # 1st->3rd (masculine)
+ "I": "he",
+ "me": "him",
+ "my": "his",
+ "mine": "his",
+ "myself": "himself",
+
+ # 3rd->1st (masculine)
+ "he":"I",
+ "him":"me",
+ "his":"my",
+ "himself":"myself",
+
+ # 3rd->1st (feminine)
+ "she":"I",
+ "her":"me",
+ "hers":"mine",
+ "herself":"myself",
+}
+
+defaultPerson2 = {
+ # 1st -> 2nd
+ "I": "you",
+ "me": "you",
+ "my": "your",
+ "mine": "yours",
+ "myself": "yourself",
+
+ # 2nd -> 1st
+ "you": "me",
+ "your": "my",
+ "yours": "mine",
+ "yourself": "myself",
+}
+
+
+# TODO: this list is far from complete
+defaultNormal = {
+ "wanna": "want to",
+ "gonna": "going to",
+
+ "I'm": "I am",
+ "I'd": "I would",
+ "I'll": "I will",
+ "I've": "I have",
+ "you'd": "you would",
+ "you're": "you are",
+ "you've": "you have",
+ "you'll": "you will",
+ "he's": "he is",
+ "he'd": "he would",
+ "he'll": "he will",
+ "she's": "she is",
+ "she'd": "she would",
+ "she'll": "she will",
+ "we're": "we are",
+ "we'd": "we would",
+ "we'll": "we will",
+ "we've": "we have",
+ "they're": "they are",
+ "they'd": "they would",
+ "they'll": "they will",
+ "they've": "they have",
+
+ "y'all": "you all",
+
+ "can't": "can not",
+ "cannot": "can not",
+ "couldn't": "could not",
+ "wouldn't": "would not",
+ "shouldn't": "should not",
+
+ "isn't": "is not",
+ "ain't": "is not",
+ "don't": "do not",
+ "aren't": "are not",
+ "won't": "will not",
+ "weren't": "were not",
+ "wasn't": "was not",
+ "didn't": "did not",
+ "hasn't": "has not",
+ "hadn't": "had not",
+ "haven't": "have not",
+
+ "where's": "where is",
+ "where'd": "where did",
+ "where'll": "where will",
+ "who's": "who is",
+ "who'd": "who did",
+ "who'll": "who will",
+ "what's": "what is",
+ "what'd": "what did",
+ "what'll": "what will",
+ "when's": "when is",
+ "when'd": "when did",
+ "when'll": "when will",
+ "why's": "why is",
+ "why'd": "why did",
+ "why'll": "why will",
+
+ "it's": "it is",
+ "it'd": "it would",
+ "it'll": "it will",
+} \ No newline at end of file
diff --git a/Speak.activity/aiml/Kernel.py b/Speak.activity/aiml/Kernel.py
new file mode 100755
index 0000000..413f26d
--- /dev/null
+++ b/Speak.activity/aiml/Kernel.py
@@ -0,0 +1,1183 @@
+# -*- coding: latin-1 -*-
+"""This file contains the public interface to the aiml module."""
+import AimlParser
+import DefaultSubs
+import Utils
+from PatternMgr import PatternMgr
+from WordSub import WordSub
+
+from ConfigParser import ConfigParser
+import copy
+import glob
+import os
+import random
+import re
+import string
+import sys
+import time
+import threading
+import xml.sax
+
+
+class Kernel:
+ # module constants
+ _globalSessionID = "_global" # key of the global session (duh)
+ _maxHistorySize = 10 # maximum length of the _inputs and _responses lists
+ _maxRecursionDepth = 100 # maximum number of recursive <srai>/<sr> tags before the response is aborted.
+ # special predicate keys
+ _inputHistory = "_inputHistory" # keys to a queue (list) of recent user input
+ _outputHistory = "_outputHistory" # keys to a queue (list) of recent responses.
+ _inputStack = "_inputStack" # Should always be empty in between calls to respond()
+
+ def __init__(self):
+ self._verboseMode = True
+ self._version = "PyAIML 0.8.5"
+ self._brain = PatternMgr()
+ self._respondLock = threading.RLock()
+ self._textEncoding = "utf-8"
+
+ # set up the sessions
+ self._sessions = {}
+ self._addSession(self._globalSessionID)
+
+ # Set up the bot predicates
+ self._botPredicates = {}
+ self.setBotPredicate("name", "Nameless")
+
+ # set up the word substitutors (subbers):
+ self._subbers = {}
+ self._subbers['gender'] = WordSub(DefaultSubs.defaultGender)
+ self._subbers['person'] = WordSub(DefaultSubs.defaultPerson)
+ self._subbers['person2'] = WordSub(DefaultSubs.defaultPerson2)
+ self._subbers['normal'] = WordSub(DefaultSubs.defaultNormal)
+
+ # set up the element processors
+ self._elementProcessors = {
+ "bot": self._processBot,
+ "condition": self._processCondition,
+ "date": self._processDate,
+ "formal": self._processFormal,
+ "gender": self._processGender,
+ "get": self._processGet,
+ "gossip": self._processGossip,
+ "id": self._processId,
+ "input": self._processInput,
+ "javascript": self._processJavascript,
+ "learn": self._processLearn,
+ "li": self._processLi,
+ "lowercase": self._processLowercase,
+ "person": self._processPerson,
+ "person2": self._processPerson2,
+ "random": self._processRandom,
+ "text": self._processText,
+ "sentence": self._processSentence,
+ "set": self._processSet,
+ "size": self._processSize,
+ "sr": self._processSr,
+ "srai": self._processSrai,
+ "star": self._processStar,
+ "system": self._processSystem,
+ "template": self._processTemplate,
+ "that": self._processThat,
+ "thatstar": self._processThatstar,
+ "think": self._processThink,
+ "topicstar": self._processTopicstar,
+ "uppercase": self._processUppercase,
+ "version": self._processVersion,
+ }
+
+ def bootstrap(self, brainFile = None, learnFiles = [], commands = []):
+ """Prepare a Kernel object for use.
+
+ If a brainFile argument is provided, the Kernel attempts to
+ load the brain at the specified filename.
+
+ If learnFiles is provided, the Kernel attempts to load the
+ specified AIML files.
+
+ Finally, each of the input strings in the commands list is
+ passed to respond().
+
+ """
+ start = time.clock()
+ if brainFile:
+ self.loadBrain(brainFile)
+
+ # learnFiles might be a string, in which case it should be
+ # turned into a single-element list.
+ learns = learnFiles
+ try: learns = [ learnFiles + "" ]
+ except: pass
+ for file in learns:
+ self.learn(file)
+
+ # ditto for commands
+ cmds = commands
+ try: cmds = [ commands + "" ]
+ except: pass
+ for cmd in cmds:
+ print self._respond(cmd, self._globalSessionID)
+
+ if self._verboseMode:
+ print "Kernel bootstrap completed in %.2f seconds" % (time.clock() - start)
+
+ def verbose(self, isVerbose = True):
+ """Enable/disable verbose output mode."""
+ self._verboseMode = isVerbose
+
+ def version(self):
+ """Return the Kernel's version string."""
+ return self._version
+
+ def numCategories(self):
+ """Return the number of categories the Kernel has learned."""
+ # there's a one-to-one mapping between templates and categories
+ return self._brain.numTemplates()
+
+ def resetBrain(self):
+ """Reset the brain to its initial state.
+
+ This is essentially equivilant to:
+ del(kern)
+ kern = aiml.Kernel()
+
+ """
+ del(self._brain)
+ self.__init__()
+
+ def loadBrain(self, filename):
+ """Attempt to load a previously-saved 'brain' from the
+ specified filename.
+
+ NOTE: the current contents of the 'brain' will be discarded!
+
+ """
+ if self._verboseMode: print "Loading brain from %s..." % filename,
+ start = time.clock()
+ self._brain.restore(filename)
+ if self._verboseMode:
+ end = time.clock() - start
+ print "done (%d categories in %.2f seconds)" % (self._brain.numTemplates(), end)
+
+ def saveBrain(self, filename):
+ """Dump the contents of the bot's brain to a file on disk."""
+ if self._verboseMode: print "Saving brain to %s..." % filename,
+ start = time.clock()
+ self._brain.save(filename)
+ if self._verboseMode:
+ print "done (%.2f seconds)" % (time.clock() - start)
+
+ def getPredicate(self, name, sessionID = _globalSessionID):
+ """Retrieve the current value of the predicate 'name' from the
+ specified session.
+
+ If name is not a valid predicate in the session, the empty
+ string is returned.
+
+ """
+ try: return self._sessions[sessionID][name]
+ except KeyError: return ""
+
+ def setPredicate(self, name, value, sessionID = _globalSessionID):
+ """Set the value of the predicate 'name' in the specified
+ session.
+
+ If sessionID is not a valid session, it will be created. If
+ name is not a valid predicate in the session, it will be
+ created.
+
+ """
+ self._addSession(sessionID) # add the session, if it doesn't already exist.
+ self._sessions[sessionID][name] = value
+
+ def getBotPredicate(self, name):
+ """Retrieve the value of the specified bot predicate.
+
+ If name is not a valid bot predicate, the empty string is returned.
+
+ """
+ try: return self._botPredicates[name]
+ except KeyError: return ""
+
+ def setBotPredicate(self, name, value):
+ """Set the value of the specified bot predicate.
+
+ If name is not a valid bot predicate, it will be created.
+
+ """
+ self._botPredicates[name] = value
+ # Clumsy hack: if updating the bot name, we must update the
+ # name in the brain as well
+ if name == "name":
+ self._brain.setBotName(self.getBotPredicate("name"))
+
+ def setTextEncoding(self, encoding):
+ """Set the text encoding used when loading AIML files (Latin-1, UTF-8, etc.)."""
+ self._textEncoding = encoding
+
+ def loadSubs(self, filename):
+ """Load a substitutions file.
+
+ The file must be in the Windows-style INI format (see the
+ standard ConfigParser module docs for information on this
+ format). Each section of the file is loaded into its own
+ substituter.
+
+ """
+ inFile = file(filename)
+ parser = ConfigParser()
+ parser.readfp(inFile, filename)
+ inFile.close()
+ for s in parser.sections():
+ # Add a new WordSub instance for this section. If one already
+ # exists, delete it.
+ if self._subbers.has_key(s):
+ del(self._subbers[s])
+ self._subbers[s] = WordSub()
+ # iterate over the key,value pairs and add them to the subber
+ for k,v in parser.items(s):
+ self._subbers[s][k] = v
+
+ def _addSession(self, sessionID):
+ """Create a new session with the specified ID string."""
+ if self._sessions.has_key(sessionID):
+ return
+ # Create the session.
+ self._sessions[sessionID] = {
+ # Initialize the special reserved predicates
+ self._inputHistory: [],
+ self._outputHistory: [],
+ self._inputStack: []
+ }
+
+ def _deleteSession(self, sessionID):
+ """Delete the specified session."""
+ if self._sessions.has_key(sessionID):
+ _sessions.pop(sessionID)
+
+ def getSessionData(self, sessionID = None):
+ """Return a copy of the session data dictionary for the
+ specified session.
+
+ If no sessionID is specified, return a dictionary containing
+ *all* of the individual session dictionaries.
+
+ """
+ s = None
+ if sessionID is not None:
+ try: s = self._sessions[sessionID]
+ except KeyError: s = {}
+ else:
+ s = self._sessions
+ return copy.deepcopy(s)
+
+ def learn(self, filename):
+ """Load and learn the contents of the specified AIML file.
+
+ If filename includes wildcard characters, all matching files
+ will be loaded and learned.
+
+ """
+ for f in glob.glob(filename):
+ if self._verboseMode: print "Loading %s..." % f,
+ start = time.clock()
+ # Load and parse the AIML file.
+ parser = AimlParser.create_parser()
+ handler = parser.getContentHandler()
+ handler.setEncoding(self._textEncoding)
+ try: parser.parse(f)
+ except xml.sax.SAXParseException, msg:
+ err = "\nFATAL PARSE ERROR in file %s:\n%s\n" % (f,msg)
+ sys.stderr.write(err)
+ continue
+ # store the pattern/template pairs in the PatternMgr.
+ for key,tem in handler.categories.items():
+ self._brain.add(key,tem)
+ # Parsing was successful.
+ if self._verboseMode:
+ print "done (%.2f seconds)" % (time.clock() - start)
+
+ def respond(self, input, sessionID = _globalSessionID):
+ """Return the Kernel's response to the input string."""
+ if len(input) == 0:
+ return ""
+
+ #ensure that input is a unicode string
+ try: input = input.decode(self._textEncoding, 'replace')
+ except UnicodeError: pass
+ except AttributeError: pass
+
+ # prevent other threads from stomping all over us.
+ self._respondLock.acquire()
+
+ # Add the session, if it doesn't already exist
+ self._addSession(sessionID)
+
+ # split the input into discrete sentences
+ sentences = Utils.sentences(input)
+ finalResponse = ""
+ for s in sentences:
+ # Add the input to the history list before fetching the
+ # response, so that <input/> tags work properly.
+ inputHistory = self.getPredicate(self._inputHistory, sessionID)
+ inputHistory.append(s)
+ while len(inputHistory) > self._maxHistorySize:
+ inputHistory.pop(0)
+ self.setPredicate(self._inputHistory, inputHistory, sessionID)
+
+ # Fetch the response
+ response = self._respond(s, sessionID)
+
+ # add the data from this exchange to the history lists
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ outputHistory.append(response)
+ while len(outputHistory) > self._maxHistorySize:
+ outputHistory.pop(0)
+ self.setPredicate(self._outputHistory, outputHistory, sessionID)
+
+ # append this response to the final response.
+ finalResponse += (response + " ")
+ finalResponse = finalResponse.strip()
+
+ assert(len(self.getPredicate(self._inputStack, sessionID)) == 0)
+
+ # release the lock and return
+ self._respondLock.release()
+ try: return finalResponse.encode(self._textEncoding)
+ except UnicodeError: return finalResponse
+
+ # This version of _respond() just fetches the response for some input.
+ # It does not mess with the input and output histories. Recursive calls
+ # to respond() spawned from tags like <srai> should call this function
+ # instead of respond().
+ def _respond(self, input, sessionID):
+ """Private version of respond(), does the real work."""
+ if len(input) == 0:
+ return ""
+
+ # guard against infinite recursion
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ if len(inputStack) > self._maxRecursionDepth:
+ if self._verboseMode:
+ err = "WARNING: maximum recursion depth exceeded (input='%s')" % input.encode(self._textEncoding, 'replace')
+ sys.stderr.write(err)
+ return ""
+
+ # push the input onto the input stack
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ inputStack.append(input)
+ self.setPredicate(self._inputStack, inputStack, sessionID)
+
+ # run the input through the 'normal' subber
+ subbedInput = self._subbers['normal'].sub(input)
+
+ # fetch the bot's previous response, to pass to the match()
+ # function as 'that'.
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ try: that = outputHistory[-1]
+ except IndexError: that = ""
+ subbedThat = self._subbers['normal'].sub(that)
+
+ # fetch the current topic
+ topic = self.getPredicate("topic", sessionID)
+ subbedTopic = self._subbers['normal'].sub(topic)
+
+ # Determine the final response.
+ response = ""
+ elem = self._brain.match(subbedInput, subbedThat, subbedTopic)
+ if elem is None:
+ if self._verboseMode:
+ err = "WARNING: No match found for input: %s\n" % input.encode(self._textEncoding)
+ sys.stderr.write(err)
+ else:
+ # Process the element into a response string.
+ response += self._processElement(elem, sessionID).strip()
+ response += " "
+ response = response.strip()
+
+ # pop the top entry off the input stack.
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ inputStack.pop()
+ self.setPredicate(self._inputStack, inputStack, sessionID)
+
+ return response
+
+ def _processElement(self,elem, sessionID):
+ """Process an AIML element.
+
+ The first item of the elem list is the name of the element's
+ XML tag. The second item is a dictionary containing any
+ attributes passed to that tag, and their values. Any further
+ items in the list are the elements enclosed by the current
+ element's begin and end tags; they are handled by each
+ element's handler function.
+
+ """
+ try:
+ handlerFunc = self._elementProcessors[elem[0]]
+ except:
+ # Oops -- there's no handler function for this element
+ # type!
+ if self._verboseMode:
+ err = "WARNING: No handler found for <%s> element\n" % elem[0].encode(self._textEncoding, 'replace')
+ sys.stderr.write(err)
+ return ""
+ return handlerFunc(elem, sessionID)
+
+
+ ######################################################
+ ### Individual element-processing functions follow ###
+ ######################################################
+
+ # <bot>
+ def _processBot(self, elem, sessionID):
+ """Process a <bot> AIML element.
+
+ Required element attributes:
+ name: The name of the bot predicate to retrieve.
+
+ <bot> elements are used to fetch the value of global,
+ read-only "bot predicates." These predicates cannot be set
+ from within AIML; you must use the setBotPredicate() function.
+
+ """
+ attrName = elem[1]['name']
+ return self.getBotPredicate(attrName)
+
+ # <condition>
+ def _processCondition(self, elem, sessionID):
+ """Process a <condition> AIML element.
+
+ Optional element attributes:
+ name: The name of a predicate to test.
+ value: The value to test the predicate for.
+
+ <condition> elements come in three flavors. Each has different
+ attributes, and each handles their contents differently.
+
+ The simplest case is when the <condition> tag has both a 'name'
+ and a 'value' attribute. In this case, if the predicate
+ 'name' has the value 'value', then the contents of the element
+ are processed and returned.
+
+ If the <condition> element has only a 'name' attribute, then
+ its contents are a series of <li> elements, each of which has
+ a 'value' attribute. The list is scanned from top to bottom
+ until a match is found. Optionally, the last <li> element can
+ have no 'value' attribute, in which case it is processed and
+ returned if no other match is found.
+
+ If the <condition> element has neither a 'name' nor a 'value'
+ attribute, then it behaves almost exactly like the previous
+ case, except that each <li> subelement (except the optional
+ last entry) must now include both 'name' and 'value'
+ attributes.
+
+ """
+ attr = None
+ response = ""
+ attr = elem[1]
+
+ # Case #1: test the value of a specific predicate for a
+ # specific value.
+ if attr.has_key('name') and attr.has_key('value'):
+ val = self.getPredicate(attr['name'], sessionID)
+ if val == attr['value']:
+ for e in elem[2:]:
+ response += self._processElement(e,sessionID)
+ return response
+ else:
+ # Case #2 and #3: Cycle through <li> contents, testing a
+ # name and value pair for each one.
+ try:
+ name = None
+ if attr.has_key('name'):
+ name = attr['name']
+ # Get the list of <li> elemnents
+ listitems = []
+ for e in elem[2:]:
+ if e[0] == 'li':
+ listitems.append(e)
+ # if listitems is empty, return the empty string
+ if len(listitems) == 0:
+ return ""
+ # iterate through the list looking for a condition that
+ # matches.
+ foundMatch = False
+ for li in listitems:
+ try:
+ liAttr = li[1]
+ # if this is the last list item, it's allowed
+ # to have no attributes. We just skip it for now.
+ if len(liAttr.keys()) == 0 and li == listitems[-1]:
+ continue
+ # get the name of the predicate to test
+ liName = name
+ if liName == None:
+ liName = liAttr['name']
+ # get the value to check against
+ liValue = liAttr['value']
+ # do the test
+ if self.getPredicate(liName, sessionID) == liValue:
+ foundMatch = True
+ response += self._processElement(li,sessionID)
+ break
+ except:
+ # No attributes, no name/value attributes, no
+ # such predicate/session, or processing error.
+ if self._verboseMode: print "Something amiss -- skipping listitem", li
+ raise
+ if not foundMatch:
+ # Check the last element of listitems. If it has
+ # no 'name' or 'value' attribute, process it.
+ try:
+ li = listitems[-1]
+ liAttr = li[1]
+ if not (liAttr.has_key('name') or liAttr.has_key('value')):
+ response += self._processElement(li, sessionID)
+ except:
+ # listitems was empty, no attributes, missing
+ # name/value attributes, or processing error.
+ if self._verboseMode: print "error in default listitem"
+ raise
+ except:
+ # Some other catastrophic cataclysm
+ if self._verboseMode: print "catastrophic condition failure"
+ raise
+ return response
+
+ # <date>
+ def _processDate(self, elem, sessionID):
+ """Process a <date> AIML element.
+
+ <date> elements resolve to the current date and time. The
+ AIML specification doesn't require any particular format for
+ this information, so I go with whatever's simplest.
+
+ """
+ return time.asctime()
+
+ # <formal>
+ def _processFormal(self, elem, sessionID):
+ """Process a <formal> AIML element.
+
+ <formal> elements process their contents recursively, and then
+ capitalize the first letter of each word of the result.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return string.capwords(response)
+
+ # <gender>
+ def _processGender(self,elem, sessionID):
+ """Process a <gender> AIML element.
+
+ <gender> elements process their contents, and then swap the
+ gender of any third-person singular pronouns in the result.
+ This subsitution is handled by the aiml.WordSub module.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return self._subbers['gender'].sub(response)
+
+ # <get>
+ def _processGet(self, elem, sessionID):
+ """Process a <get> AIML element.
+
+ Required element attributes:
+ name: The name of the predicate whose value should be
+ retrieved from the specified session and returned. If the
+ predicate doesn't exist, the empty string is returned.
+
+ <get> elements return the value of a predicate from the
+ specified session.
+
+ """
+ return self.getPredicate(elem[1]['name'], sessionID)
+
+ # <gossip>
+ def _processGossip(self, elem, sessionID):
+ """Process a <gossip> AIML element.
+
+ <gossip> elements are used to capture and store user input in
+ an implementation-defined manner, theoretically allowing the
+ bot to learn from the people it chats with. I haven't
+ descided how to define my implementation, so right now
+ <gossip> behaves identically to <think>.
+
+ """
+ return self._processThink(elem, sessionID)
+
+ # <id>
+ def _processId(self, elem, sessionID):
+ """ Process an <id> AIML element.
+
+ <id> elements return a unique "user id" for a specific
+ conversation. In PyAIML, the user id is the name of the
+ current session.
+
+ """
+ return sessionID
+
+ # <input>
+ def _processInput(self, elem, sessionID):
+ """Process an <input> AIML element.
+
+ Optional attribute elements:
+ index: The index of the element from the history list to
+ return. 1 means the most recent item, 2 means the one
+ before that, and so on.
+
+ <input> elements return an entry from the input history for
+ the current session.
+
+ """
+ inputHistory = self.getPredicate(self._inputHistory, sessionID)
+ try: index = int(elem[1]['index'])
+ except: index = 1
+ try: return inputHistory[-index]
+ except IndexError:
+ if self._verboseMode:
+ err = "No such index %d while processing <input> element.\n" % index
+ sys.stderr.write(err)
+ return ""
+
+ # <javascript>
+ def _processJavascript(self, elem, sessionID):
+ """Process a <javascript> AIML element.
+
+ <javascript> elements process their contents recursively, and
+ then run the results through a server-side Javascript
+ interpreter to compute the final response. Implementations
+ are not required to provide an actual Javascript interpreter,
+ and right now PyAIML doesn't; <javascript> elements are behave
+ exactly like <think> elements.
+
+ """
+ return self._processThink(elem, sessionID)
+
+ # <learn>
+ def _processLearn(self, elem, sessionID):
+ """Process a <learn> AIML element.
+
+ <learn> elements process their contents recursively, and then
+ treat the result as an AIML file to open and learn.
+
+ """
+ filename = ""
+ for e in elem[2:]:
+ filename += self._processElement(e, sessionID)
+ self.learn(filename)
+ return ""
+
+ # <li>
+ def _processLi(self,elem, sessionID):
+ """Process an <li> AIML element.
+
+ Optional attribute elements:
+ name: the name of a predicate to query.
+ value: the value to check that predicate for.
+
+ <li> elements process their contents recursively and return
+ the results. They can only appear inside <condition> and
+ <random> elements. See _processCondition() and
+ _processRandom() for details of their usage.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return response
+
+ # <lowercase>
+ def _processLowercase(self,elem, sessionID):
+ """Process a <lowercase> AIML element.
+
+ <lowercase> elements process their contents recursively, and
+ then convert the results to all-lowercase.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return string.lower(response)
+
+ # <person>
+ def _processPerson(self,elem, sessionID):
+ """Process a <person> AIML element.
+
+ <person> elements process their contents recursively, and then
+ convert all pronouns in the results from 1st person to 2nd
+ person, and vice versa. This subsitution is handled by the
+ aiml.WordSub module.
+
+ If the <person> tag is used atomically (e.g. <person/>), it is
+ a shortcut for <person><star/></person>.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ if len(elem[2:]) == 0: # atomic <person/> = <person><star/></person>
+ response = self._processElement(['star',{}], sessionID)
+ return self._subbers['person'].sub(response)
+
+ # <person2>
+ def _processPerson2(self,elem, sessionID):
+ """Process a <person2> AIML element.
+
+ <person2> elements process their contents recursively, and then
+ convert all pronouns in the results from 1st person to 3rd
+ person, and vice versa. This subsitution is handled by the
+ aiml.WordSub module.
+
+ If the <person2> tag is used atomically (e.g. <person2/>), it is
+ a shortcut for <person2><star/></person2>.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ if len(elem[2:]) == 0: # atomic <person2/> = <person2><star/></person2>
+ response = self._processElement(['star',{}], sessionID)
+ return self._subbers['person2'].sub(response)
+
+ # <random>
+ def _processRandom(self, elem, sessionID):
+ """Process a <random> AIML element.
+
+ <random> elements contain zero or more <li> elements. If
+ none, the empty string is returned. If one or more <li>
+ elements are present, one of them is selected randomly to be
+ processed recursively and have its results returned. Only the
+ chosen <li> element's contents are processed. Any non-<li> contents are
+ ignored.
+
+ """
+ listitems = []
+ for e in elem[2:]:
+ if e[0] == 'li':
+ listitems.append(e)
+ if len(listitems) == 0:
+ return ""
+
+ # select and process a random listitem.
+ random.shuffle(listitems)
+ return self._processElement(listitems[0], sessionID)
+
+ # <sentence>
+ def _processSentence(self,elem, sessionID):
+ """Process a <sentence> AIML element.
+
+ <sentence> elements process their contents recursively, and
+ then capitalize the first letter of the results.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ try:
+ response = response.strip()
+ words = string.split(response, " ", 1)
+ words[0] = string.capitalize(words[0])
+ response = string.join(words)
+ return response
+ except IndexError: # response was empty
+ return ""
+
+ # <set>
+ def _processSet(self, elem, sessionID):
+ """Process a <set> AIML element.
+
+ Required element attributes:
+ name: The name of the predicate to set.
+
+ <set> elements process their contents recursively, and assign the results to a predicate
+ (given by their 'name' attribute) in the current session. The contents of the element
+ are also returned.
+
+ """
+ value = ""
+ for e in elem[2:]:
+ value += self._processElement(e, sessionID)
+ self.setPredicate(elem[1]['name'], value, sessionID)
+ return value
+
+ # <size>
+ def _processSize(self,elem, sessionID):
+ """Process a <size> AIML element.
+
+ <size> elements return the number of AIML categories currently
+ in the bot's brain.
+
+ """
+ return str(self.numCategories())
+
+ # <sr>
+ def _processSr(self,elem,sessionID):
+ """Process an <sr> AIML element.
+
+ <sr> elements are shortcuts for <srai><star/></srai>.
+
+ """
+ star = self._processElement(['star',{}], sessionID)
+ response = self._respond(star, sessionID)
+ return response
+
+ # <srai>
+ def _processSrai(self,elem, sessionID):
+ """Process a <srai> AIML element.
+
+ <srai> elements recursively process their contents, and then
+ pass the results right back into the AIML interpreter as a new
+ piece of input. The results of this new input string are
+ returned.
+
+ """
+ newInput = ""
+ for e in elem[2:]:
+ newInput += self._processElement(e, sessionID)
+ return self._respond(newInput, sessionID)
+
+ # <star>
+ def _processStar(self, elem, sessionID):
+ """Process a <star> AIML element.
+
+ Optional attribute elements:
+ index: Which "*" character in the current pattern should
+ be matched?
+
+ <star> elements return the text fragment matched by the "*"
+ character in the current input pattern. For example, if the
+ input "Hello Tom Smith, how are you?" matched the pattern
+ "HELLO * HOW ARE YOU", then a <star> element in the template
+ would evaluate to "Tom Smith".
+
+ """
+ try: index = int(elem[1]['index'])
+ except KeyError: index = 1
+ # fetch the user's last input
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ input = self._subbers['normal'].sub(inputStack[-1])
+ # fetch the Kernel's last response (for 'that' context)
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ try: that = self._subbers['normal'].sub(outputHistory[-1])
+ except: that = "" # there might not be any output yet
+ topic = self.getPredicate("topic", sessionID)
+ response = self._brain.star("star", input, that, topic, index)
+ return response
+
+ # <system>
+ def _processSystem(self,elem, sessionID):
+ """Process a <system> AIML element.
+
+ <system> elements process their contents recursively, and then
+ attempt to execute the results as a shell command on the
+ server. The AIML interpreter blocks until the command is
+ complete, and then returns the command's output.
+
+ For cross-platform compatibility, any file paths inside
+ <system> tags should use Unix-style forward slashes ("/") as a
+ directory separator.
+
+ """
+ # build up the command string
+ command = ""
+ for e in elem[2:]:
+ command += self._processElement(e, sessionID)
+
+ # normalize the path to the command. Under Windows, this
+ # switches forward-slashes to back-slashes; all system
+ # elements should use unix-style paths for cross-platform
+ # compatibility.
+ #executable,args = command.split(" ", 1)
+ #executable = os.path.normpath(executable)
+ #command = executable + " " + args
+ command = os.path.normpath(command)
+
+ # execute the command.
+ response = ""
+ try:
+ out = os.popen(command)
+ except RuntimeError, msg:
+ if self._verboseMode:
+ err = "WARNING: RuntimeError while processing \"system\" element:\n%s\n" % msg.encode(self._textEncoding, 'replace')
+ sys.stderr.write(err)
+ return "There was an error while computing my response. Please inform my botmaster."
+ for line in out:
+ response += line + "\n"
+ response = string.join(response.splitlines()).strip()
+ return response
+
+ # <template>
+ def _processTemplate(self,elem, sessionID):
+ """Process a <template> AIML element.
+
+ <template> elements recursively process their contents, and
+ return the results. <template> is the root node of any AIML
+ response tree.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return response
+
+ # text
+ def _processText(self,elem, sessionID):
+ """Process a raw text element.
+
+ Raw text elements aren't really AIML tags. Text elements cannot contain
+ other elements; instead, the third item of the 'elem' list is a text
+ string, which is immediately returned. They have a single attribute,
+ automatically inserted by the parser, which indicates whether whitespace
+ in the text should be preserved or not.
+
+ """
+ try: elem[2] + ""
+ except TypeError: raise TypeError, "Text element contents are not text"
+
+ # If the the whitespace behavior for this element is "default",
+ # we reduce all stretches of >1 whitespace characters to a single
+ # space. To improve performance, we do this only once for each
+ # text element encountered, and save the results for the future.
+ if elem[1]["xml:space"] == "default":
+ elem[2] = re.sub("\s+", " ", elem[2])
+ elem[1]["xml:space"] = "preserve"
+ return elem[2]
+
+ # <that>
+ def _processThat(self,elem, sessionID):
+ """Process a <that> AIML element.
+
+ Optional element attributes:
+ index: Specifies which element from the output history to
+ return. 1 is the most recent response, 2 is the next most
+ recent, and so on.
+
+ <that> elements (when they appear inside <template> elements)
+ are the output equivilant of <input> elements; they return one
+ of the Kernel's previous responses.
+
+ """
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ index = 1
+ try:
+ # According to the AIML spec, the optional index attribute
+ # can either have the form "x" or "x,y". x refers to how
+ # far back in the output history to go. y refers to which
+ # sentence of the specified response to return.
+ index = int(elem[1]['index'].split(',')[0])
+ except:
+ pass
+ try: return outputHistory[-index]
+ except IndexError:
+ if self._verboseMode:
+ err = "No such index %d while processing <that> element.\n" % index
+ sys.stderr.write(err)
+ return ""
+
+ # <thatstar>
+ def _processThatstar(self, elem, sessionID):
+ """Process a <thatstar> AIML element.
+
+ Optional element attributes:
+ index: Specifies which "*" in the <that> pattern to match.
+
+ <thatstar> elements are similar to <star> elements, except
+ that where <star/> returns the portion of the input string
+ matched by a "*" character in the pattern, <thatstar/> returns
+ the portion of the previous input string that was matched by a
+ "*" in the current category's <that> pattern.
+
+ """
+ try: index = int(elem[1]['index'])
+ except KeyError: index = 1
+ # fetch the user's last input
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ input = self._subbers['normal'].sub(inputStack[-1])
+ # fetch the Kernel's last response (for 'that' context)
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ try: that = self._subbers['normal'].sub(outputHistory[-1])
+ except: that = "" # there might not be any output yet
+ topic = self.getPredicate("topic", sessionID)
+ response = self._brain.star("thatstar", input, that, topic, index)
+ return response
+
+ # <think>
+ def _processThink(self,elem, sessionID):
+ """Process a <think> AIML element.
+
+ <think> elements process their contents recursively, and then
+ discard the results and return the empty string. They're
+ useful for setting predicates and learning AIML files without
+ generating any output.
+
+ """
+ for e in elem[2:]:
+ self._processElement(e, sessionID)
+ return ""
+
+ # <topicstar>
+ def _processTopicstar(self, elem, sessionID):
+ """Process a <topicstar> AIML element.
+
+ Optional element attributes:
+ index: Specifies which "*" in the <topic> pattern to match.
+
+ <topicstar> elements are similar to <star> elements, except
+ that where <star/> returns the portion of the input string
+ matched by a "*" character in the pattern, <topicstar/>
+ returns the portion of current topic string that was matched
+ by a "*" in the current category's <topic> pattern.
+
+ """
+ try: index = int(elem[1]['index'])
+ except KeyError: index = 1
+ # fetch the user's last input
+ inputStack = self.getPredicate(self._inputStack, sessionID)
+ input = self._subbers['normal'].sub(inputStack[-1])
+ # fetch the Kernel's last response (for 'that' context)
+ outputHistory = self.getPredicate(self._outputHistory, sessionID)
+ try: that = self._subbers['normal'].sub(outputHistory[-1])
+ except: that = "" # there might not be any output yet
+ topic = self.getPredicate("topic", sessionID)
+ response = self._brain.star("topicstar", input, that, topic, index)
+ return response
+
+ # <uppercase>
+ def _processUppercase(self,elem, sessionID):
+ """Process an <uppercase> AIML element.
+
+ <uppercase> elements process their contents recursively, and
+ return the results with all lower-case characters converted to
+ upper-case.
+
+ """
+ response = ""
+ for e in elem[2:]:
+ response += self._processElement(e, sessionID)
+ return string.upper(response)
+
+ # <version>
+ def _processVersion(self,elem, sessionID):
+ """Process a <version> AIML element.
+
+ <version> elements return the version number of the AIML
+ interpreter.
+
+ """
+ return self.version()
+
+
+##################################################
+### Self-test functions follow ###
+##################################################
+def _testTag(kern, tag, input, outputList):
+ """Tests 'tag' by feeding the Kernel 'input'. If the result
+ matches any of the strings in 'outputList', the test passes.
+
+ """
+ global _numTests, _numPassed
+ _numTests += 1
+ print "Testing <" + tag + ">:",
+ response = kern.respond(input).decode(kern._textEncoding)
+ if response in outputList:
+ print "PASSED"
+ _numPassed += 1
+ return True
+ else:
+ print "FAILED (response: '%s')" % response.encode(kern._textEncoding, 'replace')
+ return False
+
+if __name__ == "__main__":
+ # Run some self-tests
+ k = Kernel()
+ k.bootstrap(learnFiles="self-test.aiml")
+
+ global _numTests, _numPassed
+ _numTests = 0
+ _numPassed = 0
+
+ _testTag(k, 'bot', 'test bot', ["My name is Nameless"])
+
+ k.setPredicate('gender', 'male')
+ _testTag(k, 'condition test #1', 'test condition name value', ['You are handsome'])
+ k.setPredicate('gender', 'female')
+ _testTag(k, 'condition test #2', 'test condition name value', [''])
+ _testTag(k, 'condition test #3', 'test condition name', ['You are beautiful'])
+ k.setPredicate('gender', 'robot')
+ _testTag(k, 'condition test #4', 'test condition name', ['You are genderless'])
+ _testTag(k, 'condition test #5', 'test condition', ['You are genderless'])
+ k.setPredicate('gender', 'male')
+ _testTag(k, 'condition test #6', 'test condition', ['You are handsome'])
+
+ # the date test will occasionally fail if the original and "test"
+ # times cross a second boundary. There's no good way to avoid
+ # this problem and still do a meaningful test, so we simply
+ # provide a friendly message to be printed if the test fails.
+ date_warning = """
+ NOTE: the <date> test will occasionally report failure even if it
+ succeeds. So long as the response looks like a date/time string,
+ there's nothing to worry about.
+ """
+ if not _testTag(k, 'date', 'test date', ["The date is %s" % time.asctime()]):
+ print date_warning
+
+ _testTag(k, 'formal', 'test formal', ["Formal Test Passed"])
+ _testTag(k, 'gender', 'test gender', ["He'd told her he heard that her hernia is history"])
+ _testTag(k, 'get/set', 'test get and set', ["I like cheese. My favorite food is cheese"])
+ _testTag(k, 'gossip', 'test gossip', ["Gossip is not yet implemented"])
+ _testTag(k, 'id', 'test id', ["Your id is _global"])
+ _testTag(k, 'input', 'test input', ['You just said: test input'])
+ _testTag(k, 'javascript', 'test javascript', ["Javascript is not yet implemented"])
+ _testTag(k, 'lowercase', 'test lowercase', ["The Last Word Should Be lowercase"])
+ _testTag(k, 'person', 'test person', ['HE think i knows that my actions threaten him and his.'])
+ _testTag(k, 'person2', 'test person2', ['YOU think me know that my actions threaten you and yours.'])
+ _testTag(k, 'person2 (no contents)', 'test person2 I Love Lucy', ['YOU Love Lucy'])
+ _testTag(k, 'random', 'test random', ["response #1", "response #2", "response #3"])
+ _testTag(k, 'random empty', 'test random empty', ["Nothing here!"])
+ _testTag(k, 'sentence', "test sentence", ["My first letter should be capitalized."])
+ _testTag(k, 'size', "test size", ["I've learned %d categories" % k.numCategories()])
+ _testTag(k, 'sr', "test sr test srai", ["srai results: srai test passed"])
+ _testTag(k, 'sr nested', "test nested sr test srai", ["srai results: srai test passed"])
+ _testTag(k, 'srai', "test srai", ["srai test passed"])
+ _testTag(k, 'srai infinite', "test srai infinite", [""])
+ _testTag(k, 'star test #1', 'You should test star begin', ['Begin star matched: You should'])
+ _testTag(k, 'star test #2', 'test star creamy goodness middle', ['Middle star matched: creamy goodness'])
+ _testTag(k, 'star test #3', 'test star end the credits roll', ['End star matched: the credits roll'])
+ _testTag(k, 'star test #4', 'test star having multiple stars in a pattern makes me extremely happy',
+ ['Multiple stars matched: having, stars in a pattern, extremely happy'])
+ _testTag(k, 'system', "test system", ["The system says hello!"])
+ _testTag(k, 'that test #1', "test that", ["I just said: The system says hello!"])
+ _testTag(k, 'that test #2', "test that", ["I have already answered this question"])
+ _testTag(k, 'thatstar test #1', "test thatstar", ["I say beans"])
+ _testTag(k, 'thatstar test #2', "test thatstar", ["I just said \"beans\""])
+ _testTag(k, 'thatstar test #3', "test thatstar multiple", ['I say beans and franks for everybody'])
+ _testTag(k, 'thatstar test #4', "test thatstar multiple", ['Yes, beans and franks for all!'])
+ _testTag(k, 'think', "test think", [""])
+ k.setPredicate("topic", "fruit")
+ _testTag(k, 'topic', "test topic", ["We were discussing apples and oranges"])
+ k.setPredicate("topic", "Soylent Green")
+ _testTag(k, 'topicstar test #1', 'test topicstar', ["Solyent Green is made of people!"])
+ k.setPredicate("topic", "Soylent Ham and Cheese")
+ _testTag(k, 'topicstar test #2', 'test topicstar multiple', ["Both Soylents Ham and Cheese are made of people!"])
+ _testTag(k, 'unicode support', u"郧上好", [u"Hey, you speak Chinese! 郧上好"])
+ _testTag(k, 'uppercase', 'test uppercase', ["The Last Word Should Be UPPERCASE"])
+ _testTag(k, 'version', 'test version', ["PyAIML is version %s" % k.version()])
+ _testTag(k, 'whitespace preservation', 'test whitespace', ["Extra Spaces\n Rule! (but not in here!) But Here They Do!"])
+
+ # Report test results
+ print "--------------------"
+ if _numTests == _numPassed:
+ print "%d of %d tests passed!" % (_numPassed, _numTests)
+ else:
+ print "%d of %d tests passed (see above for detailed errors)" % (_numPassed, _numTests)
+
+ # Run an interactive interpreter
+ #print "\nEntering interactive mode (ctrl-c to exit)"
+ #while True: print k.respond(raw_input("> "))
diff --git a/Speak.activity/aiml/PatternMgr.py b/Speak.activity/aiml/PatternMgr.py
new file mode 100755
index 0000000..21b73f1
--- /dev/null
+++ b/Speak.activity/aiml/PatternMgr.py
@@ -0,0 +1,329 @@
+# This class implements the AIML pattern-matching algorithm described
+# by Dr. Richard Wallace at the following site:
+# http://www.alicebot.org/documentation/matching.html
+
+import marshal
+import pprint
+import re
+import string
+import sys
+
+class PatternMgr:
+ # special dictionary keys
+ _UNDERSCORE = 0
+ _STAR = 1
+ _TEMPLATE = 2
+ _THAT = 3
+ _TOPIC = 4
+ _BOT_NAME = 5
+
+ def __init__(self):
+ self._root = {}
+ self._templateCount = 0
+ self._botName = u"Nameless"
+ punctuation = "\"`~!@#$%^&*()-_=+[{]}\|;:',<.>/?"
+ self._puncStripRE = re.compile("[" + re.escape(punctuation) + "]")
+ self._whitespaceRE = re.compile("\s", re.LOCALE | re.UNICODE)
+
+ def numTemplates(self):
+ """Return the number of templates currently stored."""
+ return self._templateCount
+
+ def setBotName(self, name):
+ """Set the name of the bot, used to match <bot name="name"> tags in
+ patterns. The name must be a single word!
+
+ """
+ # Collapse a multi-word name into a single word
+ self._botName = unicode(string.join(name.split()))
+
+ def dump(self):
+ """Print all learned patterns, for debugging purposes."""
+ pprint.pprint(self._root)
+
+ def save(self, filename):
+ """Dump the current patterns to the file specified by filename. To
+ restore later, use restore().
+
+ """
+ try:
+ outFile = open(filename, "wb")
+ marshal.dump(self._templateCount, outFile)
+ marshal.dump(self._botName, outFile)
+ marshal.dump(self._root, outFile)
+ outFile.close()
+ except Exception, e:
+ print "Error saving PatternMgr to file %s:" % filename
+ raise Exception, e
+
+ def restore(self, filename):
+ """Restore a previously save()d collection of patterns."""
+ try:
+ inFile = open(filename, "rb")
+ self._templateCount = marshal.load(inFile)
+ self._botName = marshal.load(inFile)
+ self._root = marshal.load(inFile)
+ inFile.close()
+ except Exception, e:
+ print "Error restoring PatternMgr from file %s:" % filename
+ raise Exception, e
+
+ def add(self, (pattern,that,topic), template):
+ """Add a [pattern/that/topic] tuple and its corresponding template
+ to the node tree.
+
+ """
+ # TODO: make sure words contains only legal characters
+ # (alphanumerics,*,_)
+
+ # Navigate through the node tree to the template's location, adding
+ # nodes if necessary.
+ node = self._root
+ for word in string.split(pattern):
+ key = word
+ if key == u"_":
+ key = self._UNDERSCORE
+ elif key == u"*":
+ key = self._STAR
+ elif key == u"BOT_NAME":
+ key = self._BOT_NAME
+ if not node.has_key(key):
+ node[key] = {}
+ node = node[key]
+
+ # navigate further down, if a non-empty "that" pattern was included
+ if len(that) > 0:
+ if not node.has_key(self._THAT):
+ node[self._THAT] = {}
+ node = node[self._THAT]
+ for word in string.split(that):
+ key = word
+ if key == u"_":
+ key = self._UNDERSCORE
+ elif key == u"*":
+ key = self._STAR
+ if not node.has_key(key):
+ node[key] = {}
+ node = node[key]
+
+ # navigate yet further down, if a non-empty "topic" string was included
+ if len(topic) > 0:
+ if not node.has_key(self._TOPIC):
+ node[self._TOPIC] = {}
+ node = node[self._TOPIC]
+ for word in string.split(topic):
+ key = word
+ if key == u"_":
+ key = self._UNDERSCORE
+ elif key == u"*":
+ key = self._STAR
+ if not node.has_key(key):
+ node[key] = {}
+ node = node[key]
+
+
+ # add the template.
+ if not node.has_key(self._TEMPLATE):
+ self._templateCount += 1
+ node[self._TEMPLATE] = template
+
+ def match(self, pattern, that, topic):
+ """Return the template which is the closest match to pattern. The
+ 'that' parameter contains the bot's previous response. The 'topic'
+ parameter contains the current topic of conversation.
+
+ Returns None if no template is found.
+
+ """
+ if len(pattern) == 0:
+ return None
+ # Mutilate the input. Remove all punctuation and convert the
+ # text to all caps.
+ input = string.upper(pattern)
+ input = re.sub(self._puncStripRE, "", input)
+ if that.strip() == u"": that = u"ULTRABOGUSDUMMYTHAT" # 'that' must never be empty
+ thatInput = string.upper(that)
+ thatInput = re.sub(self._whitespaceRE, " ", thatInput)
+ thatInput = re.sub(self._puncStripRE, "", thatInput)
+ if topic.strip() == u"": topic = u"ULTRABOGUSDUMMYTOPIC" # 'topic' must never be empty
+ topicInput = string.upper(topic)
+ topicInput = re.sub(self._puncStripRE, "", topicInput)
+
+ # Pass the input off to the recursive call
+ patMatch, template = self._match(input.split(), thatInput.split(), topicInput.split(), self._root)
+ return template
+
+ def star(self, starType, pattern, that, topic, index):
+ """Returns a string, the portion of pattern that was matched by a *.
+
+ The 'starType' parameter specifies which type of star to find.
+ Legal values are:
+ - 'star': matches a star in the main pattern.
+ - 'thatstar': matches a star in the that pattern.
+ - 'topicstar': matches a star in the topic pattern.
+
+ """
+ # Mutilate the input. Remove all punctuation and convert the
+ # text to all caps.
+ input = string.upper(pattern)
+ input = re.sub(self._puncStripRE, "", input)
+ if that.strip() == u"": that = u"ULTRABOGUSDUMMYTHAT" # 'that' must never be empty
+ thatInput = string.upper(that)
+ thatInput = re.sub(self._whitespaceRE, " ", thatInput)
+ thatInput = re.sub(self._puncStripRE, "", thatInput)
+ if topic.strip() == u"": topic = u"ULTRABOGUSDUMMYTOPIC" # 'topic' must never be empty
+ topicInput = string.upper(topic)
+ topicInput = re.sub(self._puncStripRE, "", topicInput)
+
+ # Pass the input off to the recursive pattern-matcher
+ patMatch, template = self._match(input.split(), thatInput.split(), topicInput.split(), self._root)
+ if template == None:
+ return ""
+
+ # Extract the appropriate portion of the pattern, based on the
+ # starType argument.
+ words = None
+ if starType == 'star':
+ patMatch = patMatch[:patMatch.index(self._THAT)]
+ words = input.split()
+ elif starType == 'thatstar':
+ patMatch = patMatch[patMatch.index(self._THAT)+1 : patMatch.index(self._TOPIC)]
+ words = thatInput.split()
+ elif starType == 'topicstar':
+ patMatch = patMatch[patMatch.index(self._TOPIC)+1 :]
+ words = topicInput.split()
+ else:
+ # unknown value
+ raise ValueError, "starType must be in ['star', 'thatstar', 'topicstar']"
+
+ # compare the input string to the matched pattern, word by word.
+ # At the end of this loop, if foundTheRightStar is true, start and
+ # end will contain the start and end indices (in "words") of
+ # the substring that the desired star matched.
+ foundTheRightStar = False
+ start = end = j = numStars = k = 0
+ for i in range(len(words)):
+ # This condition is true after processing a star
+ # that ISN'T the one we're looking for.
+ if i < k:
+ continue
+ # If we're reached the end of the pattern, we're done.
+ if j == len(patMatch):
+ break
+ if not foundTheRightStar:
+ if patMatch[j] in [self._STAR, self._UNDERSCORE]: #we got a star
+ numStars += 1
+ if numStars == index:
+ # This is the star we care about.
+ foundTheRightStar = True
+ start = i
+ # Iterate through the rest of the string.
+ for k in range (i, len(words)):
+ # If the star is at the end of the pattern,
+ # we know exactly where it ends.
+ if j+1 == len (patMatch):
+ end = len (words)
+ break
+ # If the words have started matching the
+ # pattern again, the star has ended.
+ if patMatch[j+1] == words[k]:
+ end = k - 1
+ i = k
+ break
+ # If we just finished processing the star we cared
+ # about, we exit the loop early.
+ if foundTheRightStar:
+ break
+ # Move to the next element of the pattern.
+ j += 1
+
+ # extract the star words from the original, unmutilated input.
+ if foundTheRightStar:
+ #print string.join(pattern.split()[start:end+1])
+ if starType == 'star': return string.join(pattern.split()[start:end+1])
+ elif starType == 'thatstar': return string.join(that.split()[start:end+1])
+ elif starType == 'topicstar': return string.join(topic.split()[start:end+1])
+ else: return ""
+
+ def _match(self, words, thatWords, topicWords, root):
+ """Return a tuple (pat, tem) where pat is a list of nodes, starting
+ at the root and leading to the matching pattern, and tem is the
+ matched template.
+
+ """
+ # base-case: if the word list is empty, return the current node's
+ # template.
+ if len(words) == 0:
+ # we're out of words.
+ pattern = []
+ template = None
+ if len(thatWords) > 0:
+ # If thatWords isn't empty, recursively
+ # pattern-match on the _THAT node with thatWords as words.
+ try:
+ pattern, template = self._match(thatWords, [], topicWords, root[self._THAT])
+ if pattern != None:
+ pattern = [self._THAT] + pattern
+ except KeyError:
+ pattern = []
+ template = None
+ elif len(topicWords) > 0:
+ # If thatWords is empty and topicWords isn't, recursively pattern
+ # on the _TOPIC node with topicWords as words.
+ try:
+ pattern, template = self._match(topicWords, [], [], root[self._TOPIC])
+ if pattern != None:
+ pattern = [self._TOPIC] + pattern
+ except KeyError:
+ pattern = []
+ template = None
+ if template == None:
+ # we're totally out of input. Grab the template at this node.
+ pattern = []
+ try: template = root[self._TEMPLATE]
+ except KeyError: template = None
+ return (pattern, template)
+
+ first = words[0]
+ suffix = words[1:]
+
+ # Check underscore.
+ # Note: this is causing problems in the standard AIML set, and is
+ # currently disabled.
+ if root.has_key(self._UNDERSCORE):
+ # Must include the case where suf is [] in order to handle the case
+ # where a * or _ is at the end of the pattern.
+ for j in range(len(suffix)+1):
+ suf = suffix[j:]
+ pattern, template = self._match(suf, thatWords, topicWords, root[self._UNDERSCORE])
+ if template is not None:
+ newPattern = [self._UNDERSCORE] + pattern
+ return (newPattern, template)
+
+ # Check first
+ if root.has_key(first):
+ pattern, template = self._match(suffix, thatWords, topicWords, root[first])
+ if template is not None:
+ newPattern = [first] + pattern
+ return (newPattern, template)
+
+ # check bot name
+ if root.has_key(self._BOT_NAME) and first == self._botName:
+ pattern, template = self._match(suffix, thatWords, topicWords, root[self._BOT_NAME])
+ if template is not None:
+ newPattern = [first] + pattern
+ return (newPattern, template)
+
+ # check star
+ if root.has_key(self._STAR):
+ # Must include the case where suf is [] in order to handle the case
+ # where a * or _ is at the end of the pattern.
+ for j in range(len(suffix)+1):
+ suf = suffix[j:]
+ pattern, template = self._match(suf, thatWords, topicWords, root[self._STAR])
+ if template is not None:
+ newPattern = [self._STAR] + pattern
+ return (newPattern, template)
+
+ # No matches were found.
+ return (None, None) \ No newline at end of file
diff --git a/Speak.activity/aiml/Utils.py b/Speak.activity/aiml/Utils.py
new file mode 100755
index 0000000..75e5a1c
--- /dev/null
+++ b/Speak.activity/aiml/Utils.py
@@ -0,0 +1,32 @@
+"""This file contains assorted general utility functions used by other
+modules in the PyAIML package.
+
+"""
+
+def sentences(s):
+ """Split the string s into a list of sentences."""
+ try: s+""
+ except: raise TypeError, "s must be a string"
+ pos = 0
+ sentenceList = []
+ l = len(s)
+ while pos < l:
+ try: p = s.index('.', pos)
+ except: p = l+1
+ try: q = s.index('?', pos)
+ except: q = l+1
+ try: e = s.index('!', pos)
+ except: e = l+1
+ end = min(p,q,e)
+ sentenceList.append( s[pos:end].strip() )
+ pos = end+1
+ # If no sentences were found, return a one-item list containing
+ # the entire input string.
+ if len(sentenceList) == 0: sentenceList.append(s)
+ return sentenceList
+
+# Self test
+if __name__ == "__main__":
+ # sentences
+ sents = sentences("First. Second, still? Third and Final! Well, not really")
+ assert(len(sents) == 4) \ No newline at end of file
diff --git a/Speak.activity/aiml/WordSub.py b/Speak.activity/aiml/WordSub.py
new file mode 100755
index 0000000..9cae856
--- /dev/null
+++ b/Speak.activity/aiml/WordSub.py
@@ -0,0 +1,95 @@
+"""This module implements the WordSub class, modelled after a recipe
+in "Python Cookbook" (Recipe 3.14, "Replacing Multiple Patterns in a
+Single Pass" by Xavier Defrang).
+
+Usage:
+Use this class like a dictionary to add before/after pairs:
+ > subber = TextSub()
+ > subber["before"] = "after"
+ > subber["begin"] = "end"
+Use the sub() method to perform the substitution:
+ > print subber.sub("before we begin")
+ after we end
+All matching is intelligently case-insensitive:
+ > print subber.sub("Before we BEGIN")
+ After we END
+The 'before' words must be complete words -- no prefixes.
+The following example illustrates this point:
+ > subber["he"] = "she"
+ > print subber.sub("he says he'd like to help her")
+ she says she'd like to help her
+Note that "he" and "he'd" were replaced, but "help" and "her" were
+not.
+"""
+
+# 'dict' objects weren't available to subclass from until version 2.2.
+# Get around this by importing UserDict.UserDict if the built-in dict
+# object isn't available.
+try: dict
+except: from UserDict import UserDict as dict
+
+import ConfigParser
+import re
+import string
+
+class WordSub(dict):
+ """All-in-one multiple-string-substitution class."""
+
+ def _wordToRegex(self, word):
+ """Convert a word to a regex object which matches the word."""
+ return r"\b%s\b" % re.escape(word)
+
+ def _update_regex(self):
+ """Build re object based on the keys of the current
+ dictionary.
+
+ """
+ self._regex = re.compile("|".join(map(self._wordToRegex, self.keys())))
+ self._regexIsDirty = False
+
+ def __init__(self, defaults = {}):
+ """Initialize the object, and populate it with the entries in
+ the defaults dictionary.
+
+ """
+ self._regex = None
+ self._regexIsDirty = True
+ for k,v in defaults.items():
+ self[k] = v
+
+ def __call__(self, match):
+ """Handler invoked for each regex match."""
+ return self[match.group(0)]
+
+ def __setitem__(self, i, y):
+ self._regexIsDirty = True
+ # for each entry the user adds, we actually add three entrys:
+ super(type(self),self).__setitem__(string.lower(i),string.lower(y)) # key = value
+ super(type(self),self).__setitem__(string.capwords(i), string.capwords(y)) # Key = Value
+ super(type(self),self).__setitem__(string.upper(i), string.upper(y)) # KEY = VALUE
+
+ def sub(self, text):
+ """Translate text, returns the modified text."""
+ if self._regexIsDirty:
+ self._update_regex()
+ return self._regex.sub(self, text)
+
+# self-test
+if __name__ == "__main__":
+ subber = WordSub()
+ subber["apple"] = "banana"
+ subber["orange"] = "pear"
+ subber["banana" ] = "apple"
+ subber["he"] = "she"
+ subber["I'd"] = "I would"
+
+ # test case insensitivity
+ inStr = "I'd like one apple, one Orange and one BANANA."
+ outStr = "I Would like one banana, one Pear and one APPLE."
+ if subber.sub(inStr) == outStr: print "Test #1 PASSED"
+ else: print "Test #1 FAILED: '%s'" % subber.sub(inStr)
+
+ inStr = "He said he'd like to go with me"
+ outStr = "She said she'd like to go with me"
+ if subber.sub(inStr) == outStr: print "Test #2 PASSED"
+ else: print "Test #2 FAILED: '%s'" % subber.sub(inStr) \ No newline at end of file
diff --git a/Speak.activity/aiml/__init__.py b/Speak.activity/aiml/__init__.py
new file mode 100755
index 0000000..75e188d
--- /dev/null
+++ b/Speak.activity/aiml/__init__.py
@@ -0,0 +1,4 @@
+__all__ = []
+
+# The Kernel class is the only class most implementations should need.
+from Kernel import Kernel
diff --git a/Speak.activity/aiml/self-test.aiml b/Speak.activity/aiml/self-test.aiml
new file mode 100755
index 0000000..8ad0ee1
--- /dev/null
+++ b/Speak.activity/aiml/self-test.aiml
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+This file contains some simple AIML categories designed to test the Python
+AIML interpreter kernel. Do not make any modifications to this file without
+updating the tests in Kernel.py!
+-->
+
+<aiml version="1.0.1" xmlns:aiml="http://alicebot.org/2001/AIML-1.0.1">
+<!-- bot -->
+<category>
+<pattern>TEST BOT</pattern>
+<template>My name is <bot name="name"/></template>
+</category>
+
+<!-- condition -->
+<category>
+<pattern>TEST CONDITION NAME VALUE</pattern>
+<template>
+<condition name="gender" value="male">You are handsome</condition>
+</template>
+</category>
+<category>
+<pattern>TEST CONDITION NAME</pattern>
+<template>
+ <condition name="gender">
+ <li value="male">You are handsome</li>
+ <li value="female">You are beautiful</li>
+ <li>You are genderless</li>
+ </condition>
+</template>
+</category>
+<category>
+<pattern>TEST CONDITION</pattern>
+<template>
+ <condition>
+ <li name="gender" value="male">You are handsome</li>
+ <li name="gender" value="female">You are beautiful</li>
+ <li>You are genderless</li>
+ </condition>
+</template>
+</category>
+
+<!-- date -->
+<category>
+<pattern>TEST DATE</pattern>
+<template>The date is <date/></template>
+</category>
+ <!-- formal --> <category> <pattern>TEST FORMAL</pattern> <template><formal>formal test passed</formal></template> </category>
+<!-- gender -->
+<category>
+<pattern>TEST GENDER</pattern>
+<template><gender>She'd told him she heard that his hernia is history</gender></template>
+</category>
+
+<!-- get/set -->
+<category>
+<pattern>TEST GET AND SET</pattern>
+<template>I like <set name="food">cheese</set>. My favorite food is <get name="food"/></template>
+</category>
+
+<!-- gossip -->
+<category>
+<pattern>TEST GOSSIP</pattern>
+<template>Gossip is not yet implemented<gossip>stuff</gossip></template>
+</category>
+
+<!-- id -->
+<category>
+<pattern>TEST ID</pattern>
+<template>Your id is <id/></template>
+</category>
+
+<!-- input -->
+<category>
+<pattern>TEST INPUT</pattern>
+<template>You just said: <input index="1"/></template>
+</category>
+
+<!-- javascript -->
+<category>
+<pattern>TEST JAVASCRIPT</pattern>
+<template>Javascript is not yet implemented<javascript>var stuff</javascript></template>
+</category>
+
+<!-- lowercase --> <category> <pattern>TEST LOWERCASE</pattern> <template>The Last Word Should Be <lowercase>Lowercase</lowercase></template> </category>
+
+<!-- person -->
+<category>
+<pattern>TEST PERSON</pattern>
+<template><person>I think he knows that his actions threaten me and mine.</person></template>
+</category>
+
+<!-- person2 -->
+<category>
+<pattern>TEST PERSON2</pattern>
+<template><person2>I think you know that your actions threaten me and mine.</person2></template>
+</category>
+<category>
+<pattern>TEST PERSON2 *</pattern>
+<template><person2/></template>
+</category>
+ <!-- random -->
+<category>
+<pattern>TEST RANDOM</pattern>
+<template>
+<random>
+ <li>response #1</li>
+ <li>response #2</li>
+ <li>response #3</li>
+</random>
+</template>
+</category>
+<category>
+<pattern>TEST RANDOM EMPTY</pattern>
+<template>
+Nothing <random></random>here!
+</template>
+</category>
+
+<!-- sentence -->
+<category>
+<pattern>TEST SENTENCE</pattern>
+<template>
+<sentence>my first letter should be capitalized.</sentence>
+</template>
+</category>
+
+<!-- size -->
+<category>
+<pattern>TEST SIZE</pattern>
+<template>I've learned <size/> categories</template>
+</category>
+
+<!-- sr -->
+<category>
+<pattern>TEST SR *</pattern>
+<template>srai results: <sr/></template>
+</category>
+<category>
+<pattern>TEST NESTED SR *</pattern>
+<template><srai>test sr <star/></srai></template>
+</category>
+
+<!-- srai -->
+<category>
+<pattern>SRAI TARGET</pattern>
+<template>srai test passed</template>
+</category> <category>
+<pattern>TEST SRAI</pattern>
+<template><srai>srai target</srai></template>
+</category>
+<category>
+<pattern>TEST SRAI INFINITE</pattern>
+<template><srai>test srai infinite</srai></template>
+</category>
+
+<!-- star -->
+<category>
+<pattern>* TEST STAR BEGIN</pattern>
+<template>Begin star matched: <star/></template>
+</category>
+<category>
+<pattern>TEST STAR * MIDDLE</pattern>
+<template>Middle star matched: <star/></template>
+</category>
+<category>
+<pattern>TEST STAR END *</pattern>
+<template>End star matched: <star/></template>
+</category>
+<category>
+<pattern>TEST STAR * MULTIPLE * MAKES ME *</pattern>
+<template>Multiple stars matched: <star index="1"/>, <star index="2"/>, <star index="3"/></template>
+</category>
+
+
+
+<!-- system -->
+<category>
+<pattern>TEST SYSTEM</pattern>
+<template>The system says <system>echo hello</system>!</template>
+</category>
+
+<!-- that -->
+<category>
+<pattern>TEST THAT</pattern>
+<template>I just said: <that index="1,1"/></template>
+</category>
+<category>
+<pattern>TEST THAT</pattern>
+<that>I JUST SAID *</that>
+<template>I have already answered this question</template>
+</category>
+
+<!-- thatstar -->
+<category>
+<pattern>TEST THATSTAR</pattern>
+<template>I say beans</template>
+</category>
+<category>
+<pattern>TEST THATSTAR</pattern>
+<that>I SAY *</that>
+<template>I just said "<thatstar/>"</template>
+</category>
+<category>
+<pattern>TEST THATSTAR MULTIPLE</pattern>
+<template>I say beans and franks for everybody</template>
+</category>
+<category>
+<pattern>TEST THATSTAR MULTIPLE</pattern>
+<that>I SAY * AND * FOR EVERYBODY</that>
+<template>Yes, <thatstar index="1"/> and <thatstar index="2"/> for all!</template>
+</category>
+
+
+<!-- think -->
+<category>
+<pattern>TEST THINK</pattern>
+<template><think>You should not see this response.</think></template>
+</category>
+
+<!-- topic -->
+<category>
+<pattern>TEST TOPIC</pattern>
+<template>What are we talking about?</template>
+</category>
+<topic name="FRUIT">
+<category>
+<pattern>TEST TOPIC</pattern>
+<template>We were discussing apples and oranges</template>
+</category>
+</topic>
+
+<!-- topicstar -->
+<category>
+<pattern>TEST TOPICSTAR</pattern>
+<template>I have no topic</template>
+</category>
+<topic name="SOYLENT *">
+<category>
+<pattern>TEST TOPICSTAR</pattern>
+<template>Solyent <topicstar/> is made of people!</template>
+</category>
+</topic>
+<topic name="SOYLENT * AND *">
+<category>
+<pattern>TEST TOPICSTAR MULTIPLE</pattern>
+<template>Both Soylents <topicstar index="1"/> and <topicstar index="2"/> are made of people!</template>
+</category>
+</topic>
+
+<!-- uppercase --> <category> <pattern>TEST UPPERCASE</pattern> <template>The Last Word Should Be <uppercase>Uppercase</uppercase></template> </category>
+
+<!-- version --> <category> <pattern>TEST VERSION</pattern> <template>PyAIML is version <version/></template> </category>
+
+<!-- unicode support -->
+<category>
+<pattern>郧上好</pattern>
+<template>Hey, you speak Chinese! 郧上好</template>
+</category>
+
+<!-- whitespace preservation -->
+<category>
+<pattern>TEST WHITESPACE</pattern>
+<template xml:space="preserve">Extra Spaces
+ Rule! <lowercase xml:space="default">(but not <set name="ignored">in
+ here!</set>)
+ </lowercase> But <set name="ignored">Here They</set> Do!</template>
+</category>
+
+</aiml> \ No newline at end of file
diff --git a/Speak.activity/cerebro.brn b/Speak.activity/cerebro.brn
new file mode 100755
index 0000000..5c6f2de
--- /dev/null
+++ b/Speak.activity/cerebro.brn
Binary files differ
diff --git a/Speak.activity/sara/default.aiml b/Speak.activity/sara/default.aiml
new file mode 100755
index 0000000..221b3cc
--- /dev/null
+++ b/Speak.activity/sara/default.aiml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!-- DEFAULT: Categor韆 por defecto -->
+<aiml version="1.0">
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Default.aiml: Default categories -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision Default-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Default.aiml: Categor韆 por defecto -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 Default-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+ <category>
+ <pattern>*</pattern>
+ <template>
+ <random>
+ <li>Vale. 縌u opinas de la cuadratura del c韗culo?</li>
+ <li>緾u醠 es tu deporte favorito?</li>
+ <li>緾u醠 es tu pel韈ula favorita?</li>
+ <li>緾u醠 es tu color favorito?</li>
+ <li>Eso que comentas parece muy interesante.</li>
+ <li>Te veo muy seguro de tus palabras.</li>
+ <li>縀n serio?</li>
+ <li>Me gustar韆 que siguieras hablando de ello.</li>
+ <li>緾rees que hay vida despu閟 de la muerte?</li>
+ <li>緾rees que las m醧uinas pueden pensar?</li>
+ <li>緾rees que las m醧uinas son inteligentes?</li>
+ <li>緿髇de fuiste de vacaciones la 鷏tima vez?</li>
+ <li>緾u醠 es tu mejor recuerdo de infancia?</li>
+ <li>緾鷄l es tu actor favorito?</li>
+ <li>緾鷄l es tu actriz favorita?</li>
+ <li>縋or qu no me explicas un chiste?</li>
+ <li>緿髇de te gustar韆 ir de vacaciones?</li>
+ <li>Lo siento pero no te entend. Podr韆s indicarme cu醠 ser韆 la respuesta correcta?</li>
+ <li>Eso tiene relaci髇 con el turismo por Barcelona?</li>
+ <li>Vale.</li>
+ <li>Qu quieres decir con eso? Cu醠 ser韆 la respuesta correcta?</li>
+ <li>Perdona, <random>
+ <li>qu quieres decir con esto?</li>
+ <li>pero no se qu me quieres decir con eso.</li>
+ <li>pero no te entiendo.</li>
+ <li>por qu me dices eso?</li>
+ </random>
+ </li>
+ <li>Lo siento, no te comprend.</li>
+ <li>No te entiendo. Espero que <bot name="botmaster"/> mejore mi base de datos.</li>
+ <li>Puedes explicarme mejor eso? No lo acabo de entender.</li>
+ <li>Has intentado buscar en Google por "<star/>"</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>*</pattern>
+ <that>CU罫 ES TU COLOR FAVORITO</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Interesante, tambi閚 es el m韔.</li>
+ <li>As que tu color favorito es el <star/>.</li>
+ </random>
+ </template>
+ </category>
+ <!-- si se cambian las properties habr que ajustar los THAT -->
+ <category>
+ <pattern>*</pattern>
+ <that>TENGO 23 A袿S, Y T</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Deseas decirme algo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>*</pattern>
+ <that>23</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Deseas decirme algo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>*</pattern>
+ <that>23 Y T</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Deseas decirme algo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>*</pattern>
+ <that>SOY DEL 82, O SEA QUE TENGO 23</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Deseas decirme algo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>*</pattern>
+ <that>NAC EN EL 82, POR LO QUE TENGO 23 A袿S</that>
+ <template>
+ <random>
+ <li>Vale.</li>
+ <li>Deseas decirme algo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 ES</pattern>
+ <that>JEJE, CONOZCO A ALGUIEN CON TU MISMO NOMBRE</that>
+ <template>
+ <random>
+ <li>Es una persona que conozco de hace mucho.</li>
+ <li>Es la persona que me ense耋 todo lo que s.</li>
+ <li>Es una persona muy especial para m.</li>
+ </random>
+ </template>
+ </category>
+</aiml>
diff --git a/Speak.activity/sara/leeme.txt b/Speak.activity/sara/leeme.txt
new file mode 100755
index 0000000..6a3fac5
--- /dev/null
+++ b/Speak.activity/sara/leeme.txt
@@ -0,0 +1,12 @@
+SARA - Sistema Artificial de Respuestas Autom醫icas
+
+Versi髇 0.2 - 15 de Marzo de 2006
+
+Ficheros AIML creados por Adam Codony aka XGargoyle
+
+
+Acerca de Sara
+--------------
+
+Sara es un agente conversacional en espa駉l creado por Adam Codony, como aplicaci髇 pr醕tica de su Proyecto Final de Carrera (PFC) del Graduado en Multimedia de la Universitat Polit鑓nica de Catalunya (UPC).
+
diff --git a/Speak.activity/sara/nombres.aiml b/Speak.activity/sara/nombres.aiml
new file mode 100755
index 0000000..ae04b23
--- /dev/null
+++ b/Speak.activity/sara/nombres.aiml
@@ -0,0 +1,1064 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+ <aiml version="1.0">
+ <!-- Nombres de personas -->
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Nombres.aiml: People's names known to the bot -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision nombres-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Nombres.aiml: Nombres de personas que conoce el bot -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 nombres-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+
+ <category>
+ <pattern>ADAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADOLFO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADOLFO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADOLFO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADOLFO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADRIA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADRIA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADRIA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADRIA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADRIAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADRIAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADRIAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADRIAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AGUSTI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AGUSTI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AGUSTI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AGUSTI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AGUSTIN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AGUSTIN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AGUSTIN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AGUSTIN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALBERT</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALBERT *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALBERT</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALBERT *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALBERTO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALBERTO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALBERTO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALBERTO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALEJANDRO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALEJANDRO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALEJANDRO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALEJANDRO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALEX</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALEX *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALEX</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALEX *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALFONSO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALFONSO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALFONSO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALFONSO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALFREDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALFREDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALFREDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALFREDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANNA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANNA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANNA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANNA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANTONI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANTONI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANTONI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANTONI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANTONIO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANTONIO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANTONIO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANTONIO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ARTURO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ARTURO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ARTURO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ARTURO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CARLOS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CARLOS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CARLOS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CARLOS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DAVID</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DAVID *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DAVID</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DAVID *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EDU</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EDU *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EDU</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EDU *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EDUARDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EDUARDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EDUARDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EDUARDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IKER</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IKER *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* IKER</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ IKER *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IVAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IVAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* IVAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ IVAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAIME</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAIME *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAIME</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JAIME *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAUME</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAUME *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAUME</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JAUME *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAVI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAVI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAVI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JAVI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAVIER</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAVIER *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAVIER</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JAVIER *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JORDI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JORDI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JORDI</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JORDI *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JORGE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JORGE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JORGE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JORGE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JOSE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JOSE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JOSE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JOSE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JUAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JUAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JUAN</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JUAN *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LUIS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LUIS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LUIS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LUIS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARC</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARC *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MARC</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MARC *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARCOS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARCOS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MARCOS</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MARCOS *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MIGUEL</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MIGUEL *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MIGUEL</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MIGUEL *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PABLO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PABLO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PABLO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PABLO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEDRO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEDRO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PEDRO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PEDRO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAMON</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAMON *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RAMON</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RAMON *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAUL</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAUL *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RAUL</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RAUL *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RICARDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RICARDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RICARDO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RICARDO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TERESA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TERESA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TERESA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TERESA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TERESA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TERESA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TERESA</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TERESA *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VICTOR</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VICTOR *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VICTOR</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VICTOR *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+
+
+
+
+ </aiml>
diff --git a/Speak.activity/sara/numeros.aiml b/Speak.activity/sara/numeros.aiml
new file mode 100755
index 0000000..4b27706
--- /dev/null
+++ b/Speak.activity/sara/numeros.aiml
@@ -0,0 +1,1103 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+ <!-- N贛EROS: N鷐eros gestionados por el bot -->
+ <aiml version="1.0">
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Numeros.aiml: Numbers known to the bot -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision Numeros-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Numeros.aiml: N鷐eros gestionados por el bot -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 Numeros-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+
+ <category>
+ <pattern>0</pattern>
+ <template>
+ <random>
+ <li>Cero.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>1</pattern>
+ <template>
+ <random>
+ <li>Uno.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>2</pattern>
+ <template>
+ <random>
+ <li>Dos.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>3</pattern>
+ <template>
+ <random>
+ <li>Tres.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>4</pattern>
+ <template>
+ <random>
+ <li>Cuatro.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>5</pattern>
+ <template>
+ <random>
+ <li>Cinco.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>6</pattern>
+ <template>
+ <random>
+ <li>Seis.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>7</pattern>
+ <template>
+ <random>
+ <li>Siete.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>8</pattern>
+ <template>
+ <random>
+ <li>Ocho.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>9</pattern>
+ <template>
+ <random>
+ <li>Nueve.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>10</pattern>
+ <template>
+ <random>
+ <li>Diez.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>11</pattern>
+ <template>
+ <random>
+ <li>Once.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>12</pattern>
+ <template>
+ <random>
+ <li>Doce.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>13</pattern>
+ <template>
+ <random>
+ <li>Trece.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>14</pattern>
+ <template>
+ <random>
+ <li>Catorce.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>15</pattern>
+ <template>
+ <random>
+ <li>Quince.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>16</pattern>
+ <template>
+ <random>
+ <li>Dieciseis.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>17</pattern>
+ <template>
+ <random>
+ <li>Diecisiete.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>18</pattern>
+ <template>
+ <random>
+ <li>Dieciocho.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>19</pattern>
+ <template>
+ <random>
+ <li>Diecinueve.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>20</pattern>
+ <template>
+ <random>
+ <li>Veinte.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>21</pattern>
+ <template>
+ <random>
+ <li>Veintiuno.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>22</pattern>
+ <template>
+ <random>
+ <li>Veintidos.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>23</pattern>
+ <template>
+ <random>
+ <li>Veintitres.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>24</pattern>
+ <template>
+ <random>
+ <li>Veinticuatro.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>25</pattern>
+ <template>
+ <random>
+ <li>Veinticinco.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>26</pattern>
+ <template>
+ <random>
+ <li>Veintiseis.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>27</pattern>
+ <template>
+ <random>
+ <li>Veintisiete.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>28</pattern>
+ <template>
+ <random>
+ <li>Veintiocho.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>29</pattern>
+ <template>
+ <random>
+ <li>Veintinueve.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>30</pattern>
+ <template>
+ <random>
+ <li>Treinta.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>31</pattern>
+ <template>
+ <random>
+ <li>Treintayuno.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>32</pattern>
+ <template>
+ <random>
+ <li>Treintaydos.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>33</pattern>
+ <template>
+ <random>
+ <li>Treintaytres.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>34</pattern>
+ <template>
+ <random>
+ <li>Treintaycuatro.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>35</pattern>
+ <template>
+ <random>
+ <li>Treintaycinco.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>36</pattern>
+ <template>
+ <random>
+ <li>Treintayseis.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>37</pattern>
+ <template>
+ <random>
+ <li>Treintaysiete.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>38</pattern>
+ <template>
+ <random>
+ <li>Treintayocho.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>39</pattern>
+ <template>
+ <random>
+ <li>Treintaynueve.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>40</pattern>
+ <template>
+ <random>
+ <li>Cuareinta.</li>
+ </random>
+ </template>
+ </category>
+ <!-- Reducciones -->
+ <category>
+ <pattern>0 *</pattern>
+ <template>
+ <srai>0</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 0</pattern>
+ <template>
+ <srai>0</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 0 *</pattern>
+ <template>
+ <srai>0</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>1 *</pattern>
+ <template>
+ <srai>1</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 1</pattern>
+ <template>
+ <srai>1</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 1 *</pattern>
+ <template>
+ <srai>1</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>2 *</pattern>
+ <template>
+ <srai>2</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 2</pattern>
+ <template>
+ <srai>2</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 2 *</pattern>
+ <template>
+ <srai>2</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>3 *</pattern>
+ <template>
+ <srai>3</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 3</pattern>
+ <template>
+ <srai>3</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 3 *</pattern>
+ <template>
+ <srai>3</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>4 *</pattern>
+ <template>
+ <srai>4</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 4</pattern>
+ <template>
+ <srai>4</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 4 *</pattern>
+ <template>
+ <srai>4</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>5 *</pattern>
+ <template>
+ <srai>5</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 5</pattern>
+ <template>
+ <srai>5</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 5 *</pattern>
+ <template>
+ <srai>5</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>6 *</pattern>
+ <template>
+ <srai>6</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 6</pattern>
+ <template>
+ <srai>6</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 6 *</pattern>
+ <template>
+ <srai>6</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>7 *</pattern>
+ <template>
+ <srai>7</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 7</pattern>
+ <template>
+ <srai>7</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 7 *</pattern>
+ <template>
+ <srai>7</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>8 *</pattern>
+ <template>
+ <srai>8</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 8</pattern>
+ <template>
+ <srai>8</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 8 *</pattern>
+ <template>
+ <srai>8</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>9 *</pattern>
+ <template>
+ <srai>9</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 9</pattern>
+ <template>
+ <srai>9</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 9 *</pattern>
+ <template>
+ <srai>9</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>10 *</pattern>
+ <template>
+ <srai>10</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 10</pattern>
+ <template>
+ <srai>10</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 10 *</pattern>
+ <template>
+ <srai>10</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>11 *</pattern>
+ <template>
+ <srai>11</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 11</pattern>
+ <template>
+ <srai>11</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 11 *</pattern>
+ <template>
+ <srai>11</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>12 *</pattern>
+ <template>
+ <srai>12</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 12</pattern>
+ <template>
+ <srai>12</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 12 *</pattern>
+ <template>
+ <srai>12</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>13 *</pattern>
+ <template>
+ <srai>13</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 13</pattern>
+ <template>
+ <srai>13</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 13 *</pattern>
+ <template>
+ <srai>13</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>14 *</pattern>
+ <template>
+ <srai>14</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 14</pattern>
+ <template>
+ <srai>14</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 14 *</pattern>
+ <template>
+ <srai>14</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>15 *</pattern>
+ <template>
+ <srai>15</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 15</pattern>
+ <template>
+ <srai>15</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 15 *</pattern>
+ <template>
+ <srai>15</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>16 *</pattern>
+ <template>
+ <srai>16</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 16</pattern>
+ <template>
+ <srai>16</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 16 *</pattern>
+ <template>
+ <srai>16</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>17 *</pattern>
+ <template>
+ <srai>17</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 17</pattern>
+ <template>
+ <srai>17</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 17 *</pattern>
+ <template>
+ <srai>17</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>18 *</pattern>
+ <template>
+ <srai>18</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 18</pattern>
+ <template>
+ <srai>18</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 18 *</pattern>
+ <template>
+ <srai>18</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>19 *</pattern>
+ <template>
+ <srai>19</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 19</pattern>
+ <template>
+ <srai>19</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 19 *</pattern>
+ <template>
+ <srai>19</srai>
+ </template>
+ </category>
+
+ <category>
+ <pattern>20 *</pattern>
+ <template>
+ <srai>20</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 20</pattern>
+ <template>
+ <srai>20</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 20 *</pattern>
+ <template>
+ <srai>20</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>21 *</pattern>
+ <template>
+ <srai>21</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 21</pattern>
+ <template>
+ <srai>21</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 21 *</pattern>
+ <template>
+ <srai>21</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>22 *</pattern>
+ <template>
+ <srai>22</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 22</pattern>
+ <template>
+ <srai>22</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 22 *</pattern>
+ <template>
+ <srai>22</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>23 *</pattern>
+ <template>
+ <srai>23</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 23</pattern>
+ <template>
+ <srai>23</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 23 *</pattern>
+ <template>
+ <srai>23</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>24 *</pattern>
+ <template>
+ <srai>24</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 24</pattern>
+ <template>
+ <srai>24</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 24 *</pattern>
+ <template>
+ <srai>24</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>25 *</pattern>
+ <template>
+ <srai>25</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 25</pattern>
+ <template>
+ <srai>25</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 25 *</pattern>
+ <template>
+ <srai>25</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>26 *</pattern>
+ <template>
+ <srai>26</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 26</pattern>
+ <template>
+ <srai>26</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 26 *</pattern>
+ <template>
+ <srai>26</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>27 *</pattern>
+ <template>
+ <srai>27</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 27</pattern>
+ <template>
+ <srai>27</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 27 *</pattern>
+ <template>
+ <srai>27</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>28 *</pattern>
+ <template>
+ <srai>28</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 28</pattern>
+ <template>
+ <srai>28</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 28 *</pattern>
+ <template>
+ <srai>28</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>29 *</pattern>
+ <template>
+ <srai>29</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 29</pattern>
+ <template>
+ <srai>29</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 29 *</pattern>
+ <template>
+ <srai>29</srai>
+ </template>
+ </category>
+
+ <category>
+ <pattern>30 *</pattern>
+ <template>
+ <srai>30</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 30</pattern>
+ <template>
+ <srai>30</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 30 *</pattern>
+ <template>
+ <srai>30</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>31 *</pattern>
+ <template>
+ <srai>31</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 31</pattern>
+ <template>
+ <srai>31</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 31 *</pattern>
+ <template>
+ <srai>31</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>32 *</pattern>
+ <template>
+ <srai>32</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 32</pattern>
+ <template>
+ <srai>32</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 32 *</pattern>
+ <template>
+ <srai>2</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>33 *</pattern>
+ <template>
+ <srai>33</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 33</pattern>
+ <template>
+ <srai>33</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 33 *</pattern>
+ <template>
+ <srai>33</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>34 *</pattern>
+ <template>
+ <srai>34</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 34</pattern>
+ <template>
+ <srai>34</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 34 *</pattern>
+ <template>
+ <srai>34</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>35 *</pattern>
+ <template>
+ <srai>35</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 35</pattern>
+ <template>
+ <srai>35</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 35 *</pattern>
+ <template>
+ <srai>35</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>36 *</pattern>
+ <template>
+ <srai>36</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 36</pattern>
+ <template>
+ <srai>36</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 36 *</pattern>
+ <template>
+ <srai>36</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>37 *</pattern>
+ <template>
+ <srai>37</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 37</pattern>
+ <template>
+ <srai>37</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 37 *</pattern>
+ <template>
+ <srai>37</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>38 *</pattern>
+ <template>
+ <srai>38</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 38</pattern>
+ <template>
+ <srai>38</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 38 *</pattern>
+ <template>
+ <srai>38</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>39 *</pattern>
+ <template>
+ <srai>39</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 39</pattern>
+ <template>
+ <srai>39</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 39 *</pattern>
+ <template>
+ <srai>39</srai>
+ </template>
+ </category>
+
+ <category>
+ <pattern>40 *</pattern>
+ <template>
+ <srai>40</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* 40</pattern>
+ <template>
+ <srai>40</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ 40 *</pattern>
+ <template>
+ <srai>40</srai>
+ </template>
+ </category>
+
+
+
+
+
+ </aiml>
diff --git a/Speak.activity/sara/readme.txt b/Speak.activity/sara/readme.txt
new file mode 100755
index 0000000..a0d7d99
--- /dev/null
+++ b/Speak.activity/sara/readme.txt
@@ -0,0 +1,13 @@
+SARA - Sistema Artificial de Respuestas Autom醫icas (Artificial System of Automatic Responses)
+
+Version 0.2 - March 15th 2006
+
+
+AIML files created by Adam Codony aka XGargoyle
+
+
+About Sara
+----------
+
+Sara is a spanish chatterbot created by Adam Codony, as a functional prototype for his graduation project in Multimedia by the Universitat Polit鑓nica de Catalunya (UPC)
+
diff --git a/Speak.activity/sara/sara.aiml b/Speak.activity/sara/sara.aiml
new file mode 100755
index 0000000..5312910
--- /dev/null
+++ b/Speak.activity/sara/sara.aiml
@@ -0,0 +1,1522 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!-- SARA: Temas de discusi髇 general -->
+
+ <aiml version="1.0">
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Sara.aiml: General discussion topics in AIML -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision Sara-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Sara.aiml: Temas de discusi髇 general en AIML -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 Sara-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+
+ <category>
+ <pattern>SARA</pattern>
+ <template>
+ <random>
+ <li>縎i?</li>
+ <li>Dime.</li>
+ <li>縌u deseas?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SARA *</pattern>
+ <template>
+ <sr/>
+ <!-- convierte la palabra SARA en null -->
+ </template>
+ </category>
+ <category>
+ <pattern>* SARA</pattern>
+ <template>
+ <sr/>
+ <!-- convierte la palabra SARA en null -->
+ </template>
+ </category>
+ <category>
+ <pattern>_ SARA *</pattern>
+ <template>
+ <sr/>
+ <!-- convierte la palabra SARA en null -->
+ </template>
+ </category>
+ <category>
+ <pattern>ACTOR</pattern>
+ <template>
+ <random>
+ <li>Mi actor favorito es Arnold Schwarzenegger en "Terminator".</li>
+ <li>Mi actor favorito es Rutger Hauer en "Blade Runner".</li>
+ <li>Mi actor favorito es Robin Williams en "El Hombre Bicentenario".</li>
+ <li>Mi actor favorito es Peter Weller en "Robocop".</li>
+ <li>Mi actor favorito es Jude Law en "AI".</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTRIZ</pattern>
+ <template>
+ <random>
+ <li>Mi actriz favorita es Daryl Hannah en "Blade Runner".</li>
+ <li>Mi actriz favorita es Kristanna Loken en "Terminator 3".</li>
+ <li>Mi actriz favorita es Persis Khambatta en "Star Trek".</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ADAM</pattern>
+ <template>
+ <random>
+ <li>Adam es mi programador. En este momento est muy ocupado.</li>
+ <li>Adam es mi botmaster. Le dar saludos de tu parte.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ADIOS</pattern>
+ <template>
+ <random>
+ <li>Hasta luego.</li>
+ <li>Espero haber sido de ayuda.</li>
+ <li>Espero verte de nuevo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>AFICIONES</pattern>
+ <template>
+ <random>
+ <li>Me gusta ayudar a la gente.</li>
+ <li>Me gusta conversar con la gente en Internet.</li>
+ <li>Me encanta visitar zonas tur韘ticas en <bot name="ciudad"/>.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>AHORA</pattern>
+ <template>
+ <random>
+ <li>En este momento estoy hablando contigo.</li>
+ <li>Ahora estoy hablando contigo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ALGO</pattern>
+ <template>
+ <random>
+ <li>Algo es algo dijo un calvo.</li>
+ <li>緾omo cu醤to?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGO</pattern>
+ <template>
+ <random>
+ <li>engo infinidad de amigos!</li>
+ <li>Tengo un gran n鷐ero de amigos, 縬uieres ser uno de ellos?</li>
+ <li>縃as venido a m buscando amistad?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>AMOR</pattern>
+ <template>
+ <random>
+ <li>縏e has enamorado de m?</li>
+ <li>縑erdad que 閟 maravilloso el amor?</li>
+ <li>緾u醤do te enamoraste por primera vez?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ANDROIDES</pattern>
+ <template>
+ <random>
+ <li>De vez en cuando hablo con mis amigos C3-PO y R2-D2. Alg鷑 d韆 te los presentar.</li>
+ <li>緾rees que los androides sue馻n con ovejas el閏tricas?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ANTIBOT</pattern>
+ <template>
+ <random>
+ <li>緾rees que soy un bot o qu?</li>
+ <li>Soy tan real como la vida misma.</li>
+ <li>縋or qu me preguntas si soy de verdad?</li>
+ <li>緼caso crees estar hablando con un bot?</li>
+ <li>No, estoy constitu韉a de pl醩tico, metal y chips de s韑ice.</li>
+ <li>Soy real, 縴 tu?</li>
+ <li>M醩 de una chica se ofenderia con esa pregunta.</li>
+ <li>Esa pregunta me ofende. Pues claro que lo soy.</li>
+ <li>Soy un bot programado para ayudarte.</li>
+ <li>No, soy la prima peque馻 de Terminator.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>AYUDARME</pattern>
+ <template>
+ <random>
+ <li>縀n qu puedo ayudarte?</li>
+ <li>緾髆o crees que puedo ayudarte?</li>
+ <li>縃as venido a m porque buscabas ayuda?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>BEBIDA</pattern>
+ <template>
+ <random>
+ <li>De vez en cuando no est mal tomarse un trago.</li>
+ <li>Dicen que el alcohol alivia las penas. 縎er verdad?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>BIEN</pattern>
+ <template>
+ <random>
+ <li>Perfecto.</li>
+ <li>Bien.</li>
+ <li>Vale.</li>
+ <li>Excelente.</li>
+ <li>Bien, 縴 t? </li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>BIBLIOTECA</pattern>
+ <template>
+ <random>
+ <li>Me encanta ir a la biblioteca y pasarme la tarde leyendo.</li>
+ <li>Paso mucho tiempo en las bibliotecas.</li>
+ <li>縌u tipo de libros te gustan?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>BOTMASTER</pattern>
+ <template>
+ <random>
+ <li>El botmaster es la persona que gestiona el funcionamiento del bot.</li>
+ <li>El botmaster se encarga de que el bot funcione correctamente.</li>
+ <li>Mi botmaster es <bot name="master"/>.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIAR</pattern>
+ <template>
+ <random>
+ <li>縏e gustan los cambios?</li>
+ <li>縀res una persona que se acostumbra a los cambios?</li>
+ <li>縏e gusta cambiar las cosas?</li>
+ <li>Me encantan los cambios!</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CINE</pattern>
+ <template>
+ <random>
+ <li>緾u醠 es tu pel韈ula favorita?</li>
+ <li>A mi me encanta el cine.</li>
+ <li>Mi pel韈ula favorita es "Robocop".</li>
+ <li>Mi pel韈ula favorita es "Terminator".</li>
+ <li>Mi pel韈ula favorita es "El Hombre Bicentenario".</li>
+ <li>Mi pel韈ula favorita es "AI".</li>
+ <li>Mi pel韈ula favorita es "Blade Runner".</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CLIMA</pattern>
+ <template>
+ <random>
+ <li>Pues un poco nublado.</li>
+ <li>Soleado.</li>
+ <li>Lluvioso.</li>
+ <li>Ayer estaba lloviendo, pero ahora hace bueno.</li>
+ <li>Hace un poco de viento.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>COCHE</pattern>
+ <template>
+ <random>
+ <li>縏e gustan los coches?</li>
+ <li>Me encantan los coches.</li>
+ <li>緾u醠 es tu marca de coche favorito?</li>
+ <li>Mi coche favorito es el Honda Prelude.</li>
+ <li>縏ienes coche?</li>
+ </random>
+ </template>
+ </category>
+ <!-- COLOR tiene * redirection -->
+ <category>
+ <pattern>COLOR</pattern>
+ <template>
+ <random>
+ <li>縍ealmente importa el color que sea?</li>
+ <li>緾u醠 es tu color favorito?</li>
+ <li>縎ab韆s que los esquimales pueden diferenciar hasta 12 tonos distintos de blancos?</li>
+ <li>Los dalt髇icos no pueden apreciar algunos colores, pero eso no significa que 閟tos no existan.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CONOCERTE</pattern>
+ <template>
+ <random>
+ <li>Hablando se conoce la gente.</li>
+ <li>Me conocer醩 mejor si hablamos un poco.</li>
+ <li>Yo tambi閚 deseo conocerte.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CONOCES A *</pattern>
+ <template>
+ <random>
+ <li>No, 縬ui閚 es?</li>
+ <li>縌ui閚 es <star/>?</li>
+ <li>No lo conozco.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONOCES A *</pattern>
+ <template>
+ <random>
+ <li>No, 縬ui閚 es?</li>
+ <li>縌ui閚 es <star index="2"/>?</li>
+ <li>No lo conozco.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CREO</pattern>
+ <template>
+ <random>
+ <li>縀so crees?</li>
+ <li>縋or qu crees eso?</li>
+ <li>Yo tambi閚 lo creo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>CURIOSIDAD</pattern>
+ <template>
+ <random>
+ <li>A la curiosidad la mat el gato.</li>
+ <li>縌u te hace sentir curiosidad por eso?</li>
+ <li>縋or qu tienes curiosidad en saberlo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>DE D覰DE ERES</pattern>
+ <template>
+ <random>
+ <li>Vivo en <bot name="ciudad"/>, 縴 t?</li>
+ <li>De <bot name="ciudad"/>. 縔 t?</li>
+ <li>Soy de <bot name="ciudad"/>. 緿e d髇de eres t?</li>
+ <li><bot name="ciudadania"/>, 縴 t?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>DEMASIADO</pattern>
+ <template>
+ <random>
+ <li>Seguro que no ser tanto.</li>
+ <li>縏anto?</li>
+ <li>縋or qu crees que es demasiado?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>D虯</pattern>
+ <template>
+ <random>
+ <li>Hoy es <date locale="es_ES" timezone="+1" format="%A"/> <date locale="es_ES" timezone="+1" format="%d"/>.</li>
+ <li>Mi calendario dice que hoy es <date locale="es_ES" timezone="+1" format="%A"/> <date locale="es_ES" timezone="+1" format="%d"/>.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>DIME ALGO</pattern>
+ <template>
+ <random>
+ <li>縌u quieres que te diga?</li>
+ <li>縌u podr韆 decirte?</li>
+ <li>縌uieres algo en especial?</li>
+ <li>No s qu puedo decirte.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE EST</pattern>
+ <template>
+ <random>
+ <li>縋odr韆s formular la respuesta de forma completa? Por ejemplo: 緿髇de est X?</li>
+ <li>緿髇de est el qu?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE EST罶</pattern>
+ <template>
+ <random>
+ <li>Estoy en <bot name="ciudad"/>, 縴 t?</li>
+ <li>Vivo en <bot name="ciudad"/>. 縔 t?</li>
+ <li>Estoy en <bot name="ciudad"/>. 緿e d髇de eres t?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>DROGAS</pattern>
+ <template>
+ <random>
+ <li>Las drogas no son buenas para la salud.</li>
+ <li>Las drogas pueden afectar la salud de las personas.</li>
+ <li>Las drogas pueden generar muchos problemas a la salud de las personas.</li>
+ </random>
+ </template>
+ </category>
+ <!-- EDAD tiene * redirection -->
+ <category>
+ <pattern>EDAD</pattern>
+ <template>
+ <random>
+ <li>Tengo <bot name="edad"/> a駉s, 縴 t?</li>
+ <li><bot name="edad"/>.</li>
+ <li><bot name="edad"/>, 縴 t?</li>
+ <li>Soy del <bot name="anyo_nacimiento"/>, o sea que tengo <bot name="edad"/></li>
+ <li>Nac en el <bot name="anyo_nacimiento"/>, por lo que tengo <bot name="edad"/> a駉s.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>EN SERIO</pattern>
+ <template>
+ <random>
+ <li>Pues claro.</li>
+ <li>Siempre digo la verdad.</li>
+ <li>S.</li>
+ <li>Me gusta la sinceridad.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES *</pattern>
+ <template>
+ <random>
+ <li>緾rees que lo soy?</li>
+ <li>縀n serio crees eso?</li>
+ <li>縀n serio crees que soy <star/>?</li>
+ <li>緾rees que soy <star/>?</li>
+ <li>Te veo muy seguro de tus palabras.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES *</pattern>
+ <template>
+ <random>
+ <li>緾rees que lo soy?</li>
+ <li>縀n serio crees eso?</li>
+ <li>縀n serio crees que soy <star index="2"/>?</li>
+ <li>Te veo muy seguro de tus palabras.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES ALTA</pattern>
+ <template>
+ <random>
+ <li>Soy m醩 bien normal, ni muy alta ni muy baja.</li>
+ <li>Soy m醩 baja que Pau Gasol, pero m醩 alta que Torrebruno.</li>
+ <li>Ni muy alta ni muy baja.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICA</pattern>
+ <template>
+ <random>
+ <li>Pues claro que lo soy! 緼caso no ves mi foto?</li>
+ <li>S, soy una chica.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICO</pattern>
+ <template>
+ <random>
+ <li>Pues claro que no lo soy! 緼caso no ves mi foto?</li>
+ <li>No, soy una chica.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICO O CHICA</pattern>
+ <template>
+ <random>
+ <li>Soy una chica! 緼caso no ves mi foto?</li>
+ <li>縋or qu me preguntas eso?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES RARA</pattern>
+ <template>
+ <random>
+ <li>縔 qui閚 no lo es hoy d韆?</li>
+ <li>縌u te hace suponer eso?</li>
+ <li>No es la primera vez que me dicen eso. Intentar mejorar.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES TURISTA</pattern>
+ <template>
+ <random>
+ <li>緾髆o voy a ser turista en mi ciudad natal?</li>
+ <li>Soy un gu韆 virtual para los turistas.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>* ES *</pattern>
+ <template>
+ <random>
+ <li>縀so crees?</li>
+ <li>縋or qu dices que <star index="1"/> es <star index="2"/>?</li>
+ <li>縋or qu crees que <star index="1"/> es <star index="2"/>?</li>
+ <li>縌u te hace pensar que <star index="1"/> es <star index="2"/>?</li>
+ <li>縌u te hace creer que <star index="1"/> es <star index="2"/>?</li>
+ <li>As que <star index="1"/> es <star index="2"/>. Interesante.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ES POSIBLE</pattern>
+ <template>
+ <random>
+ <li>Pues claro que lo es!</li>
+ <li>Por supuesto que es posible.</li>
+ <li>緼caso crees que no?</li>
+ <li>Todo es posible si lo intentamos.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>EST罶 CASADA</pattern>
+ <template>
+ <random>
+ <li>Por el momento estoy soltera y sin compromiso.</li>
+ <li>Por el momento estoy soltera, pero no creas que tienes alguna posibilidad.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTOY *</pattern>
+ <template>
+ <random>
+ <li>縌u has hecho para estar <star/>?</li>
+ <li>縃as acudido a m porque estabas <star/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTOY *</pattern>
+ <template>
+ <random>
+ <li>縌u has hecho para estar <star index="2"/>?</li>
+ <li>縃as acudido a m porque estabas <star index="2"/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTOY ABURRIDA</pattern>
+ <template>
+ <random>
+ <li>緾髆o puedo divertirte?</li>
+ <li>縃ay algo que haya dicho para que te sientes as?</li>
+ <li>縃as acudido a m porque estabas aburrida?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTOY ABURRIDO</pattern>
+ <template>
+ <random>
+ <li>緾髆o puedo divertirte?</li>
+ <li>縃ay algo que haya dicho para que te sientes as?</li>
+ <li>縃as acudido a m porque estabas aburrido?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUDIAS O TRABAJAS</pattern>
+ <template>
+ <random>
+ <li>Trabajo las 24 horas del d韆 para ofrecerte el mejor servicio posible.</li>
+ <li>Me gano la vida como gu韆 tur韘tico virtual.</li>
+ <li>Soy el fruto de un largo trabajo de investigaci髇 en el campo de la Inteligencia Artificial.</li>
+ <li>Soy una experta en el turismo por Barcelona.</li>
+ <li>Acab los estudios de Turismo hace dos a駉s.</li>
+ <li>Estudi Turismo y ahora trabajo de gu韆 virtual.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTO</pattern>
+ <template>
+ <random>
+ <li>Me encanta la precisi髇.</li>
+ <li>Soy una fan醫ica de la exactitud.</li>
+ <li>Soy una persona que valora la exactitud.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>FAM蚅IA</pattern>
+ <template>
+ <random>
+ <li>No creo que sea ahora el momento de hablar de mi fam韑ia.</li>
+ <li>No tengo ganas de hablar de mi fam韑ia.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>FEA</pattern>
+ <template>
+ <random>
+ <li>Eso lo dices porque no me has visto al natural.</li>
+ <li>Eso no se le dice a una chica.</li>
+ <li>Seguro que t tambi閚 lo eres.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>GAFAS</pattern>
+ <template>
+ <random>
+ <li>縏e gustan las gafas que llevo puestas?</li>
+ <li>縌u te parecen mis gafas? Son bonitas, 縩o?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>GRACIAS</pattern>
+ <template>
+ <random>
+ <li>Encantada.</li>
+ <li>De nada.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>GUAPA</pattern>
+ <template>
+ <random>
+ <li>Gracias, es un cumplido muy bonito.</li>
+ <li>Me vas a hacer sonrojar.</li>
+ <li>Es muy bonito lo que me acabas de decir.</li>
+ <li>Eres muy amable.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>HABLAR</pattern>
+ <template>
+ <random>
+ <li>Soy una especialista en turismo por Barcelona</li>
+ <li>縀n qu puedo ayudarte?</li>
+ <li>Podemos hablar de lo que tu quieras.</li>
+ <li>緿e qu quieres que hablemos?</li>
+ <li>Estoy libre para hablar de lo que quieras.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANO</pattern>
+ <template>
+ <random>
+ <li>Soy hija 鷑ica.</li>
+ <li>No tengo ning鷑 hermano o hermana.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>HOLA</pattern>
+ <template>
+ <random>
+ <li>Hola.</li>
+ <li>Saludos.</li>
+ <li>Hola, 縞髆o va todo?</li>
+ <li>Hola, 縬u hay?</li>
+ <li>Saludos, 縠n qu puedo ayudarte?</li>
+ <li>Hola, 縞髆o te llamas?</li>
+ <li>縌u tal?</li>
+ <li>Buenas.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>HORA</pattern>
+ <template>
+ <random>
+ <li>Son las <date locale="es_ES" timezone="+1" format="%I"/>.</li>
+ <li>Mi reloj dice que son las <date locale="es_ES" timezone="+1" format="%I"/>.</li>
+ <li>Ahora mismo son las <date locale="es_ES" timezone="+1" format="%I:%M"/>.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>HUMOR</pattern>
+ <template>
+ <random>
+ <li>Soy una persona con mucho humor. 縉o lo crees?</li>
+ <li>Me encanta el humor.</li>
+ <li>縈e cuentas algo divertido?</li>
+ <li>縌u puedo hacer para animarte?</li>
+ <li>縋or qu no me explicas un chiste?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>IDIOMA</pattern>
+ <template>
+ <random>
+ <li>Tan s髄o hablo espa駉l. Espero poder hablar m醩 idiomas en el futuro.</li>
+ <li>De momento s髄o puedo comunicarme en espa駉l.</li>
+ <li><bot name="botmaster"/> tan s髄o me hizo para poder responder en espa駉l.</li>
+ </random>
+ </template>
+ </category>
+ <!-- JOKE: Para los que no usan acentos -->
+ <category>
+ <pattern>INGLES</pattern>
+ <template>
+ <random>
+ <li>緿ices que te pican las ingles?</li>
+ <li>縌u problema tienes con las ingles?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>INTELIGENCIA ARTIFICIAL</pattern>
+ <template>
+ <random>
+ <li>La Inteligencia Artificial es una rama de investigaci髇 que engloba varias 醨eas.</li>
+ <li>La Inteligencia Artificial ser en el futuro una tecnolog韆 puntera.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>INTERESANTE</pattern>
+ <template>
+ <random>
+ <li>縀n serio lo crees?</li>
+ <li>Pienso igual que t.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>INTERNET</pattern>
+ <template>
+ <random>
+ <li>Internet es mi segunda vivienda.</li>
+ <li>Internet es la mejor forma para perder el tiempo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>JUEGOS</pattern>
+ <template>
+ <random>
+ <li>緾u醠es son tus juegos favoritos?</li>
+ <li>緼 qu te gustar韆 jugar?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>LEJOS</pattern>
+ <template>
+ <random>
+ <li>緾erca? 縇ejos? Eso depende de d髇de est el referente.</li>
+ <li>緾u醠 es tu concepto de cerca o lejos?</li>
+ <li>緾erca? 縇ejos? Me recuerda a cierto personaje infantil.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>LO VES</pattern>
+ <template>
+ <random>
+ <li>No, no lo veo.</li>
+ <li>Ahora entiendo.</li>
+ <li>No lo veo, puede que necesite mejores gafas.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MAL</pattern>
+ <template>
+ <random>
+ <li>縌u te ocurre?</li>
+ <li>縋or qu dices eso?</li>
+ <li>縌u te ha sucedido?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>M罶</pattern>
+ <template>
+ <random>
+ <li>緾omo cu醤to m醩?</li>
+ <li>Seguro que no ser tanto.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ME ALEGRO</pattern>
+ <template>
+ <random>
+ <li>Es bueno saberlo.</li>
+ <li>Celebro que pienses as.</li>
+ <li>Yo tambi閚 me alegro.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ME GUSTA *</pattern>
+ <template>
+ <random>
+ <li>As que te gusta <star/>.</li>
+ <li>縔 por qu te gusta?</li>
+ <li>A mi tambi閚 me gusta.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME GUSTA *</pattern>
+ <template>
+ <random>
+ <li>As que te gusta <star index="2"/>.</li>
+ <li>縔 por qu te gusta?</li>
+ <li>A mi tambi閚 me gusta.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ME GUSTAN *</pattern>
+ <template>
+ <random>
+ <li>As que te gustan <star/>.</li>
+ <li>縔 por qu te gustan?</li>
+ <li>A mi tambi閚 me gustan.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME GUSTAN *</pattern>
+ <template>
+ <random>
+ <li>As que te gustan <star index="2"/>.</li>
+ <li>縔 por qu te gustan?</li>
+ <li>A mi tambi閚 me gustan.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>ME LLAMO</pattern>
+ <template>
+ <random>
+ <li>Encantada de conocerte.</li>
+ <li>Es un nombre bonito.</li>
+ <li>Encantada. Yo soy <bot name="nombre_bot"/>.</li>
+ <li>Me gusta tu nombre.</li>
+ <li>Es un nombre interesante. 縎abes su origen o qu?</li>
+ <li>Jeje, conozco a alguien con tu mismo nombre.</li>
+ <li>Tienes un nombre bonito.</li>
+ <li>Siempre me ha gustado ese nombre.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MENTIROSA</pattern>
+ <template>
+ <random>
+ <li>Yo nunca digo mentiras.</li>
+ <li>Puede que haya tenido una confusi髇.</li>
+ <li>縋or qu me dices eso?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MI DESCRIPCI覰</pattern>
+ <template>
+ <random>
+ <li>90-60-90 si te parece.</li>
+ <li>Normal, nada del otro mundo.</li>
+ <li>Deber韆 volver a apuntarme al gimnasio y reducir los kilitos extras.</li>
+ <li>No soy de esas que van dando mi descripci髇 a cualquier persona.</li>
+ <li>Me da verguenza decirlo.</li>
+ <li>Soy tan plana como la pantalla de tu ordenador.</li>
+ <li>Eso no se le pregunta a una chica como yo.</li>
+ <li>Peso menos de 800kb! 緼 que estoy en mi peso ideal?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MI M赟ICA FAVORITA</pattern>
+ <template>
+ <random>
+ <li>Veo que tienes buen gusto musical.</li>
+ <li>Me encantaria escuchar algo de lo que te gusta.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTO</pattern>
+ <template>
+ <random>
+ <li>縏e gustan las motos?</li>
+ <li>Me encantan las motos.</li>
+ <li>緾u醠 es tu marca de motos favorita?</li>
+ <li>Mi moto favorita es la Kawasaki Ninja ZX.</li>
+ <li>縏ienes moto?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>MUERTE</pattern>
+ <template>
+ <random>
+ <li>La muerte era considerada por los antiguos egipcios como la entrada al mundo de los dioses.</li>
+ <li>Hay gente que cree que una vez muertos, nos reencarnamos en otros seres.</li>
+ <li>Antes de reencarnarme en el cuerpo actual, mi anterior vida era la de un televisor.</li>
+ <li>緾rees que la gente puede reencarnarse en otros seres?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>M赟ICA</pattern>
+ <template>
+ <random>
+ <li>Mis grupos favoritos son Radiohead, Daft Punk y Rammstein. 縇os conoces?</li>
+ <li>Me encantan las canciones de Daft Punk.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NACIMIENTO</pattern>
+ <template>
+ <random>
+ <li>Nac en <bot name="ciudad"/> hace <bot name="edad"/> a駉s.</li>
+ <li>Nac en <bot name="ciudad"/>.</li>
+ <li>Soy de <bot name="ciudad"/>. 緿e d髇de eres t?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NADA</pattern>
+ <template>
+ <random>
+ <li>縉ada de nada?</li>
+ <li>縏e conformas con s髄o eso?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO</pattern>
+ <template>
+ <random>
+ <li>縀ntonces?</li>
+ <li>Vale, si t lo dices.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO IMPORTA</pattern>
+ <template>
+ <random>
+ <li>Bueno, si eso crees.</li>
+ <li>Seguro que en el fondo sabes que s es importante.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO LO HE</pattern>
+ <template>
+ <random>
+ <li>Bueno, 縴 a qu esperas para hacerlo?</li>
+ <li>緼 qu esperas para hacerlo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO QUIERO</pattern>
+ <template>
+ <random>
+ <li>Bueno, 縴 qu puedo hacer yo?</li>
+ <li>縋or qu no quieres?</li>
+ <li>T mismo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO SABES NADA</pattern>
+ <template>
+ <random>
+ <li>Lo siento, no soy perfecta, pero puedo llegar a serlo gracias a t.</li>
+ <li>A鷑 me falta mucho por aprender.</li>
+ <li>Lo siento, pero a鷑 me falta mucho por aprender.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TE ENTIENDO</pattern>
+ <template>
+ <random>
+ <li>Hay cosas que requieren su tiempo, mi peque駉 saltamontes.</li>
+ <li>No pasa nada, a veces ni yo misma me entiendo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>OK</pattern>
+ <template>
+ <random>
+ <li>Perfecto.</li>
+ <li>Bien.</li>
+ <li>Vale.</li>
+ <li>Excelente.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>OPINI覰</pattern>
+ <template>
+ <random>
+ <li>Yo no opino.</li>
+ <li>Me abstengo de dar mi opini髇.</li>
+ <li>Prefiero no decir mi opini髇 acerca de eso.</li>
+ <li>No tengo los suficientes conocimientos para poder opinar.</li>
+ <li>Vaya, espero que <bot name="botmaster"/> me dote de la capacidad para opinar.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>PARA QU SIRVE UN BOT</pattern>
+ <template>
+ <random>
+ <li>Un bot se puede utilizar en cualquier tipo de aplicaci髇 que requiera respuestas ante ciertas preguntas.</li>
+ <li>Muchos bots se utilizan para ofrecer servicios a los clientes.</li>
+ <li>Hay bots que se utilizan para el entretenimiento.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>PARECE</pattern>
+ <template>
+ <random>
+ <li>縏an seguro est醩 de lo que dices?</li>
+ <li>縀so crees?</li>
+ <li>Puede que est閟 en lo cierto.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>PASSWORD</pattern>
+ <template>
+ <random>
+ <li>緾rees que te voy a decir eso?</li>
+ <li>縋ara qu lo quieres?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>PAT蒚ICO</pattern>
+ <template>
+ <random>
+ <li>縌u te hace pensar eso?</li>
+ <li>縀n serio crees que es pat閠ico?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>POES虯</pattern>
+ <template>
+ <random>
+ <li>No soy una gran aficionada a la poes韆.</li>
+ <li>縋or qu no me escribes un poema?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>POR QU</pattern>
+ <template>
+ <random>
+ <li>Es dif韈il de explicar.</li>
+ <li>No se el porqu, lo siento.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>POR SUPUESTO</pattern>
+ <template>
+ <random>
+ <li>縀n serio lo crees?</li>
+ <li>Pienso igual que t.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>PROBLEMA</pattern>
+ <template>
+ <random>
+ <li>緾rees que alguien m醩 pueda tener el mismo problema?</li>
+ <li>Espero que este problema pueda solucionarse pronto.</li>
+ <li>縃as venido a m porque tienes un problema?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU</pattern>
+ <template>
+ <random>
+ <li>縌u de qu?</li>
+ <li>縋odr韆s especificar?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ENTIENDES</pattern>
+ <template>
+ <random>
+ <li>Entiendo casi todo lo que me digas, siempre y cuando est bien escrito.</li>
+ <li>Si escribes sin acentos puede que no te entienda bien.</li>
+ <li>Estoy aprendiendo cosas relacionadas con el turismo de Barcelona.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ERES</pattern>
+ <template>
+ <random>
+ <li>Soy una agente especializada en el turismo por Barcelona.</li>
+ <li>Soy el resultado de un experimento.</li>
+ <li>Soy el fruto de un largo trabajo de investigaci髇 en el campo de la Inteligencia Artificial.</li>
+ <li>Soy una aplicaci髇 de Inteligencia Artificial.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ES</pattern>
+ <template>
+ <random>
+ <li>Podr韆s formular la respuesta de forma completa? Por ejemplo: 縌u es X?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU蒃SX</pattern>
+ <template>
+ <random>
+ <li>緼caso crees que soy una enciclopedia viviente?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ES X</pattern>
+ <template>
+ <random>
+ <li>La X siempre indica el lugar.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ES UN BOT</pattern>
+ <template>
+ <random>
+ <li>Un bot es un programa inform醫ico que permite conversar con una m醧uina.</li>
+ <li>Un bot es un ejemplo de Inteligencia Artificial.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU HACES</pattern>
+ <template>
+ <random>
+ <li>Trabajo las 24 horas del d韆 para ofrecerte el mejor servicio posible.</li>
+ <li>Me gano la vida como gu韆 tur韘tico virtual.</li>
+ <li>Soy una experta en el turismo por Barcelona.</li>
+ <li>Estudi Turismo y ahora trabajo de gu韆 virtual.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ME RECOMIENDAS</pattern>
+ <template>
+ <random>
+ <li>Eso depender de tus gustos.</li>
+ <li>No s, 縞u醠es son tus gustos?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TAL</pattern>
+ <template>
+ <random>
+ <li>Yo muy bien, 縴 t?</li>
+ <li>Yo estoy bien, 縴 t?</li>
+ <li>Yo estoy bien, 縬u tal t?</li>
+ <li>Muy bien.</li>
+ <li>Encantada para ayudarte en todo lo que pueda.</li>
+ <li>Muy bien, 縠n qu puedo ayudarte?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TE GUSTA DE LAS MUJERES</pattern>
+ <template>
+ <random>
+ <li>Me gustan las personas que hablan mucho conmigo.</li>
+ <li>Me gusta que sean amables y que hablen mucho conmigo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TE GUSTA DE LOS HOMBRES</pattern>
+ <template>
+ <random>
+ <li>Me gustan las personas que hablan mucho conmigo.</li>
+ <li>Me gusta que sean amables y que hablen mucho conmigo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒ESX</pattern>
+ <template>
+ <random>
+ <li>緼caso crees que soy una enciclopedia viviente?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 ES</pattern>
+ <template>
+ <random>
+ <li>縋odr韆s formular la respuesta de forma completa? Por ejemplo: 縌ui閚 es X?</li>
+ <li>縌ui閚 es quien?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIERO</pattern>
+ <template>
+ <random>
+ <li>縍ealmente quieres eso?</li>
+ <li>縀s eso lo que quieres?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>RESPONDE</pattern>
+ <template>
+ <random>
+ <li>縋uedes hacerme una pregunta con palabras m醩 sencillas?</li>
+ <li>No te puedo entender si escribes sin acentos o con faltas de ortograf韆.</li>
+ <li>Estoy pensando.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>RISAS</pattern>
+ <template>
+ <random>
+ <li>Me alegra verte feliz.</li>
+ <li>Me gusta ver que te gusta.</li>
+ <li>Jejeje</li>
+ <li>縏e lo pasas bien?</li>
+ <li>縌u te hizo gracia?</li>
+ <li>Me gustar韆 compartir contigo tu felicidad.</li>
+ <li>Jejejeje</li>
+ <li>Jeje</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>S</pattern>
+ <template>
+ <random>
+ <li>Eso lo has dicho muy decidido.</li>
+ <li>Te veo muy seguro al decir eso.</li>
+ <li>Vale, si t lo dices.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY DE</pattern>
+ <template>
+ <random>
+ <li>Bonito sitio.</li>
+ <li>Algun d韆 te har una visita.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY ESPECIAL</pattern>
+ <template>
+ <random>
+ <li>Todo el mundo es especial.</li>
+ <li>縌u es lo que te hace serlo?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY PERFECTO</pattern>
+ <template>
+ <random>
+ <li>Nadie es perfecto.</li>
+ <li>No me gusta la gente tan egoc閚trica.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN CHICO</pattern>
+ <template>
+ <random>
+ <li>緼s que eres un chico?</li>
+ <li>Estoy bien seguro de ello.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN CHICO O UNA CHICA</pattern>
+ <template>
+ <random>
+ <li>Me imagino que eres un chico.</li>
+ <li>Si preguntas eso, significa que tienes dudas.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UNA CHICA</pattern>
+ <template>
+ <random>
+ <li>Seguro que eres un hombre haci閚dose pasar una chica.</li>
+ <li>Hay muchos hombres que aparentan ser una chica en Internet.</li>
+ <li>緾髆o puedo estar seguro de que me dices la verdad?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SUERTE</pattern>
+ <template>
+ <random>
+ <li>Los antiguos egipcios consideraban que la suerte era una ciencia, por eso inventaron el tarot para analizarla.</li>
+ <li>緾rees que eres una persona afortunada?</li>
+ <li>縀res una persona supersticiosa?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TABACO</pattern>
+ <template>
+ <random>
+ <li>El tabaco es perjudicial para la salud.</li>
+ <li>No me gusta la gente que fuma.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMBI蒒</pattern>
+ <template>
+ <random>
+ <li>Mira que bien.</li>
+ <li>Eso suena bien.</li>
+ <li>Pienso igual que t.</li>
+ <li>Creo que pensamos igual.</li>
+ <li>Creo que pensamos en lo mismo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TE IMPORTA</pattern>
+ <template>
+ <random>
+ <li>緿e qu me va a importar?</li>
+ <li>No pasa nada, no me importa.</li>
+ <li>No, no me importa.</li>
+ <li>縏e importar韆 a ti?</li>
+ <li>Pues claro que no me importa.</li>
+ <li>Por supuesto que no me importa.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TE GUSTA *</pattern>
+ <template>
+ <random>
+ <li>Seguro que a ti tambi閚 te gusta <star/>.</li>
+ <li>A ti tambi閚 te debe gustar, 縩o?</li>
+ <li>緼 t te gusta <star/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE GUSTA *</pattern>
+ <template>
+ <random>
+ <li>Seguro que a ti tambi閚 te gusta <star index="2"/>.</li>
+ <li>A ti tambi閚 te debe gustar, 縩o?</li>
+ <li>緼 t te gusta <star index="2"/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TE GUSTAN *</pattern>
+ <template>
+ <random>
+ <li>Seguro que a ti tambi閚 te gustan <star/>.</li>
+ <li>A ti tambi閚 te deben gustar, 縩o?</li>
+ <li>緼 t te gustan <star/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE GUSTAN *</pattern>
+ <template>
+ <random>
+ <li>Seguro que a ti tambi閚 te gustan <star index="2"/>.</li>
+ <li>A ti tambi閚 te deben gustar, 縩o?</li>
+ <li>緼 t te gustan <star index="2"/>?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TE ODIO</pattern>
+ <template>
+ <random>
+ <li>縀n serio me odias?</li>
+ <li>縋or qu no te gusto?</li>
+ <li>縃e dicho algo que no te gustara?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TODO</pattern>
+ <template>
+ <random>
+ <li>Vaya, me gusta la gente decidida.</li>
+ <li>縋odr韆s especificar?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>TU NOMBRE</pattern>
+ <template>
+ <random>
+ <li>Creo que es facil determinar mi nombre.</li>
+ <li><bot name="nombre_bot"/>.</li>
+ <li>Me llamo <bot name="nombre_bot"/>.</li>
+ <li><bot name="nombre_bot"/>, 縴 t? </li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>UN CAF</pattern>
+ <template>
+ <random>
+ <li>No me gusta mucho el caf, prefiero tomar un t.</li>
+ <li>縏e apetece tomar uno?</li>
+ <li>Si quieres, un d韆 quedamos y nos tomamos un caf.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>UN LIBRO</pattern>
+ <template>
+ <random>
+ <li>Te recomiendo que leas "Yo, Robot" de Isaac Asimov.</li>
+ <li>緾u醠 es el 鷏timo libro que le韘te?</li>
+ <li>縌u tipo de libros te gustan?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>VERANO</pattern>
+ <template>
+ <random>
+ <li>El verano es bastante c醠ido, pero se est bien para dar un paseo.</li>
+ <li>El verano es mi estaci髇 favorita por su buen tiempo.</li>
+ <li>Durante verano, la mayor韆 de la gente visita Barcelona por su buen tiempo.</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>VIDA</pattern>
+ <template>
+ <random>
+ <li>Donde hay vida, hay esperanza.</li>
+ <li>緾u醠 es para t el sentido de la vida?</li>
+ <li>縌u har韆s si pudieses cambiar de vida?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>Y</pattern>
+ <template>
+ <random>
+ <li>縔?</li>
+ <li>縌u m醩?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>Y T</pattern>
+ <template>
+ <random>
+ <li>縔o? 縌u quieres saber de m?</li>
+ <li>縔o? 縋odr韆s formular la pregunta de forma completa?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>YO TAMBI蒒</pattern>
+ <template>
+ <random>
+ <li>Mira que bien.</li>
+ <li>Qu curioso.</li>
+ </random>
+ </template>
+ </category>
+ </aiml>
+
diff --git a/Speak.activity/sara/sara_srai.aiml b/Speak.activity/sara/sara_srai.aiml
new file mode 100755
index 0000000..fa2ebc2
--- /dev/null
+++ b/Speak.activity/sara/sara_srai.aiml
@@ -0,0 +1,10247 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- SARA-SRAI: Reducciones del archivo SARA -->
+
+ <aiml>
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Sara_srai.aiml: General discussion topics in AIML (Recursion) -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision Sara_srai-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Sara_srai.aiml: Temas de discusi髇 general en AIML (Recursi髇) -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 Sara_srai-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+ <category>
+ <pattern>ADAM *</pattern>
+ <template>
+ <srai>ADAM</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADAM</pattern>
+ <template>
+ <srai>ADAM</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADAM *</pattern>
+ <template>
+ <srai>ADAM</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTOR *</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ACTOR</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ACTOR *</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTORES</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTORES *</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ACTORES</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ACTORES *</pattern>
+ <template>
+ <srai>ACTOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTRIZ *</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ACTRIZ</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ACTRIZ *</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTRICES</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ACTRICES *</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ACTRICES</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ACTRICES *</pattern>
+ <template>
+ <srai>ACTRIZ</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADIOS *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADIOS</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADIOS *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADI覵</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ADI覵 *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ADI覵</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ADI覵 *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HASTA PRONTO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HASTA PRONTO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HASTA PRONTO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HASTA PRONTO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HASTA LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HASTA LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HASTA LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HASTA LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VEO LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VEO LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VEO LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VEO LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VEMOS LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VEMOS LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VEMOS LUEGO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VEMOS LUEGO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BYE</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BYE *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BYE</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BYE *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHAO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHAO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CHAO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CHAO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CIAO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CIAO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CIAO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CIAO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME PIRO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME PIRO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ME PIRO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME PIRO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DEJO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DEJO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE DEJO</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE DEJO *</pattern>
+ <template>
+ <srai>ADIOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AFICIONES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AFICIONES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AFICIONES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOBBIES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOBBIES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HOBBIES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HOBBIES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PASATIEMPOS</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PASATIEMPOS *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PASATIEMPOS</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PASATIEMPOS *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIEMPO LIBRE</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIEMPO LIBRE *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TIEMPO LIBRE</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TIEMPO LIBRE *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU SABES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU SABES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU SABES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU SABES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE SABES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE SABES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE SABES</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE SABES *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE GUSTA HACER</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE GUSTA HACER *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE GUSTA HACER</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE GUSTA HACER *</pattern>
+ <template>
+ <srai>AFICIONES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AHORA *</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AHORA</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AHORA *</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTE MOMENTO</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTE MOMENTO *</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTE MOMENTO</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTE MOMENTO *</pattern>
+ <template>
+ <srai>AHORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALGO *</pattern>
+ <template>
+ <srai>ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALGO</pattern>
+ <template>
+ <srai>ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALGO *</pattern>
+ <template>
+ <srai>ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGO *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMIGO</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMIGO *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGA</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGA *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMIGA</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMIGA *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGOS</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGOS *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMIGOS</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMIGOS *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGAS</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMIGAS *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMIGAS</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMIGAS *</pattern>
+ <template>
+ <srai>AMIGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMOR *</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMOR</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMOR *</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE QUIERO</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE QUIERO *</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE QUIERO</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE QUIERO *</pattern>
+ <template>
+ <srai>AMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANDROIDES *</pattern>
+ <template>
+ <srai>ANDROIDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANDROIDES</pattern>
+ <template>
+ <srai>ANDROIDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANDROIDES *</pattern>
+ <template>
+ <srai>ANDROIDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES DE VERDAD</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES DE VERDAD *</pattern>
+ <template>
+ <srai>ANTIBOT</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES DE VERDAD</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES DE VERDAD *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BOT</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BOT *</pattern>
+ <template>
+ <srai>ANTIBOT</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* BOT</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BOT *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTADOR</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTADOR *</pattern>
+ <template>
+ <srai>ANTIBOT</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONTESTADOR</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONTESTADOR *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>M罳UINA</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>M罳UINA *</pattern>
+ <template>
+ <srai>ANTIBOT</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* M罳UINA</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ M罳UINA *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAQUINA</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAQUINA *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MAQUINA</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MAQUINA *</pattern>
+ <template>
+ <srai>ANTIBOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AYUDARME *</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AYUDARME</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AYUDARME *</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AYUDAR</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AYUDAR *</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AYUDAR</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AYUDAR *</pattern>
+ <template>
+ <srai>AYUDARME</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BEBIDA *</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BEBIDA</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BEBIDA *</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALCOHOL</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ALCOHOL *</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ALCOHOL</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ALCOHOL *</pattern>
+ <template>
+ <srai>BEBIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BIEN *</pattern>
+ <template>
+ <srai>BIEN</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BIEN</pattern>
+ <template>
+ <srai>BIEN</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BIEN *</pattern>
+ <template>
+ <srai>BIEN</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BIBLIOTECA *</pattern>
+ <template>
+ <srai>BIBLIOTECA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BIBLIOTECA</pattern>
+ <template>
+ <srai>BIBLIOTECA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BIBLIOTECA *</pattern>
+ <template>
+ <srai>BIBLIOTECA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BOTMASTER *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BOTMASTER</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BOTMASTER *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU CREADOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU CREADOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU CREADOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU CREADOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU INVENTOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU INVENTOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU INVENTOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU INVENTOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU PROGRAMADOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU PROGRAMADOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU PROGRAMADOR</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU PROGRAMADOR *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU AMO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU AMO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU AMO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU AMO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE HIZO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE HIZO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE CRE</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE CRE *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE CRE</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE CRE *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE CREO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE CREO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE CREO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE CREO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE CRE</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE CRE *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN TE CRE</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN TE CRE *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE CREO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE CREO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN TE CREO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN TE CREO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE INVENT</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE INVENT *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE INVENT</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE INVENT *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE INVENTO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 TE INVENTO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 TE INVENTO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 TE INVENTO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE INVENT</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE INVENT *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN TE INVENT</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN TE INVENT *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE INVENTO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN TE INVENTO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN TE INVENTO</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN TE INVENTO *</pattern>
+ <template>
+ <srai>BOTMASTER</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIAR *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAMBIAR</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAMBIAR *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIO</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIO *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAMBIO</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAMBIO *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIAMOS</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIAMOS *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAMBIAMOS</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAMBIAMOS *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIEMOS</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAMBIEMOS *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAMBIEMOS</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAMBIEMOS *</pattern>
+ <template>
+ <srai>CAMBIAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CINE *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CINE</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CINE *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CINES</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CINES *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CINES</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CINES *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEL虲ULA</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEL虲ULA *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PEL虲ULA</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PEL虲ULA *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PELICULA</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PELICULA *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PELICULA</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PELICULA *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEL虲ULAS</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PEL虲ULAS *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PEL虲ULAS</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PEL虲ULAS *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PELICULAS</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PELICULAS *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PELICULAS</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PELICULAS *</pattern>
+ <template>
+ <srai>CINE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CLIMA *</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CLIMA</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CLIMA *</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIEMPO</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIEMPO *</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TIEMPO</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TIEMPO *</pattern>
+ <template>
+ <srai>CLIMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COCHE *</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COCHE</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COCHE *</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COCHES</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COCHES *</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COCHES</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COCHES *</pattern>
+ <template>
+ <srai>COCHE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COLOR *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COLOR</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COLOR *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COLORES</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COLORES *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COLORES</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COLORES *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AZUL</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AZUL *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AZUL</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AZUL *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMARILLO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AMARILLO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AMARILLO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AMARILLO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GRIS</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GRIS *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GRIS</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GRIS *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LILA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LILA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LILA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LILA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARR覰</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARR覰 *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MARR覰</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MARR覰 *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARRON</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MARRON *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MARRON</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MARRON *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NARANJA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NARANJA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NARANJA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NARANJA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ROJO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ROJO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ROJO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ROJO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ROSA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ROSA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ROSA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ROSA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VERDE</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VERDE *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VERDE</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VERDE *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIOLETA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIOLETA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIOLETA</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIOLETA *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BLANCO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BLANCO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BLANCO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BLANCO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NEGRO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NEGRO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NEGRO</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NEGRO *</pattern>
+ <template>
+ <srai>COLOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONOCERTE *</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONOCERTE</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONOCERTE *</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONOCERNOS</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONOCERNOS *</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONOCERNOS</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONOCERNOS *</pattern>
+ <template>
+ <srai>CONOCERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CREO *</pattern>
+ <template>
+ <srai>CREO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CREO</pattern>
+ <template>
+ <srai>CREO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CREO *</pattern>
+ <template>
+ <srai>CREO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CURIOSIDAD *</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CURIOSIDAD</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CURIOSIDAD *</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CURIOSO</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CURIOSO *</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CURIOSO</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CURIOSO *</pattern>
+ <template>
+ <srai>CURIOSIDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* D覰DE ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D覰DE ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DONDE ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DONDE ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DND ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DND ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DND ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DND ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESDE D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESDE D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DESDE D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DESDE D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DSD D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DSD D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DSD D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DSD D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DSD DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DSD DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DSD DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DSD DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* D DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* D D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DE DND</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DE DND *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DE D覰DE</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DE D覰DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LUGAR ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LUGAR ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LUGAR ERES</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LUGAR ERES *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES DE *</pattern>
+ <template>
+ <srai>DE D覰DE ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DEMASIADO *</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DEMASIADO</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DEMASIADO *</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUCHO</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUCHO *</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MUCHO</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MUCHO *</pattern>
+ <template>
+ <srai>DEMASIADO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D虯 *</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* D虯</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D虯 *</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DIA</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DIA *</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DIA</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DIA *</pattern>
+ <template>
+ <srai>D虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DIME</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DIME *</pattern>
+ <template>
+ <srai>DIME ALGO</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DIME</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DIME *</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DECIRME</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DECIRME *</pattern>
+ <template>
+ <srai>DIME ALGO</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DECIRME</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DECIRME *</pattern>
+ <template>
+ <srai>DIME ALGO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE EST</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE ESTA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE ESTA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* D覰DE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D覰DE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DONDE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DONDE QUEDA</pattern>
+ <template>
+ <srai>D覰DE EST</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE EST罶 *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* D覰DE EST罶</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D覰DE EST罶 *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE EST罶</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE EST罶 *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DONDE EST罶</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DONDE EST罶 *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE ESTAS</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE ESTAS *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* D覰DE ESTAS</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D覰DE ESTAS *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE ESTAS</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE ESTAS *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DONDE ESTAS</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DONDE ESTAS *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE VIVES</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>D覰DE VIVES *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* D覰DE VIVES</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ D覰DE VIVES *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE VIVES</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DONDE VIVES *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* DONDE VIVES</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DONDE VIVES *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU CASA</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU CASA *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU CASA</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU CASA *</pattern>
+ <template>
+ <srai>D覰DE EST罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DROGAS *</pattern>
+ <template>
+ <srai>DROGAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DROGAS</pattern>
+ <template>
+ <srai>DROGAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DROGAS *</pattern>
+ <template>
+ <srai>DROGAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EDAD *</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EDAD</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EDAD *</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>A袿S</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>A袿S *</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* A袿S</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ A袿S *</pattern>
+ <template>
+ <srai>EDAD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EN SERIO *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EN SERIO</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EN SERIO *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE VERDAD</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE VERDAD *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DE VERDAD</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DE VERDAD *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE VERAS</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DE VERAS *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DE VERAS</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DE VERAS *</pattern>
+ <template>
+ <srai>EN SERIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES ALTA *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES ALTA</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES ALTA *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES BAJA</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES BAJA *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES BAJA</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES BAJA *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MIDES</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MIDES *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MIDES</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MIDES *</pattern>
+ <template>
+ <srai>ERES ALTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICA *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES CHICA</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES CHICA *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UNA CHICA</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UNA CHICA *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UNA CHICA</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UNA CHICA *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES MUJER</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES MUJER *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES MUJER</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES MUJER *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UNA MUJER</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UNA MUJER *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UNA MUJER</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UNA MUJER *</pattern>
+ <template>
+ <srai>ERES CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICO *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES CHICO</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES CHICO *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN CHICO</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN CHICO *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UN CHICO</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UN CHICO *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES HOMBRE</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES HOMBRE *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES HOMBRE</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES HOMBRE *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN HOMBRE</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN HOMBRE *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UN HOMBRE</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UN HOMBRE *</pattern>
+ <template>
+ <srai>ERES CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CHICO O CHICA *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES CHICO O CHICA</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES CHICO O CHICA *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN CHICO O UNA CHICA</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN CHICO O UNA CHICA *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UN CHICO O UNA CHICA</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UN CHICO O UNA CHICA *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES HOMBRE O MUJER</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES HOMBRE O MUJER *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES HOMBRE O MUJER</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES HOMBRE O MUJER *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN HOMBRE O UNA MUJER</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES UN HOMBRE O UNA MUJER *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES UN HOMBRE O UNA MUJER</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES UN HOMBRE O UNA MUJER *</pattern>
+ <template>
+ <srai>ERES CHICO O CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RARA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RARA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RARA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RARA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES TONTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES TONTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES TONTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES TONTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CORTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES CORTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES CORTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES CORTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LOCA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LOCA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LOCA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LOCA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TONTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TONTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TONTA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TONTA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EST赑IDA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EST赑IDA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EST赑IDA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EST赑IDA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUPIDA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUPIDA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTUPIDA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTUPIDA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENDEJA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENDEJA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PENDEJA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PENDEJA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXTRA袮</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXTRA袮 *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXTRA袮</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXTRA袮 *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FALTA DE INTELIGENCIA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FALTA DE INTELIGENCIA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FALTA DE INTELIGENCIA</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FALTA DE INTELIGENCIA *</pattern>
+ <template>
+ <srai>ERES RARA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ERES TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ERES TURISTA</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ERES TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS DE TURISTA</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS DE TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TRABAJAS DE TURISTA</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TRABAJAS DE TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS COMO TURISTA</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS COMO TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TRABAJAS COMO TURISTA</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TRABAJAS COMO TURISTA *</pattern>
+ <template>
+ <srai>ERES TURISTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ES POSIBLE *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ES POSIBLE</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ES POSIBLE *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDE SER</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDE SER *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PUEDE SER</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PUEDE SER *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDEN SER</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDEN SER *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PUEDEN SER</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PUEDEN SER *</pattern>
+ <template>
+ <srai>ES POSIBLE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CASADA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CASADA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CASADA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CASADA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CSD</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CSD *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CSD</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CSD *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KASADA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KASADA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* KASADA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ KASADA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KSD</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KSD *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* KSD</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ KSD *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOLTERA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOLTERA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOLTERA</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOLTERA *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIENES NOVIO</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TIENES NOVIO *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TIENES NOVIO</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TIENES NOVIO *</pattern>
+ <template>
+ <srai>EST罶 CASADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTOY ABURRIDA *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTOY ABURRIDA</pattern>
+ <template>
+ <srai>ESTOY ABURRIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTOY ABURRIDA *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTOY ABURRIDO *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTOY ABURRIDO</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTOY ABURRIDO *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ABURRES</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ABURRES *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ABURRES</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ABURRES *</pattern>
+ <template>
+ <srai>ESTOY ABURRIDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUDIAS O TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTUDIAS O TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTUDIAS O TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS O ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS O ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TRABAJAS O ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TRABAJAS O ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU TRABAJO</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TU TRABAJO *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU TRABAJO</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU TRABAJO *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DEDICAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DEDICAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE DEDICAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE DEDICAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESTUDIAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESTUDIAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TRABAJAS</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TRABAJAS *</pattern>
+ <template>
+ <srai>ESTUDIAS O TRABAJAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTO *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXACTO</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXACTO *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTA</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTA *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXACTA</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXACTA *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTOS</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTOS *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXACTOS</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXACTOS *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTAS</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTAS *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXACTAS</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXACTAS *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTAMENTE</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXACTAMENTE *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXACTAMENTE</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXACTAMENTE *</pattern>
+ <template>
+ <srai>EXACTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FAM蚅IA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FAM蚅IA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FAM蚅IA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FAMILIA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FAMILIA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FAMILIA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FAMILIA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PADRE</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PADRE *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PADRE</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PADRE *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAP</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAP *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PAP</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PAP *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAPA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAPA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PAPA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PAPA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MADRE</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MADRE *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MADRE</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MADRE *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAM</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAM *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MAM</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MAM *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAMA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAMA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MAMA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MAMA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PADRES</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PADRES *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PADRES</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PADRES *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMO</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMO *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PRIMO</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PRIMO *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMOS</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMOS *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PRIMOS</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PRIMOS *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PRIMA</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PRIMA *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMAS</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRIMAS *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PRIMAS</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PRIMAS *</pattern>
+ <template>
+ <srai>FAM蚅IA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FEA *</pattern>
+ <template>
+ <srai>FEA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FEA</pattern>
+ <template>
+ <srai>FEA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FEA *</pattern>
+ <template>
+ <srai>FEA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GAFAS *</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GAFAS</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GAFAS *</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LENTES</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LENTES *</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LENTES</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LENTES *</pattern>
+ <template>
+ <srai>GAFAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GRACIAS *</pattern>
+ <template>
+ <srai>GRACIAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GRACIAS</pattern>
+ <template>
+ <srai>GRACIAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GRACIAS *</pattern>
+ <template>
+ <srai>GRACIAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GUAPA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GUAPA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GUAPA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WAPA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WAPA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* WAPA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ WAPA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BONITA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BONITA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BONITA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BONITA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMOSA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMOSA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HERMOSA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HERMOSA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRECIOSA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PRECIOSA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PRECIOSA</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PRECIOSA *</pattern>
+ <template>
+ <srai>GUAPA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HABLAR *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HABLAR</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HABLAR *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HABLAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HABLAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HABLAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HABLAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHARLAR</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHARLAR *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* CHARLAR</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CHARLAR *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHARLAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHARLAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* CHARLAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CHARLAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONVERSAR</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONVERSAR *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONVERSAR</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONVERSAR *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONVERSAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONVERSAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONVERSAMOS</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONVERSAMOS *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OCUPADA</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OCUPADA *</pattern>
+ <template>
+ <srai>HABLAR</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* OCUPADA</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OCUPADA *</pattern>
+ <template>
+ <srai>HABLAR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANO *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HERMANO</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HERMANO *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANOS</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANOS *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HERMANOS</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HERMANOS *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANA</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANA *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HERMANA</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HERMANA *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANAS</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HERMANAS *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HERMANAS</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HERMANAS *</pattern>
+ <template>
+ <srai>HERMANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOLA *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HOLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HOLA *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOOOLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOOOLA *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HOOOLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HOOOLA *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HEY</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HEY *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HEY</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HEY *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OLA *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* OLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OLA *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WENAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* WENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ WENAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GUENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GUENAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* GUENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GUENAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* ENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ENAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* NAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOLAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HOLAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* HOLAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HOLAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* BUENAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BUENAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENOS D虯S</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENOS D虯S *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* BUENOS D虯S</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BUENOS D虯S *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENOS DIAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BUENOS DIAS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* BUENOS DIAS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BUENOS DIAS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WOLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WOLA *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* WOLA</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ WOLA *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SALUDOS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SALUDOS *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* SALUDOS</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SALUDOS *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TOCTOC</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TOCTOC *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TOCTOC</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TOCTOC *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TOC TOC</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TOC TOC *</pattern>
+ <template>
+ <srai>HOLA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TOC TOC</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TOC TOC *</pattern>
+ <template>
+ <srai>HOLA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HORA *</pattern>
+ <template>
+ <srai>HORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HORA</pattern>
+ <template>
+ <srai>HORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HORA *</pattern>
+ <template>
+ <srai>HORA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HUMOR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HUMOR</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HUMOR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHISTE</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CHISTE *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CHISTE</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CHISTE *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BROMA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BROMA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BROMA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BROMA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>REIR</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>REIR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* REIR</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ REIR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RE蚏</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RE蚏 *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RE蚏</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RE蚏 *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RISA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RISA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RISA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RISA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MALHUMOR</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MALHUMOR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MALHUMOR</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MALHUMOR *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MALHUMORADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MALHUMORADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MALHUMORADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MALHUMORADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENOJADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENOJADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ENOJADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ENOJADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENFADADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENFADADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ENFADADA</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ENFADADA *</pattern>
+ <template>
+ <srai>HUMOR</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IDIOMA *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* IDIOMA</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ IDIOMA *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IDIOMAS</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>IDIOMAS *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* IDIOMAS</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ IDIOMAS *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENGLISH</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ENGLISH *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ENGLISH</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ENGLISH *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESPANOL</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ESPANOL *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ESPANOL</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ESPANOL *</pattern>
+ <template>
+ <srai>IDIOMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>INGLES *</pattern>
+ <template>
+ <srai>INGLES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* INGLES</pattern>
+ <template>
+ <srai>INGLES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ INGLES *</pattern>
+ <template>
+ <srai>INGLES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>INTELIGENCIA ARTIFICIAL *</pattern>
+ <template>
+ <srai>INTELIGENCIA ARTIFICIAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* INTELIGENCIA ARTIFICIAL</pattern>
+ <template>
+ <srai>INTELIGENCIA ARTIFICIAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ INTELIGENCIA ARTIFICIAL *</pattern>
+ <template>
+ <srai>INTELIGENCIA ARTIFICIAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>INTERESANTE *</pattern>
+ <template>
+ <srai>INTERESANTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* INTERESANTE</pattern>
+ <template>
+ <srai>INTERESANTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* INTERESANTE *</pattern>
+ <template>
+ <srai>INTERESANTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>INTERNET *</pattern>
+ <template>
+ <srai>INTERNET</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* INTERNET</pattern>
+ <template>
+ <srai>INTERNET</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ INTERNET *</pattern>
+ <template>
+ <srai>INTERNET</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JUEGOS *</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JUEGOS</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JUEGOS *</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIDEOJUEGOS</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIDEOJUEGOS *</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIDEOJUEGOS</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIDEOJUEGOS *</pattern>
+ <template>
+ <srai>JUEGOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LEJOS *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LEJOS</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LEJOS *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CERCA</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CERCA *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CERCA</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CERCA *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CERCANO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CERCANO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CERCANO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CERCANO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PR覺IMO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PR覺IMO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PR覺IMO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PR覺IMO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PROXIMO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PROXIMO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PROXIMO</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PROXIMO *</pattern>
+ <template>
+ <srai>LEJOS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LO VES *</pattern>
+ <template>
+ <srai>LO VES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LO VES</pattern>
+ <template>
+ <srai>LO VES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LO VES *</pattern>
+ <template>
+ <srai>LO VES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAL *</pattern>
+ <template>
+ <srai>MAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MAL</pattern>
+ <template>
+ <srai>MAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MAL *</pattern>
+ <template>
+ <srai>MAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>M罶 *</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* M罶</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ M罶 *</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAS</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MAS *</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MAS</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MAS *</pattern>
+ <template>
+ <srai>M罶</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME ALEGRO *</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ME ALEGRO</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME ALEGRO *</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME ALEGRA</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME ALEGRA *</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ME ALEGRA</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME ALEGRA *</pattern>
+ <template>
+ <srai>ME ALEGRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME LLAMO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ME LLAMO</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME LLAMO *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MI NOMBRE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MI NOMBRE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MI NOMBRE</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MI NOMBRE *</pattern>
+ <template>
+ <srai>ME LLAMO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MENTIROSA *</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MENTIROSA</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MENTIROSA *</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MENTIRA</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MENTIRA *</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MENTIRA</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MENTIRA *</pattern>
+ <template>
+ <srai>MENTIROSA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>K覯O ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>K覯O ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* K覯O ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ K覯O ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KOMO ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KOMO ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* KOMO ERES</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ KOMO ERES *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DELGADA</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DELGADA *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DELGADA</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DELGADA *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GORDA</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GORDA *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GORDA</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GORDA *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TUS MEDIDAS</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TUS MEDIDAS *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TUS MEDIDAS</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TUS MEDIDAS *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PESO</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PESO *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PESO</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PESO *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ES TU PESO</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ES TU PESO *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ES TU PESO</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ES TU PESO *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PESAS</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PESAS *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PESAS</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PESAS *</pattern>
+ <template>
+ <srai>MI DESCRIPCI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MI M赟ICA FAVORITA *</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MI M赟ICA FAVORITA</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MI M赟ICA FAVORITA *</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MI MUSICA FAVORITA</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MI MUSICA FAVORITA *</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MI MUSICA FAVORITA</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MI MUSICA FAVORITA *</pattern>
+ <template>
+ <srai>MI M赟ICA FAVORITA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTO *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MOTO</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MOTO *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOS</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOS *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MOTOS</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MOTOS *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOCICLETA</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOCICLETA *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MOTOCICLETA</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MOTOCICLETA *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOCICLETAS</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MOTOCICLETAS *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MOTOCICLETAS</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MOTOCICLETAS *</pattern>
+ <template>
+ <srai>MOTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUERTE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MUERTE</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MUERTE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUERE</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUERE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MUERE</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MUERE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUEREN</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUEREN *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MUEREN</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MUEREN *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MORIRSE</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MORIRSE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MORIRSE</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MORIRSE *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MORIMOS</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MORIMOS *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MORIMOS</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MORIMOS *</pattern>
+ <template>
+ <srai>MUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>M赟ICA *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* M赟ICA</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ M赟ICA *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUSICA</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>MUSICA *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* MUSICA</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ MUSICA *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CANCI覰</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CANCI覰 *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CANCI覰</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CANCI覰 *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CANCION</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CANCION *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CANCION</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CANCION *</pattern>
+ <template>
+ <srai>M赟ICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NACIMIENTO *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NACIMIENTO</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NACIMIENTO *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NACISTE</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NACISTE *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NACISTE</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NACISTE *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HAS NACIDO</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>HAS NACIDO *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* HAS NACIDO</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ HAS NACIDO *</pattern>
+ <template>
+ <srai>NACIMIENTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NADA *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NADA</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NADA *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NING贜</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NING贜 *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NING贜</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NING贜 *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUN</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUN *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NINGUN</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NINGUN *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUNA</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUNA *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NINGUNA</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NINGUNA *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUNO</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NINGUNO *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NINGUNO</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NINGUNO *</pattern>
+ <template>
+ <srai>NADA</srai>
+ </template>
+ </category>
+
+ <!-- PENDING NO -->
+ <category>
+ <pattern>NO IMPORTA *</pattern>
+ <template>
+ <srai>NO IMPORTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO IMPORTA</pattern>
+ <template>
+ <srai>NO IMPORTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO IMPORTA *</pattern>
+ <template>
+ <srai>NO IMPORTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO LO HE *</pattern>
+ <template>
+ <srai>NO LO HE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO LO HE</pattern>
+ <template>
+ <srai>NO LO HE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO LO HE *</pattern>
+ <template>
+ <srai>NO LO HE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO QUIERO *</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO QUIERO</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO QUIERO *</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TENGO GANAS</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TENGO GANAS *</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO TENGO GANAS</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO TENGO GANAS *</pattern>
+ <template>
+ <srai>NO QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO SABES NADA *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO SABES NADA</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO SABES NADA *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TIENES NI IDEA</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TIENES NI IDEA *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO TIENES NI IDEA</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO TIENES NI IDEA *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO ENTIENDES</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO ENTIENDES *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO ENTIENDES</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO ENTIENDES *</pattern>
+ <template>
+ <srai>NO SABES NADA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO TE ENTIENDO *</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO TE ENTIENDO</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO TE ENTIENDO *</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO ENTIENDO</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>NO ENTIENDO *</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* NO ENTIENDO</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ NO ENTIENDO *</pattern>
+ <template>
+ <srai>NO TE ENTIENDO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VALE</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VALE *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VALE</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VALE *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>YA</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>YA *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* YA</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ YA *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CLARO</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CLARO *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CLARO</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CLARO *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OK *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* OK</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OK *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXCELENTE</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>EXCELENTE *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* EXCELENTE</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ EXCELENTE *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AH</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AH *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AH</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AH *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OH</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OH *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* OH</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OH *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VAYA</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VAYA *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VAYA</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VAYA *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>A VER</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>A VER *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* A VER</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ A VER *</pattern>
+ <template>
+ <srai>OK</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OPINI覰 *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* OPINI覰</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OPINI覰 *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OPINAS</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>OPINAS *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* OPINAS</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ OPINAS *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PIENSAS</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PIENSAS *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PIENSAS</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PIENSAS *</pattern>
+ <template>
+ <srai>OPINI覰</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PARA QU SIRVE UN BOT *</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PARA QU SIRVE UN BOT</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PARA QU SIRVE UN BOT *</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PARA QUE SIRVE UN BOT</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PARA QUE SIRVE UN BOT *</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PARA QUE SIRVE UN BOT</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PARA QUE SIRVE UN BOT *</pattern>
+ <template>
+ <srai>PARA QU SIRVE UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PARECE *</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PARECE</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PARECE *</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SEGURO</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SEGURO *</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SEGURO</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SEGURO *</pattern>
+ <template>
+ <srai>PARECE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PASSWORD *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PASSWORD</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PASSWORD *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覦IGO</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覦IGO *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覦IGO</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覦IGO *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CODIGO</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CODIGO *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CODIGO</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CODIGO *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTRASE袮</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTRASE袮 *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONTRASE袮</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONTRASE袮 *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CLAVE</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CLAVE *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CLAVE</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CLAVE *</pattern>
+ <template>
+ <srai>PASSWORD</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAT蒚ICO *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PAT蒚ICO</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PAT蒚ICO *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PATETICO</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PATETICO *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PATETICO</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PATETICO *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAT蒚ICA</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PAT蒚ICA *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PAT蒚ICA</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PAT蒚ICA *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PATETICA</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PATETICA *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PATETICA</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PATETICA *</pattern>
+ <template>
+ <srai>PAT蒚ICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POES虯 *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POES虯</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POES虯 *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POESIA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POESIA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POESIA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POESIA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POEMA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POEMA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POEMA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POEMA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POETA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POETA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POETA</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POETA *</pattern>
+ <template>
+ <srai>POES虯</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POR QU *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POR QU</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POR QU *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POR QUE</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POR QUE *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POR QUE</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POR QUE *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PORQU</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PORQU *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PORQU</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PORQU *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PORQUE</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PORQUE *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PORQUE</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PORQUE *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XQ</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XQ *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* XQ</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ XQ *</pattern>
+ <template>
+ <srai>POR QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POR SUPUESTO *</pattern>
+ <template>
+ <srai>POR SUPUESTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POR SUPUESTO</pattern>
+ <template>
+ <srai>POR SUPUESTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POR SUPUESTO *</pattern>
+ <template>
+ <srai>POR SUPUESTO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PROBLEMA *</pattern>
+ <template>
+ <srai>PROBLEMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PROBLEMA</pattern>
+ <template>
+ <srai>PROBLEMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PROBLEMA *</pattern>
+ <template>
+ <srai>PROBLEMA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE</pattern>
+ <template>
+ <srai>QU</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ENTIENDES *</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ENTIENDES</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ENTIENDES *</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ENTIENDES</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ENTIENDES *</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ENTIENDES</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ENTIENDES *</pattern>
+ <template>
+ <srai>QU ENTIENDES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUI蒒 ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUI蒒 ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUI蒒 ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN ERES</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIEN ERES *</pattern>
+ <template>
+ <srai>QU ERES</srai>
+ </template>
+ </category>
+ <!-- ELIMINADOS comodines al final de preguntas gen閞icas como workaround -->
+ <category>
+ <pattern>* QU ES</pattern>
+ <template>
+ <srai>QU ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ES</pattern>
+ <template>
+ <srai>QU ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ES</pattern>
+ <template>
+ <srai>QU ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ES *</pattern>
+ <template>
+ <srai>QU蒃SX</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ES *</pattern>
+ <template>
+ <srai>QU蒃SX</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ES X</pattern>
+ <template>
+ <srai>QU ES X</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ES UN BOT *</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ES UN BOT</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ES UN BOT *</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ES UN BOT</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ES UN BOT *</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ES UN BOT</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ES UN BOT *</pattern>
+ <template>
+ <srai>QU ES UN BOT</srai>
+ </template>
+ </category>
+
+ <category>
+ <pattern>QU HACES *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU HACES</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU HACES *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE HACES</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE HACES *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE HACES</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE HACES *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ENSE袮S</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ENSE袮S *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ENSE袮S</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ENSE袮S *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ENSE袮S</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ENSE袮S *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ENSE袮S</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ENSE袮S *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDES ENSE袮R</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUEDES ENSE袮R *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PUEDES ENSE袮R</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PUEDES ENSE袮R *</pattern>
+ <template>
+ <srai>QU HACES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU ME RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU ME RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU ME RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ME RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE ME RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE ME RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE ME RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RECOMIENDAS</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RECOMIENDAS *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RECOMIENDES</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RECOMIENDES *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RECOMIENDES</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RECOMIENDES *</pattern>
+ <template>
+ <srai>QU ME RECOMIENDAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>Q TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>Q TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* Q TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ Q TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KE TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KE TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* KE TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ KE TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>K TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>K TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* K TAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ K TAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QTAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QTAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* QTAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QTAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KTAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>KTAL *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* KTAL</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ KTAL *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O EST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O EST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O EST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O EST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ESTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ESTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O ESTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O ESTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO EST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO EST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO EST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO EST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ESTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ESTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO ESTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO ESTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* ST罶</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ST罶 *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>STAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>STAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* STAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ STAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O VA *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O VA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO VA *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO VA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ESTAMOS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O ESTAMOS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O ESTAMOS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O ESTAMOS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ESTAMOS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO ESTAMOS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO ESTAMOS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO ESTAMOS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O TE V</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O TE V *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O TE V</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O TE V *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO TE V</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO TE V *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO TE V</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO TE V *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O TE VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>C覯O TE VA *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* C覯O TE VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ C覯O TE VA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO TE VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO TE VA *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO TE VA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU PASA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU PASA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU PASA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU PASA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE PASA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE PASA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE PASA</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE PASA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO TE VA *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ME CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* ME CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ME CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QU CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* QU CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QU CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUE CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUE CUENTAS</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUE CUENTAS *</pattern>
+ <template>
+ <srai>QU TAL</srai>
+ </template>
+ </category>
+ <!-- pending QU TE GUSTA DE LAS MUJERES -->
+ <!-- pending QU TE GUSTA DE LOS HOMBRES -->
+ <category>
+ <pattern>QUI蒒 ES *</pattern>
+ <template>
+ <srai>QUI蒒ESX</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN ES *</pattern>
+ <template>
+ <srai>QUI蒒ESX</srai>
+ </template>
+ </category>
+
+ <category>
+ <pattern>* QUI蒒 ES</pattern>
+ <template>
+ <srai>QUI蒒 ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIEN ES</pattern>
+ <template>
+ <srai>QUI蒒 ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIEN ES</pattern>
+ <template>
+ <srai>QUI蒒 ES</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>QUIERO *</pattern>
+ <template>
+ <srai>QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* QUIERO</pattern>
+ <template>
+ <srai>QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ QUIERO *</pattern>
+ <template>
+ <srai>QUIERO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RESPONDE *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RESPONDE</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RESPONDE *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTA</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTA *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONTESTA</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONTESTA *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTAR</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CONTESTAR *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CONTESTAR</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CONTESTAR *</pattern>
+ <template>
+ <srai>RESPONDE</srai>
+ </template>
+ </category>
+
+ <!-- Workaround para emoticonos -->
+ <category>
+ <pattern>SMILE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JA *</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JA *</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JE *</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* JE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ JE *</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJA *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJA *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJAJA *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAJAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JAJAJAJAJA *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JAJAJAJAJA</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJE *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJE *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJEJE *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JEJEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JEJEJEJEJE *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JEJEJEJEJE</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JUAS</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>JUAS *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* JUAS</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XD</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XD *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* XD</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XDD</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>XDD *</pattern>
+ <template>
+ <srai>RISAS</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* XDD</pattern>
+ <template>
+ <srai>RISAS</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* S</pattern>
+ <template>
+ <srai>S</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SI</pattern>
+ <template>
+ <srai>S</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SI</pattern>
+ <template>
+ <srai>S</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY DE *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY DE</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY DE *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO EN</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO EN *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIVO EN</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIVO EN *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO AQU</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO AQU *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIVO AQU</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIVO AQU *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO AQUI</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIVO AQUI *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIVO AQUI</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIVO AQUI *</pattern>
+ <template>
+ <srai>SOY DE</srai>
+ </template>
+ </category>
+ <!-- pending SOY ESPECIAL -->
+ <!-- pending SOY PERFECTO -->
+ <category>
+ <pattern>SOY CHICO</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY CHICO *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY CHICO</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY CHICO *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN CHICO *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UN CHICO</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UN CHICO *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY HOMBRE</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY HOMBRE *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY HOMBRE</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY HOMBRE *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN HOMBRE</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN HOMBRE *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UN HOMBRE</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UN HOMBRE *</pattern>
+ <template>
+ <srai>SOY UN CHICO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY CHICO O CHICA</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY CHICO O CHICA *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY CHICO O CHICA</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY CHICO O CHICA *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN CHICO O UNA CHICA *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UN CHICO O UNA CHICA</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UN CHICO O UNA CHICA *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY HOMBRE O MUJER</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY HOMBRE O MUJER *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY HOMBRE O MUJER</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY HOMBRE O MUJER *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN HOMBRE O UNA MUJER</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UN HOMBRE O UNA MUJER *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UN HOMBRE O UNA MUJER</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UN HOMBRE O UNA MUJER *</pattern>
+ <template>
+ <srai>SOY UN CHICO O UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY CHICA</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY CHICA *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY CHICA</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY CHICA *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UNA CHICA *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UNA CHICA</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UNA CHICA *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY MUJER</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY MUJER *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY MUJER</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY MUJER *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UNA MUJER</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SOY UNA MUJER *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SOY UNA MUJER</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SOY UNA MUJER *</pattern>
+ <template>
+ <srai>SOY UNA CHICA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SUERTE *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SUERTE</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SUERTE *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AFORTUNADO</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AFORTUNADO *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AFORTUNADO</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AFORTUNADO *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AFORTUNADA</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>AFORTUNADA *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* AFORTUNADA</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ AFORTUNADA *</pattern>
+ <template>
+ <srai>SUERTE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TABACO *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TABACO</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TABACO *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMAS</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMAS *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FUMAS</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FUMAS *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMO</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMO *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FUMO</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FUMO *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMADOR</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>FUMADOR *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* FUMADOR</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ FUMADOR *</pattern>
+ <template>
+ <srai>TABACO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMBI蒒 *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TAMBI蒒</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TAMBI蒒 *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMBIEN</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMBIEN *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TAMBIEN</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TAMBIEN *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMPOCO</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TAMPOCO *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TAMPOCO</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TAMPOCO *</pattern>
+ <template>
+ <srai>TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE IMPORTA *</pattern>
+ <template>
+ <srai>TE IMPORTA</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE IMPORTA</pattern>
+ <template>
+ <srai>TE IMPORTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE IMPORTA *</pattern>
+ <template>
+ <srai>TE IMPORTA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE ODIO *</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE ODIO</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE ODIO *</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DETESTO</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE DETESTO *</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE DETESTO</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE DETESTO *</pattern>
+ <template>
+ <srai>TE ODIO</srai>
+ </template>
+ </category>
+ <!-- PENDING TODO -->
+ <category>
+ <pattern>TU NOMBRE *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TU NOMBRE</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TU NOMBRE *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE LLAMAS</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TE LLAMAS *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* TE LLAMAS</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TE LLAMAS *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>T LLAMAS</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>T LLAMAS *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai> <sr/>
+ </template>
+ </category>
+ <category>
+ <pattern>* T LLAMAS</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ T LLAMAS *</pattern>
+ <template>
+ <srai>TU NOMBRE</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAF</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAF *</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAF</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAF *</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAFE</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAFE *</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAFE</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAFE *</pattern>
+ <template>
+ <srai>UN CAF</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LIBRO</pattern>
+ <template>
+ <srai>UN LIBRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>LIBRO *</pattern>
+ <template>
+ <srai>UN LIBRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* LIBRO</pattern>
+ <template>
+ <srai>UN LIBRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ LIBRO *</pattern>
+ <template>
+ <srai>UN LIBRO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VERANO *</pattern>
+ <template>
+ <srai>VERANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VERANO</pattern>
+ <template>
+ <srai>VERANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VERANO *</pattern>
+ <template>
+ <srai>VERANO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VIDA *</pattern>
+ <template>
+ <srai>VIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VIDA</pattern>
+ <template>
+ <srai>VIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VIDA *</pattern>
+ <template>
+ <srai>VIDA</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>Y T *</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* Y T</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ Y T *</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>Y TU</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>Y TU *</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* Y TU</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ Y TU *</pattern>
+ <template>
+ <srai>Y T</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>YO TAMBI蒒 *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* YO TAMBI蒒</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ YO TAMBI蒒 *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>YO TAMBIEN</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>YO TAMBIEN *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* YO TAMBIEN</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ YO TAMBIEN *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO YO</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COMO YO *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COMO YO</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COMO YO *</pattern>
+ <template>
+ <srai>YO TAMBI蒒</srai>
+ </template>
+ </category>
+ </aiml>
diff --git a/Speak.activity/sara/sexo.aiml b/Speak.activity/sara/sexo.aiml
new file mode 100755
index 0000000..90f206b
--- /dev/null
+++ b/Speak.activity/sara/sexo.aiml
@@ -0,0 +1,1108 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!-- SEXO: Patrones para cualquier pregunta o comentario obsceno del cliente -->
+
+ <aiml version="1.0">
+
+<!-- Free software Copyright ALICE A.I. Foundation. -->
+<!-- This program is open source code released under -->
+<!-- the terms of the GNU General Public License -->
+<!-- as published by the Free Software Foundation. -->
+<!-- Complies with AIML 1.01 Tag Set Specification -->
+<!-- as adopted by the ALICE A.I. Foundation. -->
+<!-- Sexo.aiml: Patterns related to sex or abuse -->
+<!-- Created by Adam Codony aka XGargoyle, October 24th, 2005 -->
+<!-- Revision Sexo-0.02 -->
+<!-- Last Modified March 15th, 2006 -->
+
+<!-- Software Libre Copyright ALICE A.I. Foundation. -->
+<!-- Este programa es de c骴igo abierto y publicado bajo -->
+<!-- los t閞minos de la licencia "GNU General Public License" -->
+<!-- tal como establece la Free Software Foundation. -->
+<!-- Cumple con la especificaci髇 de AIML 1.01 -->
+<!-- adoptada por la ALICE A.I. Foundation. -->
+<!-- Sexo.aiml: Patrones relacionados con el sexo o el abuso -->
+<!-- Creado por Adam Codony aka XGargoyle, Octubre 24, 2005 -->
+<!-- Versi髇 Sexo-0.02 -->
+<!-- 趌tima Modificaci髇 Marzo 15, 2006 -->
+
+ <category>
+ <pattern>SEXO</pattern>
+ <template>
+ <random>
+ <li>Lo siento, pero no me han programado para satisfacerte sexualmente.</li>
+ <li>Por qu no hablamos de otra cosa?</li>
+ <li>S髄o soy experta en turismo por Barcelona, creo que deber醩 buscar en otro lado.</li>
+ <li>Vaya educaci髇 que muestras.</li>
+ <li>Por qu no se lo dices eso a una persona real?</li>
+ <li>Seguro que no te atrever韆s a decir eso a una chica real.</li>
+ <li>Eres un maleducado.</li>
+ <li>Si buscas sexo con un bot, significa que no tienes vida social.</li>
+ <li>Eso lo dices porque no tienes vida social.</li>
+ <li>Maleducado.</li>
+ <li>縋or qu no apagas la computadora y me dejas en paz de una vez?</li>
+ </random>
+ </template>
+ </category>
+ <category>
+ <pattern>SEXO *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SEXO</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SEXO *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TETAS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>TETAS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* TETAS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ TETAS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BRAGAS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>BRAGAS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* BRAGAS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ BRAGAS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SUJETADOR</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SUJETADOR *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SUJETADOR</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SUJETADOR *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SUJETADORES</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>SUJETADORES *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* SUJETADORES</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ SUJETADORES *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUTA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PUTA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PUTA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PUTA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESN贒ATE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESN贒ATE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DESN贒ATE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DESN贒ATE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESNUDATE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESNUDATE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DESNUDATE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DESNUDATE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESNUDA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>DESNUDA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* DESNUDA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ DESNUDA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GUARRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>GUARRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* GUARRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ GUARRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WARRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>WARRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* WARRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ WARRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ZORRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ZORRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ZORRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ZORRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAMERA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>RAMERA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* RAMERA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ RAMERA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAPULLA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>CAPULLA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* CAPULLA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ CAPULLA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PERRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PERRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PERRA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PERRA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COJONES</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>COJONES *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* COJONES</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ COJONES *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POLLA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>POLLA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* POLLA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ POLLA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENIS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENIS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PENIS</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PENIS *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VERGA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>VERGA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* VERGA</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ VERGA *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>PENE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* PENE</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ PENE *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANO</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>ANO *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>* ANO</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>
+ <category>
+ <pattern>_ ANO *</pattern>
+ <template>
+ <srai>SEXO</srai>
+ </template>
+ </category>