[Swfdec-commits] 18 commits - doc/swfdec-sections.txt player/swfplay.c swfdec/swfdec_bits.c swfdec/swfdec_buffer.h swfdec/swfdec_flv_decoder.c swfdec/swfdec_image.c swfdec/swfdec_load_object.c swfdec/swfdec_net_stream.c swfdec/swfdec_player.c swfdec/swfdec_policy_file.c swfdec/swfdec_resource.c swfdec/swfdec_socket.c swfdec/swfdec_sound.c swfdec/swfdec_stream.c swfdec/swfdec_stream.h swfdec/swfdec_stream_target.c swfdec/swfdec_stream_target.h swfdec/swfdec_tag.c swfdec/swfdec_xml_socket.c swfdec/swfdec_xml_socket.h test/swfdec_test_buffer.c test/swfdec_test_initialize.as test/swfdec_test_initialize.h test/swfdec_test_plugin.c test/swfdec_test_socket.c test/trace
Benjamin Otte
company at kemper.freedesktop.org
Fri Feb 15 09:57:30 PST 2008
doc/swfdec-sections.txt | 1
player/swfplay.c | 2
swfdec/swfdec_bits.c | 9 -
swfdec/swfdec_buffer.h | 2
swfdec/swfdec_flv_decoder.c | 2
swfdec/swfdec_image.c | 4
swfdec/swfdec_load_object.c | 3
swfdec/swfdec_net_stream.c | 8
swfdec/swfdec_player.c | 10 -
swfdec/swfdec_policy_file.c | 4
swfdec/swfdec_resource.c | 9 -
swfdec/swfdec_socket.c | 1
swfdec/swfdec_sound.c | 5
swfdec/swfdec_stream.c | 36 +++-
swfdec/swfdec_stream.h | 1
swfdec/swfdec_stream_target.c | 13 +
swfdec/swfdec_stream_target.h | 4
swfdec/swfdec_tag.c | 4
swfdec/swfdec_xml_socket.c | 104 ++++++++++-
swfdec/swfdec_xml_socket.h | 3
test/swfdec_test_buffer.c | 69 +++++++
test/swfdec_test_initialize.as | 9 -
test/swfdec_test_initialize.h | 276 +++++++++++++++----------------
test/swfdec_test_plugin.c | 3
test/swfdec_test_socket.c | 14 +
test/trace/Makefile.am | 3
test/trace/crash-0.5.90-empty-action.swf |binary
test/trace/crash-0.5.90-empty-action.xml | 13 +
28 files changed, 429 insertions(+), 183 deletions(-)
New commits:
commit 724a6dc7c2f2b8918300177588a8d7fc85b53e58
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 18:47:20 2008 +0100
ignore empty DoAction tags
diff --git a/swfdec/swfdec_tag.c b/swfdec/swfdec_tag.c
index 133f8b2..dc98ee7 100644
--- a/swfdec/swfdec_tag.c
+++ b/swfdec/swfdec_tag.c
@@ -492,6 +492,10 @@ tag_func_do_action (SwfdecSwfDecoder * s, guint tag)
SwfdecBits bits;
char *name;
+ if (swfdec_bits_left (&s->b) == 0) {
+ SWFDEC_WARNING ("empty script, ignoring");
+ return SWFDEC_STATUS_OK;
+ }
name = g_strdup_printf ("Sprite%u_Frame%u", SWFDEC_CHARACTER (s->parse_sprite)->id,
s->parse_sprite->parse_frame);
bits = s->b;
commit 63e97468c81be4dafcb0ce1e3743ea76e47e1a25
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 18:46:42 2008 +0100
always return buffers from swfdec_bits_get_buffer () when len == 0
Makes the code do what people (= me) would assume happening.
The function now only fails when the length argument is too big.
diff --git a/swfdec/swfdec_bits.c b/swfdec/swfdec_bits.c
index bf1e29b..9e7a207 100644
--- a/swfdec/swfdec_bits.c
+++ b/swfdec/swfdec_bits.c
@@ -622,10 +622,9 @@ swfdec_bits_get_rect (SwfdecBits * bits, SwfdecRect *rect)
* @len: length of buffer or -1 for maximum
*
* Gets the contents of the next @len bytes of @bits and buts them in a new
- * subbuffer. If @len is 0 (or @len is -1 and no more data is available), this
- * is considered a reading error and %NULL is returned.
+ * subbuffer.
*
- * Returns: the new #SwfdecBuffer or NULL if the requested amount of data
+ * Returns: the new #SwfdecBuffer or %NULL if the requested amount of data
* isn't available
**/
SwfdecBuffer *
@@ -635,7 +634,7 @@ swfdec_bits_get_buffer (SwfdecBits *bits, int len)
g_return_val_if_fail (len >= -1, NULL);
- if (len > 0) {
+ if (len >= 0) {
SWFDEC_BYTES_CHECK (bits, (guint) len);
} else {
g_assert (bits->idx == 0);
@@ -643,7 +642,7 @@ swfdec_bits_get_buffer (SwfdecBits *bits, int len)
g_assert (len >= 0);
}
if (len == 0)
- return NULL;
+ return swfdec_buffer_new (0);
if (bits->buffer) {
buffer = swfdec_buffer_new_subbuffer (bits->buffer, bits->ptr - bits->buffer->data, len);
} else {
commit 8a20756fcbaebc5aa6a4043b70d9dad11252e749
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 18:42:02 2008 +0100
add crasher test
found by Benjamin Wolsey
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 29e92b4..e1be143 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -701,6 +701,9 @@ EXTRA_DIST = \
crash-0.5.5-cvs-truncated2.swf \
crash-0.5.5-cvs-truncated2.swf.trace \
crash-0.5.5-cvs-truncated2.xml \
+ crash-0.5.90-empty-action.swf \
+ crash-0.5.90-empty-action.swf.trace \
+ crash-0.5.90-empty-action.xml \
currentframe.swf \
currentframe.swf.trace \
dangling-compare.as \
diff --git a/test/trace/crash-0.5.90-empty-action.swf b/test/trace/crash-0.5.90-empty-action.swf
new file mode 100644
index 0000000..0f02a29
Binary files /dev/null and b/test/trace/crash-0.5.90-empty-action.swf differ
diff --git a/test/trace/crash-0.5.90-empty-action.swf.trace b/test/trace/crash-0.5.90-empty-action.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.5.90-empty-action.xml b/test/trace/crash-0.5.90-empty-action.xml
new file mode 100644
index 0000000..78ea347
--- /dev/null
+++ b/test/trace/crash-0.5.90-empty-action.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<swf version="7" compressed="1">
+ <Header framerate="30" frames="2">
+ <size>
+ <Rectangle left="0" right="4000" top="0" bottom="3000"/>
+ </size>
+ <tags>
+ <UnknownTag id="0xC" />
+ <ShowFrame/>
+ <End/>
+ </tags>
+ </Header>
+</swf>
commit 708f1b395648263f92663e39d8873319ba2ce26f
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 18:40:36 2008 +0100
be safe against bugs in the jpeg lib - just in case
diff --git a/swfdec/swfdec_image.c b/swfdec/swfdec_image.c
index 3270756..b4bff6c 100644
--- a/swfdec/swfdec_image.c
+++ b/swfdec/swfdec_image.c
@@ -158,8 +158,10 @@ swfdec_jpeg_decode_argb (unsigned char *data1, int length1,
ret = jpeg_decode_argb (tmpdata, tmplength, outdata, width, height);
g_free (tmpdata);
- } else {
+ } else if (data1) {
ret = jpeg_decode_argb (data1, length1, outdata, width, height);
+ } else {
+ ret = FALSE;
}
return ret;
commit 5441d97d369b32b6a194539db239f06ccc633468
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 18:40:16 2008 +0100
that shouldn't happen
diff --git a/swfdec/swfdec_sound.c b/swfdec/swfdec_sound.c
index 96fc1fd..a788b14 100644
--- a/swfdec/swfdec_sound.c
+++ b/swfdec/swfdec_sound.c
@@ -102,10 +102,7 @@ tag_func_sound_stream_block (SwfdecSwfDecoder * s, guint tag)
return SWFDEC_STATUS_OK;
} else {
chunk = swfdec_bits_get_buffer (&s->b, -1);
- if (chunk == NULL) {
- SWFDEC_ERROR ("empty sound chunk");
- return SWFDEC_STATUS_OK;
- }
+ g_assert (chunk != NULL);
SWFDEC_LOG ("got a buffer with %u samples, %d skip and %"G_GSIZE_FORMAT" bytes mp3 data", n_samples, skip,
chunk->length);
/* use this to write out the stream data to stdout - nice way to get an mp3 file :) */
commit 22e436b7b66b4405b2437d80b84b3f734250763e
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 17:24:07 2008 +0100
cast data in swfdec_buffer_new_static() as it'll most likely be const
diff --git a/swfdec/swfdec_buffer.h b/swfdec/swfdec_buffer.h
index 2f66747..210678d 100644
--- a/swfdec/swfdec_buffer.h
+++ b/swfdec/swfdec_buffer.h
@@ -67,7 +67,7 @@ SwfdecBuffer *swfdec_buffer_new_subbuffer (SwfdecBuffer * buffer, gsize offset,
SwfdecBuffer *swfdec_buffer_new_from_file (const char *filename, GError **error);
SwfdecBuffer *swfdec_buffer_new_for_data (unsigned char *data, gsize size);
#define swfdec_buffer_new_static(data, size) \
- swfdec_buffer_new_full (data, size, NULL, NULL)
+ swfdec_buffer_new_full ((unsigned char *) data, size, NULL, NULL)
SwfdecBuffer *swfdec_buffer_ref (SwfdecBuffer * buffer);
SwfdecBuffer *swfdec_buffer_get_super (SwfdecBuffer *buffer);
void swfdec_buffer_unref (SwfdecBuffer * buffer);
commit d6941608211eb45387cab471880c0013bfe94113
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 17:23:37 2008 +0100
use a static buffer here
diff --git a/swfdec/swfdec_policy_file.c b/swfdec/swfdec_policy_file.c
index a7069ae..21d29ae 100644
--- a/swfdec/swfdec_policy_file.c
+++ b/swfdec/swfdec_policy_file.c
@@ -162,8 +162,8 @@ swfdec_policy_file_target_open (SwfdecStreamTarget *target,
SwfdecStream *stream)
{
if (SWFDEC_IS_SOCKET (stream)) {
- SwfdecBuffer *buffer = swfdec_buffer_new_for_data (
- (guchar *) g_strdup ("<policy-file-request/>"), 23);
+ SwfdecBuffer *buffer = swfdec_buffer_new_static (
+ "<policy-file-request/>", 23);
swfdec_socket_send (SWFDEC_SOCKET (stream), buffer);
}
}
commit d338a00524ec429732ab27d385b0fd1133d36d95
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 17:23:12 2008 +0100
make SwfdecXMLSocket work
diff --git a/swfdec/swfdec_xml_socket.c b/swfdec/swfdec_xml_socket.c
index 3b92c7c..f53f168 100644
--- a/swfdec/swfdec_xml_socket.c
+++ b/swfdec/swfdec_xml_socket.c
@@ -61,11 +61,26 @@ swfdec_xml_socket_stream_target_get_player (SwfdecStreamTarget *target)
}
static void
+swfdec_xml_socket_stream_target_open (SwfdecStreamTarget *target,
+ SwfdecStream *stream)
+{
+ SwfdecXmlSocket *xml = SWFDEC_XML_SOCKET (target);
+ SwfdecAsValue value;
+
+ xml->open = TRUE;
+ SWFDEC_AS_VALUE_SET_BOOLEAN (&value, TRUE);
+ swfdec_sandbox_use (xml->sandbox);
+ swfdec_as_object_call (xml->target, SWFDEC_AS_STR_onConnect, 1, &value, NULL);
+ swfdec_sandbox_unuse (xml->sandbox);
+}
+
+static void
swfdec_xml_socket_stream_target_error (SwfdecStreamTarget *target,
SwfdecStream *stream)
{
SwfdecXmlSocket *xml = SWFDEC_XML_SOCKET (target);
+ swfdec_sandbox_use (xml->sandbox);
if (xml->open) {
SWFDEC_FIXME ("is onClose emitted on error?");
swfdec_as_object_call (xml->target, SWFDEC_AS_STR_onClose, 0, NULL, NULL);
@@ -75,6 +90,7 @@ swfdec_xml_socket_stream_target_error (SwfdecStreamTarget *target,
SWFDEC_AS_VALUE_SET_BOOLEAN (&value, FALSE);
swfdec_as_object_call (xml->target, SWFDEC_AS_STR_onConnect, 1, &value, NULL);
}
+ swfdec_sandbox_unuse (xml->sandbox);
swfdec_xml_socket_ensure_closed (xml);
}
@@ -109,7 +125,9 @@ swfdec_xml_socket_stream_target_parse (SwfdecStreamTarget *target,
SWFDEC_AS_VALUE_SET_STRING (&val, swfdec_as_context_get_string (
SWFDEC_AS_OBJECT (xml)->context, (char *) buffer->data));
+ swfdec_sandbox_use (xml->sandbox);
swfdec_as_object_call (xml->target, SWFDEC_AS_STR_onData, 1, &val, NULL);
+ swfdec_sandbox_unuse (xml->sandbox);
}
}
}
@@ -126,7 +144,9 @@ swfdec_xml_socket_stream_target_close (SwfdecStreamTarget *target,
SWFDEC_FIXME ("data left in socket, what now?");
}
+ swfdec_sandbox_use (xml->sandbox);
swfdec_as_object_call (xml->target, SWFDEC_AS_STR_onClose, 0, NULL, NULL);
+ swfdec_sandbox_unuse (xml->sandbox);
swfdec_xml_socket_ensure_closed (xml);
}
@@ -135,6 +155,7 @@ static void
swfdec_xml_socket_stream_target_init (SwfdecStreamTargetInterface *iface)
{
iface->get_player = swfdec_xml_socket_stream_target_get_player;
+ iface->open = swfdec_xml_socket_stream_target_open;
iface->parse = swfdec_xml_socket_stream_target_parse;
iface->close = swfdec_xml_socket_stream_target_close;
iface->error = swfdec_xml_socket_stream_target_error;
@@ -149,6 +170,7 @@ static void
swfdec_xml_socket_mark (SwfdecAsObject *object)
{
swfdec_as_object_mark (SWFDEC_XML_SOCKET (object)->target);
+ swfdec_as_object_mark (SWFDEC_AS_OBJECT (SWFDEC_XML_SOCKET (object)->sandbox));
SWFDEC_AS_OBJECT_CLASS (swfdec_xml_socket_parent_class)->mark (object);
}
@@ -193,7 +215,7 @@ swfdec_xml_socket_target_gone (gpointer xmlp)
}
static SwfdecXmlSocket *
-swfdec_xml_socket_create (SwfdecAsObject *target, const char *hostname, guint port)
+swfdec_xml_socket_create (SwfdecAsObject *target, SwfdecSandbox *sandbox, const char *hostname, guint port)
{
SwfdecAsContext *cx = target->context;
SwfdecXmlSocket *xml;
@@ -213,16 +235,39 @@ swfdec_xml_socket_create (SwfdecAsObject *target, const char *hostname, guint po
if (xml_socket_quark == 0)
xml_socket_quark = g_quark_from_static_string ("swfdec-xml-socket");
- g_object_set_qdata (G_OBJECT (target), xml_socket_quark, swfdec_xml_socket_target_gone);
+ g_object_set_qdata_full (G_OBJECT (target), xml_socket_quark, xml, swfdec_xml_socket_target_gone);
xml->target = target;
xml->target_owner = TRUE;
xml->socket = sock;
+ xml->sandbox = sandbox;
+ swfdec_stream_set_target (SWFDEC_STREAM (sock), SWFDEC_STREAM_TARGET (xml));
return xml;
}
/*** AS CODE ***/
+static SwfdecXmlSocket *
+swfdec_xml_socket_get (SwfdecAsObject *object)
+{
+ SwfdecXmlSocket *xml;
+
+ if (object == NULL ||
+ xml_socket_quark == 0) {
+ SWFDEC_WARNING ("no xml socket on object");
+ return NULL;
+ }
+
+ xml = g_object_get_qdata (G_OBJECT (object), xml_socket_quark);
+ if (xml->socket == NULL) {
+ SWFDEC_WARNING ("xml socket not open");
+ return NULL;
+ }
+
+ return xml;
+}
+
+
SWFDEC_AS_NATIVE (400, 0, swfdec_xml_socket_connect)
void
swfdec_xml_socket_connect (SwfdecAsContext *cx, SwfdecAsObject *object,
@@ -236,8 +281,7 @@ swfdec_xml_socket_connect (SwfdecAsContext *cx, SwfdecAsObject *object,
if (SWFDEC_IS_MOVIE (object) || object == NULL)
return;
- swfdec_xml_socket_create (object, host, port);
- SWFDEC_STUB ("XMLSocket.connect");
+ swfdec_xml_socket_create (object, SWFDEC_SANDBOX (cx->global), host, port);
}
SWFDEC_AS_NATIVE (400, 1, swfdec_xml_socket_send)
@@ -245,7 +289,28 @@ void
swfdec_xml_socket_send (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SWFDEC_STUB ("XMLSocket.send");
+ SwfdecXmlSocket *xml;
+ SwfdecBuffer *buf;
+ const char *send;
+ gsize len;
+
+ if (argc < 1)
+ return;
+
+ xml = swfdec_xml_socket_get (object);
+ if (xml == NULL)
+ return;
+ if (!swfdec_stream_is_open (SWFDEC_STREAM (xml->socket))) {
+ SWFDEC_WARNING ("sending data down a closed stream");
+ return;
+ }
+
+ send = swfdec_as_value_to_string (cx, &argv[0]);
+ len = strlen (send) + 1;
+ buf = swfdec_buffer_new (len);
+ memcpy (buf->data, send, len);
+
+ swfdec_socket_send (xml->socket, buf);
}
SWFDEC_AS_NATIVE (400, 2, swfdec_xml_socket_close)
@@ -253,5 +318,10 @@ void
swfdec_xml_socket_close (SwfdecAsContext *cx, SwfdecAsObject *object,
guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
{
- SWFDEC_STUB ("XMLSocket.close");
+ SwfdecXmlSocket *xml;
+
+ xml = swfdec_xml_socket_get (object);
+ if (xml == NULL)
+ return;
+ swfdec_stream_close (SWFDEC_STREAM (xml->socket));
}
diff --git a/swfdec/swfdec_xml_socket.h b/swfdec/swfdec_xml_socket.h
index a40de86..73ac1f9 100644
--- a/swfdec/swfdec_xml_socket.h
+++ b/swfdec/swfdec_xml_socket.h
@@ -22,6 +22,7 @@
#include <swfdec/swfdec.h>
#include <swfdec/swfdec_as_object.h>
+#include <swfdec/swfdec_sandbox.h>
G_BEGIN_DECLS
@@ -40,6 +41,7 @@ struct _SwfdecXmlSocket {
SwfdecAsObject object;
SwfdecSocket * socket; /* the socket in use */
+ SwfdecSandbox * sandbox; /* the sandbox we run in */
gboolean open; /* the socket has been opened already */
SwfdecBufferQueue * queue; /* everything that belongs to the same string */
SwfdecAsObject * target; /* target object we call out to */
commit 4a7c38578d383051183820bc4908981bfb60f5c1
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 13:57:16 2008 +0100
add swfdec_stream_is_open() function
diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index efc27d5..db569cf 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -22,6 +22,7 @@ SWFDEC_AUDIO_GET_CLASS
SwfdecStream
SwfdecStreamClass
swfdec_stream_open
+swfdec_stream_is_open
swfdec_stream_push
swfdec_stream_eof
swfdec_stream_error
diff --git a/swfdec/swfdec_socket.c b/swfdec/swfdec_socket.c
index 821e214..64de43f 100644
--- a/swfdec/swfdec_socket.c
+++ b/swfdec/swfdec_socket.c
@@ -116,6 +116,7 @@ swfdec_socket_send (SwfdecSocket *sock, SwfdecBuffer *buffer)
SwfdecSocketClass *klass;
g_return_if_fail (SWFDEC_IS_SOCKET (sock));
+ g_return_if_fail (swfdec_stream_is_open (SWFDEC_STREAM (sock)));
g_return_if_fail (buffer != NULL);
klass = SWFDEC_SOCKET_GET_CLASS (sock);
diff --git a/swfdec/swfdec_stream.c b/swfdec/swfdec_stream.c
index a692099..51337d1 100644
--- a/swfdec/swfdec_stream.c
+++ b/swfdec/swfdec_stream.c
@@ -396,6 +396,23 @@ swfdec_stream_open (SwfdecStream *stream)
}
/**
+ * swfdec_stream_is_open:
+ * @stream: a #SwfdecStream
+ *
+ * Checks if the given @stream is currrently open. Some functions, for example
+ * swfdec_socket_send(), require an open stream.
+ *
+ * Returns: %TRUE if the stream is open, %FALSE otherwise.
+ **/
+gboolean
+swfdec_stream_is_open (SwfdecStream *stream)
+{
+ g_return_val_if_fail (SWFDEC_IS_STREAM (stream), FALSE);
+
+ return stream->priv->state == SWFDEC_STREAM_STATE_OPEN;
+}
+
+/**
* swfdec_stream_push:
* @stream: a #SwfdecStream
* @buffer: new data to make available. The stream takes the reference
diff --git a/swfdec/swfdec_stream.h b/swfdec/swfdec_stream.h
index 063fd48..fc61e57 100644
--- a/swfdec/swfdec_stream.h
+++ b/swfdec/swfdec_stream.h
@@ -59,6 +59,7 @@ struct _SwfdecStreamClass
GType swfdec_stream_get_type (void);
void swfdec_stream_open (SwfdecStream * stream);
+gboolean swfdec_stream_is_open (SwfdecStream * stream);
void swfdec_stream_push (SwfdecStream * stream,
SwfdecBuffer * buffer);
void swfdec_stream_eof (SwfdecStream * stream);
commit 02cf3f19f225d4d0d29e0c4df304f6cb5348a26c
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 13:49:17 2008 +0100
don't crash when dispose order of objects is messed up
diff --git a/swfdec/swfdec_xml_socket.c b/swfdec/swfdec_xml_socket.c
index 424726b..3b92c7c 100644
--- a/swfdec/swfdec_xml_socket.c
+++ b/swfdec/swfdec_xml_socket.c
@@ -37,8 +37,6 @@ static GQuark xml_socket_quark = 0;
static void
swfdec_xml_socket_ensure_closed (SwfdecXmlSocket *xml)
{
- gpointer cur;
-
if (xml->socket == NULL)
return;
@@ -47,9 +45,10 @@ swfdec_xml_socket_ensure_closed (SwfdecXmlSocket *xml)
xml->socket = NULL;
swfdec_player_unroot (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (xml)->context), xml);
- cur = g_object_get_qdata (G_OBJECT (xml->target), xml_socket_quark);
- if (cur != xml)
- g_object_set_qdata (G_OBJECT (xml->target), xml_socket_quark, cur);
+ if (xml->target_owner) {
+ g_object_steal_qdata (G_OBJECT (xml->target), xml_socket_quark);
+ xml->target_owner = FALSE;
+ }
xml->target = NULL;
}
@@ -185,6 +184,14 @@ swfdec_xml_socket_init (SwfdecXmlSocket *xml)
xml->queue = swfdec_buffer_queue_new ();
}
+static void
+swfdec_xml_socket_target_gone (gpointer xmlp)
+{
+ SwfdecXmlSocket *xml = xmlp;
+
+ xml->target_owner = FALSE;
+}
+
static SwfdecXmlSocket *
swfdec_xml_socket_create (SwfdecAsObject *target, const char *hostname, guint port)
{
@@ -204,7 +211,11 @@ swfdec_xml_socket_create (SwfdecAsObject *target, const char *hostname, guint po
swfdec_as_object_add (SWFDEC_AS_OBJECT (xml), cx, sizeof (SwfdecXmlSocket));
swfdec_player_root (SWFDEC_PLAYER (cx), xml, (GFunc) swfdec_as_object_mark);
+ if (xml_socket_quark == 0)
+ xml_socket_quark = g_quark_from_static_string ("swfdec-xml-socket");
+ g_object_set_qdata (G_OBJECT (target), xml_socket_quark, swfdec_xml_socket_target_gone);
xml->target = target;
+ xml->target_owner = TRUE;
xml->socket = sock;
return xml;
diff --git a/swfdec/swfdec_xml_socket.h b/swfdec/swfdec_xml_socket.h
index eb751d5..a40de86 100644
--- a/swfdec/swfdec_xml_socket.h
+++ b/swfdec/swfdec_xml_socket.h
@@ -43,6 +43,7 @@ struct _SwfdecXmlSocket {
gboolean open; /* the socket has been opened already */
SwfdecBufferQueue * queue; /* everything that belongs to the same string */
SwfdecAsObject * target; /* target object we call out to */
+ gboolean target_owner; /* TRUE if we own the target */
};
struct _SwfdecXmlSocketClass {
commit 8344380bc4d9b16d3ff5457950ec7f965ebc8c7c
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 10:56:11 2008 +0100
reorder dispose actions to avoid SEGVs
diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index b4f10bc..08f66ed 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -938,9 +938,10 @@ swfdec_player_dispose (GObject *object)
while (priv->roots)
swfdec_movie_destroy (priv->roots->data);
- swfdec_function_list_clear (&priv->rooted);
/* we do this here so references to GC'd objects get freed */
G_OBJECT_CLASS (swfdec_player_parent_class)->dispose (object);
+ /* must happen after disposing context, some objects unroot themselves */
+ swfdec_function_list_clear (&priv->rooted);
swfdec_player_remove_all_external_actions (player, player);
#ifndef G_DISABLE_ASSERT
commit f15e499b241240028fdc932b8f536a6f3d9187fb
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Feb 15 10:55:32 2008 +0100
fix typo
diff --git a/test/swfdec_test_socket.c b/test/swfdec_test_socket.c
index 087c67c..8d2adeb 100644
--- a/test/swfdec_test_socket.c
+++ b/test/swfdec_test_socket.c
@@ -128,7 +128,7 @@ swfdec_test_socket_receive (SwfdecAsContext *cx, SwfdecAsObject *object, guint a
depth = swfdec_buffer_queue_get_depth (sock->receive_queue);
if (len > 0) {
if (depth < len) {
- swfdec_test_throw (cx, "nly %zu bytes available", depth);
+ swfdec_test_throw (cx, "only %zu bytes available", depth);
return;
} else {
buffer = swfdec_buffer_queue_pull (sock->receive_queue, len);
commit d7f0ae320d6a27345c891f780befbfc9ddb60d61
Author: Benjamin Otte <otte at gnome.org>
Date: Tue Feb 12 15:03:37 2008 +0100
implement new functions on Buffer object
Buffer.toString - try to convert a given buffer to a string
Buffer.sub - create a subbuffer
Buffer.find - find the first occurence of a given byte
FIXME: This should probably compare with a buffer, not jsut a byte
diff --git a/test/swfdec_test_buffer.c b/test/swfdec_test_buffer.c
index 88551bb..648d35a 100644
--- a/test/swfdec_test_buffer.c
+++ b/test/swfdec_test_buffer.c
@@ -170,6 +170,24 @@ swfdec_test_buffer_diff (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc
}
}
+SWFDEC_TEST_FUNCTION ("Buffer_find", swfdec_test_buffer_find, 0)
+void
+swfdec_test_buffer_find (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ int c;
+ SwfdecTestBuffer *buffer;
+ guchar *found;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "i", &c);
+
+ SWFDEC_AS_VALUE_SET_INT (retval, -1);
+
+ found = memchr (buffer->buffer->data, c, buffer->buffer->length);
+ if (found)
+ SWFDEC_AS_VALUE_SET_INT (retval, found - buffer->buffer->data);
+}
+
SWFDEC_TEST_FUNCTION ("Buffer_load", swfdec_test_buffer_load, 0)
void
swfdec_test_buffer_load (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
@@ -195,6 +213,32 @@ swfdec_test_buffer_load (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc
SWFDEC_AS_VALUE_SET_OBJECT (retval, buffer);
}
+SWFDEC_TEST_FUNCTION ("Buffer_sub", swfdec_test_buffer_sub, 0)
+void
+swfdec_test_buffer_sub (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecBuffer *b;
+ SwfdecTestBuffer *buffer;
+ SwfdecAsObject *o;
+ guint offset, length;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "i|i", &offset, &length);
+
+ SWFDEC_AS_VALUE_SET_NULL (retval);
+ if (offset >= buffer->buffer->length)
+ return;
+
+ if (length == 0)
+ length = buffer->buffer->length - offset;
+
+ b = swfdec_buffer_new_subbuffer (buffer->buffer, offset, length);
+ o = swfdec_test_buffer_new (cx, b);
+ if (o == NULL)
+ return;
+ SWFDEC_AS_VALUE_SET_OBJECT (retval, o);
+}
+
SWFDEC_TEST_FUNCTION ("Buffer_toString", swfdec_test_buffer_toString, 0)
void
swfdec_test_buffer_toString (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 4d15950..753732c 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -21,6 +21,9 @@ Buffer = Native.Buffer;
Buffer.load = Native.Buffer_load;
Buffer.prototype = {};
Buffer.prototype.diff = Native.Buffer_diff;
+Buffer.prototype.find = Native.Buffer_find;
+Buffer.prototype.sub = Native.Buffer_sub;
+Buffer.prototype.toString = Native.Buffer_toString;
Image = Native.Image;
Image.prototype = {};
@@ -50,7 +53,6 @@ Socket.prototype.close = Native.Socket_close;
Socket.prototype.error = Native.Socket_error;
Socket.prototype.receive = Native.Socket_receive;
Socket.prototype.send = Native.Socket_send;
-Socket.prototype.toString = Native.Socket_toString;
Socket.prototype.addProperty ("closed", Native.Socket_get_closed, null);
Test = Native.Test;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 091b6c1..d481927 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,35 +2,38 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x9D, 0x03, 0x4D, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0xBD, 0x03, 0x51, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
- 0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
- 0x6D, 0x61, 0x67, 0x65, 0x00, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61,
- 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00,
- 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73, 0x61, 0x76, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x70, 0x6F, 0x72, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50,
- 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x70, 0x6F, 0x72, 0x74, 0x00,
- 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x79, 0x00, 0x48, 0x54, 0x54, 0x50,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73,
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x75, 0x72, 0x6C,
- 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
- 0x5F, 0x75, 0x72, 0x6C, 0x00, 0x70, 0x61, 0x74, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x63,
- 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65,
- 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x00, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54,
- 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x74,
- 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
- 0x6F, 0x64, 0x65, 0x00, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x48, 0x54, 0x54,
+ 0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x66,
+ 0x69, 0x6E, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x66, 0x69, 0x6E, 0x64, 0x00,
+ 0x73, 0x75, 0x62, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x73, 0x75, 0x62, 0x00, 0x74,
+ 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x74,
+ 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x00, 0x63, 0x6F,
+ 0x6D, 0x70, 0x61, 0x72, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x63, 0x6F, 0x6D, 0x70,
+ 0x61, 0x72, 0x65, 0x00, 0x73, 0x61, 0x76, 0x65, 0x00, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x5F, 0x73,
+ 0x61, 0x76, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x67,
+ 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x5F, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x00,
+ 0x70, 0x6F, 0x72, 0x74, 0x00, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5F,
+ 0x67, 0x65, 0x74, 0x5F, 0x70, 0x6F, 0x72, 0x74, 0x00, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6F, 0x70,
+ 0x65, 0x72, 0x74, 0x79, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x00, 0x4F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x00, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x48,
+ 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x00, 0x75, 0x72, 0x6C, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x75, 0x72, 0x6C, 0x00, 0x70, 0x61,
+ 0x74, 0x68, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67,
+ 0x65, 0x74, 0x5F, 0x70, 0x61, 0x74, 0x68, 0x00, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00,
+ 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F,
+ 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F,
+ 0x67, 0x65, 0x74, 0x5F, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00,
+ 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65, 0x74, 0x5F,
+ 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64,
+ 0x65, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x73, 0x65,
+ 0x74, 0x5F, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6F, 0x64, 0x65, 0x00, 0x48, 0x54, 0x54,
0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E,
0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54,
@@ -39,8 +42,7 @@ static const unsigned char swfdec_test_initialize[] = {
0x6F, 0x73, 0x65, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x00, 0x53,
0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x00, 0x53, 0x6F,
- 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
- 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x64,
+ 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x64,
0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73,
0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00,
0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x67, 0x65, 0x74,
@@ -65,84 +67,88 @@ static const unsigned char swfdec_test_initialize[] = {
0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08,
0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E,
- 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10,
- 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x12,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96,
- 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11,
- 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
- 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00,
- 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20,
- 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x12,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x28, 0x8E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x96, 0x02, 0x00,
- 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x31, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x30, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x28, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x04, 0x00,
- 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x32, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x32, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x33, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x35, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x36, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x08, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x09, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x0A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C,
+ 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x4E,
+ 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x0E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0F, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x0D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x10, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x11, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x12, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x12, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x07,
+ 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x13, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x14, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x16, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x15, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08,
+ 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x19, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x18, 0x1C,
+ 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x17, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1F, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1E, 0x07, 0x03, 0x00, 0x00,
+ 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52,
+ 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x09,
+ 0x00, 0x08, 0x20, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x24, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x22, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x26, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x25, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
+ 0x18, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0B, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x28, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A,
+ 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x18, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x2D, 0x8E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x96, 0x02,
+ 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2D,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x32, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x34, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x2D, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x17, 0x52, 0x17, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x36,
+ 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00,
+ 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
0x96, 0x04, 0x00, 0x08, 0x37, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x38, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x39,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C,
+ 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x39,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C,
0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3B, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x3C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x00, 0x08, 0x3C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
0x4E, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x3F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x40, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x42, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x41, 0x07, 0x03, 0x00,
- 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11,
- 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x44, 0x4E, 0x96,
- 0x09, 0x00, 0x08, 0x43, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x46, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x45, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
- 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x48, 0x4E, 0x96, 0x09, 0x00,
- 0x08, 0x47, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x49, 0x8E, 0x0B, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x1C,
- 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4B, 0x08, 0x4A, 0x1C, 0x47, 0x96,
- 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x52,
- 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B,
- 0x00, 0x96, 0x04, 0x00, 0x08, 0x4C, 0x08, 0x4A, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
- 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x52, 0x17, 0x1D, 0x00
+ 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x3F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x40, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x36,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x41, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x42, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x43, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x44, 0x4E,
+ 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x46, 0x4E, 0x96, 0x09,
+ 0x00, 0x08, 0x45, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x48, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x47, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08,
+ 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96,
+ 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x4E, 0x96, 0x09, 0x00, 0x08,
+ 0x49, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x36, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x4C, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x4B, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x36, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x17, 0x52, 0x17, 0x96, 0x02, 0x00,
+ 0x08, 0x4D, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00,
+ 0x96, 0x02, 0x00, 0x08, 0x4E, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08,
+ 0x4F, 0x08, 0x4E, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x4D, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x8E, 0x0B, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4E,
+ 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x50, 0x08, 0x4E, 0x1C, 0x47,
+ 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x4D,
+ 0x52, 0x17, 0x1D, 0x00
};
commit 64d611e1b78c8aab0c40e4ee2ccede62188a1747
Author: Benjamin Otte <otte at gnome.org>
Date: Tue Feb 12 13:40:18 2008 +0100
add Buffer.toString
diff --git a/test/swfdec_test_buffer.c b/test/swfdec_test_buffer.c
index c2b4f4e..88551bb 100644
--- a/test/swfdec_test_buffer.c
+++ b/test/swfdec_test_buffer.c
@@ -195,6 +195,31 @@ swfdec_test_buffer_load (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc
SWFDEC_AS_VALUE_SET_OBJECT (retval, buffer);
}
+SWFDEC_TEST_FUNCTION ("Buffer_toString", swfdec_test_buffer_toString, 0)
+void
+swfdec_test_buffer_toString (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecBuffer *b;
+ SwfdecTestBuffer *buffer;
+ const char *end;
+ char *s;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_BUFFER, &buffer, "");
+
+ b = buffer->buffer;
+ if (g_utf8_validate ((const char *) b->data, b->length, &end)) {
+ s = g_strndup ((const char *) b->data, b->length);
+ } else if ((size_t) (end - (char *) b->data) == b->length - 1) {
+ s = g_strdup ((const char *) b->data);
+ } else {
+ s = NULL;
+ }
+ if (s == NULL)
+ s = g_strdup ("[binary Buffer]");
+ SWFDEC_AS_VALUE_SET_STRING (retval, swfdec_as_context_give_string (cx, s));
+}
+
SwfdecBuffer *
swfdec_test_buffer_from_args (SwfdecAsContext *cx, guint argc, SwfdecAsValue *argv)
{
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index 0c1ece9..4d15950 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -46,11 +46,11 @@ HTTPRequest.prototype.close = Native.HTTPRequest_close;
Socket = function () {};
Socket.prototype = {};
-Socket.prototype.getConnection = Native.Socket_getConnection;
-Socket.prototype.receive = Native.Socket_receive;
-Socket.prototype.send = Native.Socket_send;
Socket.prototype.close = Native.Socket_close;
Socket.prototype.error = Native.Socket_error;
+Socket.prototype.receive = Native.Socket_receive;
+Socket.prototype.send = Native.Socket_send;
+Socket.prototype.toString = Native.Socket_toString;
Socket.prototype.addProperty ("closed", Native.Socket_get_closed, null);
Test = Native.Test;
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 8dd61d1..091b6c1 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0xB0, 0x03, 0x4E, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0x9D, 0x03, 0x4D, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -35,116 +35,114 @@ static const unsigned char swfdec_test_initialize[] = {
0x67, 0x00, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x48, 0x54,
0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00,
- 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x67, 0x65, 0x74, 0x43, 0x6F, 0x6E, 0x6E, 0x65, 0x63,
- 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x43,
- 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
- 0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
- 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x53, 0x6F, 0x63,
- 0x6B, 0x65, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00,
- 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x63, 0x6C, 0x6F,
- 0x73, 0x65, 0x64, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63,
- 0x6C, 0x6F, 0x73, 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E,
- 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00,
- 0x67, 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
- 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D,
- 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D,
- 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
- 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54,
- 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73,
- 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65,
- 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
- 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
- 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x71, 0x75, 0x69, 0x74, 0x00, 0x54, 0x65,
- 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x71, 0x75, 0x69, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63,
- 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65,
- 0x00, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
- 0x65, 0x74, 0x5F, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x70, 0x72, 0x69, 0x6E,
- 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52,
- 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00,
- 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
- 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09,
- 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08,
- 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02,
- 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x28, 0x8E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D,
- 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x32, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x31, 0x07, 0x03, 0x00, 0x00, 0x00,
- 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
- 0x96, 0x04, 0x00, 0x08, 0x33, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x1D, 0x96,
- 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x34, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x37, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x38, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x39,
- 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x3A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3C, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x3F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x40, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x4F, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x43, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x42,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x45, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x44, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x47, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x46, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x8E,
- 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x4B, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4C, 0x08, 0x4B,
- 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x4A, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4B, 0x1C, 0x12, 0x9D,
- 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4D, 0x08, 0x4B, 0x1C, 0x47, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x52, 0x17, 0x1D,
- 0x00
+ 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x63, 0x6C,
+ 0x6F, 0x73, 0x65, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
+ 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x00, 0x53,
+ 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x00, 0x53, 0x6F,
+ 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
+ 0x5F, 0x74, 0x6F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x00, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x64,
+ 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73,
+ 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x67, 0x65, 0x74,
+ 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x53,
+ 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65,
+ 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65,
+ 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73,
+ 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F,
+ 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74,
+ 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72,
+ 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65,
+ 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73,
+ 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74,
+ 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x71, 0x75, 0x69, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
+ 0x67, 0x65, 0x74, 0x5F, 0x71, 0x75, 0x69, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54,
+ 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x6C, 0x61,
+ 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F,
+ 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73,
+ 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00,
+ 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96,
+ 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E,
+ 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00,
+ 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10,
+ 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x12,
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00,
+ 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11,
+ 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
+ 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00,
+ 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20,
+ 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x12,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x28, 0x8E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x96, 0x02, 0x00,
+ 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x29, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2A, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x2B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x2F, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x31, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x30, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x28, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x04, 0x00,
+ 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x32, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08,
+ 0x32, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x33, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x34, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x35, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x36, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x37, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x38, 0x4E, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x39,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3B, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x3C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3E, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x3F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x40, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x42, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x41, 0x07, 0x03, 0x00,
+ 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11,
+ 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x44, 0x4E, 0x96,
+ 0x09, 0x00, 0x08, 0x43, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x46, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x45, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
+ 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x48, 0x4E, 0x96, 0x09, 0x00,
+ 0x08, 0x47, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x32, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x49, 0x8E, 0x0B, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x1C,
+ 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4B, 0x08, 0x4A, 0x1C, 0x47, 0x96,
+ 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x52,
+ 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B,
+ 0x00, 0x96, 0x04, 0x00, 0x08, 0x4C, 0x08, 0x4A, 0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00,
+ 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x52, 0x17, 0x1D, 0x00
};
commit 16fb07b4ff5e816bb8677fdbdf3b6f1ea03efcd6
Author: Benjamin Otte <otte at gnome.org>
Date: Tue Feb 12 13:31:44 2008 +0100
add a socket.closed property
diff --git a/test/swfdec_test_initialize.as b/test/swfdec_test_initialize.as
index b476131..0c1ece9 100644
--- a/test/swfdec_test_initialize.as
+++ b/test/swfdec_test_initialize.as
@@ -51,6 +51,7 @@ Socket.prototype.receive = Native.Socket_receive;
Socket.prototype.send = Native.Socket_send;
Socket.prototype.close = Native.Socket_close;
Socket.prototype.error = Native.Socket_error;
+Socket.prototype.addProperty ("closed", Native.Socket_get_closed, null);
Test = Native.Test;
Test.prototype = {};
diff --git a/test/swfdec_test_initialize.h b/test/swfdec_test_initialize.h
index 2bb7b8d..8dd61d1 100644
--- a/test/swfdec_test_initialize.h
+++ b/test/swfdec_test_initialize.h
@@ -2,7 +2,7 @@
/* compiled from swfdec_test_initialize.as */
static const unsigned char swfdec_test_initialize[] = {
- 0x88, 0x97, 0x03, 0x4C, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
+ 0x88, 0xB0, 0x03, 0x4E, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x4E, 0x61, 0x74, 0x69,
0x76, 0x65, 0x00, 0x6C, 0x6F, 0x61, 0x64, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x6C,
0x6F, 0x61, 0x64, 0x00, 0x70, 0x72, 0x6F, 0x74, 0x6F, 0x74, 0x79, 0x70, 0x65, 0x00, 0x64, 0x69,
0x66, 0x66, 0x00, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5F, 0x64, 0x69, 0x66, 0x66, 0x00, 0x49,
@@ -41,106 +41,110 @@ static const unsigned char swfdec_test_initialize[] = {
0x65, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x73, 0x65, 0x6E, 0x64, 0x00, 0x53, 0x6F, 0x63,
0x6B, 0x65, 0x74, 0x5F, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x00, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00,
- 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x54, 0x65, 0x73,
- 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61,
- 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00, 0x67, 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00,
- 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
- 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D, 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65,
- 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73,
- 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65,
- 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65,
- 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00,
- 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65,
- 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74,
- 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00,
- 0x71, 0x75, 0x69, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x71, 0x75,
- 0x69, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65,
- 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64,
- 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68,
- 0x65, 0x64, 0x00, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A,
- 0x20, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08,
- 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96,
- 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02,
- 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C,
+ 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x00, 0x63, 0x6C, 0x6F,
+ 0x73, 0x65, 0x64, 0x00, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x63,
+ 0x6C, 0x6F, 0x73, 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x00, 0x61, 0x64, 0x76, 0x61, 0x6E,
+ 0x63, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x61, 0x64, 0x76, 0x61, 0x6E, 0x63, 0x65, 0x00,
+ 0x67, 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
+ 0x65, 0x74, 0x53, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D,
+ 0x6F, 0x76, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x6D,
+ 0x6F, 0x76, 0x65, 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73, 0x00,
+ 0x54, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x70, 0x72, 0x65, 0x73, 0x73,
+ 0x00, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x00, 0x54,
+ 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x6F, 0x75, 0x73, 0x65, 0x5F, 0x72, 0x65, 0x6C, 0x65, 0x61, 0x73,
+ 0x65, 0x00, 0x72, 0x65, 0x6E, 0x64, 0x65, 0x72, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x72, 0x65,
+ 0x6E, 0x64, 0x65, 0x72, 0x00, 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
+ 0x72, 0x65, 0x73, 0x65, 0x74, 0x00, 0x72, 0x61, 0x74, 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F,
+ 0x67, 0x65, 0x74, 0x5F, 0x72, 0x61, 0x74, 0x65, 0x00, 0x71, 0x75, 0x69, 0x74, 0x00, 0x54, 0x65,
+ 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x71, 0x75, 0x69, 0x74, 0x00, 0x74, 0x72, 0x61, 0x63,
+ 0x65, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67, 0x65, 0x74, 0x5F, 0x74, 0x72, 0x61, 0x63, 0x65,
+ 0x00, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x54, 0x65, 0x73, 0x74, 0x5F, 0x67,
+ 0x65, 0x74, 0x5F, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x65, 0x64, 0x00, 0x70, 0x72, 0x69, 0x6E,
+ 0x74, 0x00, 0x73, 0x00, 0x49, 0x4E, 0x46, 0x4F, 0x3A, 0x20, 0x00, 0x45, 0x52, 0x52, 0x4F, 0x52,
+ 0x3A, 0x20, 0x00, 0x96, 0x04, 0x00, 0x08, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x00,
+ 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x04, 0x00, 0x08, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x03, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96, 0x07, 0x00,
+ 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x00, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x05, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x06, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x07, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x07, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
+ 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F,
+ 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
+ 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B, 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C,
0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x07, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x08, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x09, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x07, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0B,
- 0x4E, 0x4F, 0x96, 0x04, 0x00, 0x08, 0x0C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x4E,
- 0x1D, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09, 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08,
- 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x0C, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x0D, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x0E, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x10, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x0F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x0C,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x09,
+ 0x00, 0x08, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x08, 0x13, 0x40, 0x1D, 0x96, 0x02, 0x00, 0x08,
+ 0x12, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x03,
+ 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x15, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x14,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
+ 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x17, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x16, 0x07, 0x03,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03,
0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x19, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x18, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52,
- 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96,
- 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
- 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F,
- 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08,
- 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x8E, 0x08, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00,
- 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96,
- 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
- 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E, 0x4F, 0x96,
- 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04,
- 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F,
- 0x96, 0x04, 0x00, 0x08, 0x31, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x31, 0x4E, 0x1D, 0x96,
- 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
- 0x4F, 0x96, 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
- 0x08, 0x32, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
- 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x34, 0x08, 0x01, 0x1C,
- 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x37,
- 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
- 0x00, 0x08, 0x38, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x39, 0x4E, 0x4F, 0x96, 0x02, 0x00,
- 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3A, 0x08, 0x01,
- 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02,
- 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3C, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x3D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
- 0x04, 0x00, 0x08, 0x3E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3F, 0x4E, 0x4F, 0x96, 0x03,
- 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x40,
- 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
+ 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x1B, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x1A, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x1E, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x1D, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1C, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x21, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x20, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x1F, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x12,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02,
+ 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x22, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x23, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96,
+ 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x25, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x12, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E,
+ 0x96, 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x27, 0x4E, 0x4F, 0x96,
+ 0x02, 0x00, 0x08, 0x28, 0x8E, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D,
+ 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x43, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x29, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2A, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2B, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2C, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x24, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x2D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x26, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x2E, 0x4E, 0x4F, 0x96, 0x02,
+ 0x00, 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x2F, 0x08,
+ 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x30, 0x4E, 0x4F, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x32, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x31, 0x07, 0x03, 0x00, 0x00, 0x00,
+ 0x08, 0x28, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17,
+ 0x96, 0x04, 0x00, 0x08, 0x33, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x33, 0x4E, 0x1D, 0x96,
+ 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x07, 0x00, 0x08, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x43,
+ 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00,
+ 0x08, 0x34, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x35, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08,
+ 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x36, 0x08, 0x01, 0x1C,
+ 0x96, 0x02, 0x00, 0x08, 0x37, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x38, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x39,
+ 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04,
+ 0x00, 0x08, 0x3A, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3B, 0x4E, 0x4F, 0x96, 0x02, 0x00,
+ 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3C, 0x08, 0x01,
+ 0x1C, 0x96, 0x02, 0x00, 0x08, 0x3D, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02,
+ 0x00, 0x08, 0x04, 0x4E, 0x96, 0x04, 0x00, 0x08, 0x3E, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
+ 0x3F, 0x4E, 0x4F, 0x96, 0x02, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96,
+ 0x04, 0x00, 0x08, 0x40, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x41, 0x4E, 0x4F, 0x96, 0x03,
+ 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x43, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x42,
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02,
0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08,
- 0x43, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x42, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x31, 0x1C, 0x96,
+ 0x45, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x44, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96,
0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02,
- 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x45, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x44, 0x07, 0x03,
- 0x00, 0x00, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
- 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x47, 0x4E,
- 0x96, 0x09, 0x00, 0x08, 0x46, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x31, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x48, 0x8E,
+ 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x47, 0x4E, 0x96, 0x09, 0x00, 0x08, 0x46, 0x07, 0x03,
+ 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08,
+ 0x11, 0x52, 0x17, 0x96, 0x03, 0x00, 0x02, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x49, 0x4E,
+ 0x96, 0x09, 0x00, 0x08, 0x48, 0x07, 0x03, 0x00, 0x00, 0x00, 0x08, 0x33, 0x1C, 0x96, 0x02, 0x00,
+ 0x08, 0x04, 0x4E, 0x96, 0x02, 0x00, 0x08, 0x11, 0x52, 0x17, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x8E,
0x0B, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00,
- 0x08, 0x49, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4A, 0x08, 0x49,
+ 0x08, 0x4B, 0x1C, 0x12, 0x9D, 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4C, 0x08, 0x4B,
0x1C, 0x47, 0x96, 0x07, 0x00, 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00,
- 0x08, 0x48, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x49, 0x1C, 0x12, 0x9D,
- 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4B, 0x08, 0x49, 0x1C, 0x47, 0x96, 0x07, 0x00,
- 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x48, 0x52, 0x17, 0x1D,
+ 0x08, 0x4A, 0x52, 0x17, 0x1D, 0x96, 0x02, 0x00, 0x08, 0x2F, 0x8E, 0x0B, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x27, 0x00, 0x96, 0x02, 0x00, 0x08, 0x4B, 0x1C, 0x12, 0x9D,
+ 0x02, 0x00, 0x1B, 0x00, 0x96, 0x04, 0x00, 0x08, 0x4D, 0x08, 0x4B, 0x1C, 0x47, 0x96, 0x07, 0x00,
+ 0x07, 0x01, 0x00, 0x00, 0x00, 0x08, 0x01, 0x1C, 0x96, 0x02, 0x00, 0x08, 0x4A, 0x52, 0x17, 0x1D,
0x00
};
diff --git a/test/swfdec_test_socket.c b/test/swfdec_test_socket.c
index 557a649..087c67c 100644
--- a/test/swfdec_test_socket.c
+++ b/test/swfdec_test_socket.c
@@ -168,6 +168,18 @@ swfdec_test_socket_close_as (SwfdecAsContext *cx, SwfdecAsObject *object, guint
swfdec_test_socket_do_close (sock, TRUE);
}
+SWFDEC_TEST_FUNCTION ("Socket_get_closed", swfdec_test_socket_get_closed, 0)
+void
+swfdec_test_socket_get_closed (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc,
+ SwfdecAsValue *argv, SwfdecAsValue *retval)
+{
+ SwfdecTestSocket *sock;
+
+ SWFDEC_AS_CHECK (SWFDEC_TYPE_TEST_SOCKET, &sock, "");
+
+ SWFDEC_AS_VALUE_SET_BOOLEAN (retval, sock->plugin == NULL);
+}
+
static void
swfdec_test_socket_plugin_send (SwfdecTestPluginSocket *plugin, unsigned char *data,
unsigned long length)
commit 0de39570095b2431503a50b8fc537cee53ee64ae
Author: Benjamin Otte <otte at gnome.org>
Date: Tue Feb 12 13:31:18 2008 +0100
advance as long as we're at byte 0
diff --git a/test/swfdec_test_plugin.c b/test/swfdec_test_plugin.c
index dcc5d98..6394856 100644
--- a/test/swfdec_test_plugin.c
+++ b/test/swfdec_test_plugin.c
@@ -145,5 +145,6 @@ swfdec_test_plugin_swfdec_new (SwfdecTestPlugin *plugin)
url = swfdec_url_new_from_input (plugin->filename);
swfdec_player_set_url (player, url);
swfdec_url_free (url);
- swfdec_player_advance (player, 0);
+ while (swfdec_player_get_next_event (player) == 0)
+ swfdec_player_advance (player, 0);
}
commit 95006e06d2cc9bc20c410c54399b5f280495cc31
Author: Benjamin Otte <otte at gnome.org>
Date: Tue Feb 12 10:41:54 2008 +0100
make StreamTargetClass.parse return a boolean
TRUE = parsed stuff, please call this function again
FALSE = done parsing
So FALSE is the same as the behavior was previously. All functions were made to
use it.
TRUE is only used by NetStream so far, which returns TRUE after parsing an
initial video/audio packet, after which it exits to allow the plugin finding
algorithms to find the right plugin. Tested to work with Youtube.
diff --git a/swfdec/swfdec_flv_decoder.c b/swfdec/swfdec_flv_decoder.c
index 9652e90..35d9760 100644
--- a/swfdec/swfdec_flv_decoder.c
+++ b/swfdec/swfdec_flv_decoder.c
@@ -254,6 +254,7 @@ swfdec_flv_decoder_parse_video_tag (SwfdecFlvDecoder *flv, SwfdecBits *bits, gui
if (flv->video->len == 0) {
g_array_append_val (flv->video, tag);
swfdec_player_use_video_codec (SWFDEC_DECODER (flv)->player, tag.format);
+ return SWFDEC_STATUS_INIT;
} else if (g_array_index (flv->video, SwfdecFlvVideoTag,
flv->video->len - 1).timestamp < tag.timestamp) {
g_array_append_val (flv->video, tag);
@@ -292,6 +293,7 @@ swfdec_flv_decoder_parse_audio_tag (SwfdecFlvDecoder *flv, SwfdecBits *bits, gui
if (flv->audio->len == 0) {
g_array_append_val (flv->audio, tag);
swfdec_player_use_audio_codec (SWFDEC_DECODER (flv)->player, tag.format, tag.original_format);
+ return SWFDEC_STATUS_INIT;
} else if (g_array_index (flv->audio, SwfdecFlvAudioTag,
flv->audio->len - 1).timestamp < tag.timestamp) {
g_array_append_val (flv->audio, tag);
diff --git a/swfdec/swfdec_load_object.c b/swfdec/swfdec_load_object.c
index d18a372..1bb1eba 100644
--- a/swfdec/swfdec_load_object.c
+++ b/swfdec/swfdec_load_object.c
@@ -39,7 +39,7 @@ swfdec_load_object_stream_target_get_player (SwfdecStreamTarget *target)
return SWFDEC_PLAYER (SWFDEC_LOAD_OBJECT (target)->target->context);
}
-static void
+static gboolean
swfdec_load_object_stream_target_parse (SwfdecStreamTarget *target,
SwfdecStream *stream)
{
@@ -52,6 +52,7 @@ swfdec_load_object_stream_target_parse (SwfdecStreamTarget *target,
swfdec_loader_get_loaded (loader), swfdec_loader_get_size (loader));
swfdec_sandbox_unuse (load_object->sandbox);
}
+ return FALSE;
}
static void
diff --git a/swfdec/swfdec_net_stream.c b/swfdec/swfdec_net_stream.c
index 6798c53..b2291e1 100644
--- a/swfdec/swfdec_net_stream.c
+++ b/swfdec/swfdec_net_stream.c
@@ -258,7 +258,7 @@ swfdec_net_stream_stream_target_recheck (SwfdecNetStream *stream)
swfdec_net_stream_update_playing (stream);
}
-static void
+static gboolean
swfdec_net_stream_stream_target_parse (SwfdecStreamTarget *target,
SwfdecStream *stream)
{
@@ -283,10 +283,14 @@ swfdec_net_stream_stream_target_parse (SwfdecStreamTarget *target,
break;
status &= ~SWFDEC_STATUS_NEEDBITS;
status |= swfdec_decoder_parse (SWFDEC_DECODER (ns->flvdecoder), buffer);
- } while ((status & (SWFDEC_STATUS_ERROR | SWFDEC_STATUS_EOF)) == 0);
+ } while ((status & (SWFDEC_STATUS_ERROR | SWFDEC_STATUS_EOF | SWFDEC_STATUS_INIT)) == 0);
+
+ if (status & SWFDEC_STATUS_INIT)
+ return TRUE;
if (status & SWFDEC_STATUS_IMAGE)
swfdec_net_stream_stream_target_recheck (ns);
+ return FALSE;
}
static void
diff --git a/swfdec/swfdec_resource.c b/swfdec/swfdec_resource.c
index 8bb27ae..ed64f7d 100644
--- a/swfdec/swfdec_resource.c
+++ b/swfdec/swfdec_resource.c
@@ -247,7 +247,7 @@ swfdec_resource_stream_target_open (SwfdecStreamTarget *target, SwfdecStream *st
instance->state = SWFDEC_RESOURCE_OPENED;
}
-static void
+static gboolean
swfdec_resource_stream_target_parse (SwfdecStreamTarget *target, SwfdecStream *stream)
{
SwfdecLoader *loader = SWFDEC_LOADER (stream);
@@ -261,7 +261,7 @@ swfdec_resource_stream_target_parse (SwfdecStreamTarget *target, SwfdecStream *s
queue = swfdec_stream_get_queue (stream);
if (dec == NULL && swfdec_buffer_queue_get_offset (queue) == 0) {
if (swfdec_buffer_queue_get_depth (queue) < SWFDEC_DECODER_DETECT_LENGTH)
- return;
+ return FALSE;
buffer = swfdec_buffer_queue_peek (queue, 4);
dec =
swfdec_decoder_new (SWFDEC_PLAYER (SWFDEC_AS_OBJECT (resource)->context), buffer);
@@ -300,7 +300,7 @@ swfdec_resource_stream_target_parse (SwfdecStreamTarget *target, SwfdecStream *s
if (status & SWFDEC_STATUS_ERROR) {
SWFDEC_ERROR ("parsing error");
swfdec_stream_set_target (SWFDEC_STREAM (loader), NULL);
- return;
+ return FALSE;
}
if ((status & SWFDEC_STATUS_INIT)) {
if (SWFDEC_IS_SWF_DECODER (dec))
@@ -314,8 +314,9 @@ swfdec_resource_stream_target_parse (SwfdecStreamTarget *target, SwfdecStream *s
swfdec_resource_stream_target_image (resource);
swfdec_resource_emit_signal (resource, SWFDEC_AS_STR_onLoadProgress, TRUE, NULL, 0);
if (status & SWFDEC_STATUS_EOF)
- return;
+ return FALSE;
}
+ return FALSE;
}
static void
diff --git a/swfdec/swfdec_stream.c b/swfdec/swfdec_stream.c
index 11be333..a692099 100644
--- a/swfdec/swfdec_stream.c
+++ b/swfdec/swfdec_stream.c
@@ -188,6 +188,8 @@ swfdec_stream_get_queue (SwfdecStream *stream)
return stream->priv->queue;
}
+static void swfdec_stream_queue_processing (SwfdecStream *stream);
+
static void
swfdec_stream_process (gpointer streamp, gpointer unused)
{
@@ -210,15 +212,24 @@ swfdec_stream_process (gpointer streamp, gpointer unused)
priv->processed_state = SWFDEC_STREAM_STATE_OPEN;
swfdec_stream_target_open (priv->target, stream);
} else if (priv->processed_state == SWFDEC_STREAM_STATE_OPEN) {
- swfdec_stream_target_parse (priv->target, stream);
- priv->processed_state = SWFDEC_STREAM_STATE_CLOSED;
- swfdec_stream_target_close (priv->target, stream);
+ if (swfdec_stream_target_parse (priv->target, stream)) {
+ g_print ("requeue!\n");
+ swfdec_stream_queue_processing (stream);
+ goto out;
+ } else {
+ priv->processed_state = SWFDEC_STREAM_STATE_CLOSED;
+ swfdec_stream_target_close (priv->target, stream);
+ }
}
}
if (priv->processed_state == SWFDEC_STREAM_STATE_OPEN) {
- swfdec_stream_target_parse (priv->target, stream);
+ if (swfdec_stream_target_parse (priv->target, stream)) {
+ g_print ("requeue!\n");
+ swfdec_stream_queue_processing (stream);
+ }
}
}
+out:
g_object_unref (stream);
}
diff --git a/swfdec/swfdec_stream_target.c b/swfdec/swfdec_stream_target.c
index a5d7184..4b96ef0 100644
--- a/swfdec/swfdec_stream_target.c
+++ b/swfdec/swfdec_stream_target.c
@@ -89,19 +89,24 @@ swfdec_stream_target_open (SwfdecStreamTarget *target, SwfdecStream *stream)
iface->open (target, stream);
}
-void
+gboolean
swfdec_stream_target_parse (SwfdecStreamTarget *target, SwfdecStream *stream)
{
SwfdecStreamTargetInterface *iface;
+ gboolean call_again;
- g_return_if_fail (SWFDEC_IS_STREAM_TARGET (target));
- g_return_if_fail (SWFDEC_IS_STREAM (stream));
+ g_return_val_if_fail (SWFDEC_IS_STREAM_TARGET (target), FALSE);
+ g_return_val_if_fail (SWFDEC_IS_STREAM (stream), FALSE);
SWFDEC_LOG ("parsing %s", swfdec_stream_describe (stream));
iface = SWFDEC_STREAM_TARGET_GET_INTERFACE (target);
if (iface->parse)
- iface->parse (target, stream);
+ call_again = iface->parse (target, stream);
+ else
+ call_again = FALSE;
+
+ return call_again;
}
void
diff --git a/swfdec/swfdec_stream_target.h b/swfdec/swfdec_stream_target.h
index 9f0ddff..5b50bb2 100644
--- a/swfdec/swfdec_stream_target.h
+++ b/swfdec/swfdec_stream_target.h
@@ -41,7 +41,7 @@ struct _SwfdecStreamTargetInterface {
/* optional vfuncs */
void (* open) (SwfdecStreamTarget * target,
SwfdecStream * stream);
- void (* parse) (SwfdecStreamTarget * target,
+ gboolean (* parse) (SwfdecStreamTarget * target,
SwfdecStream * stream);
void (* close) (SwfdecStreamTarget * target,
SwfdecStream * stream);
@@ -54,7 +54,7 @@ GType swfdec_stream_target_get_type (void) G_GNUC_CONST;
SwfdecPlayer * swfdec_stream_target_get_player (SwfdecStreamTarget * target);
void swfdec_stream_target_open (SwfdecStreamTarget * target,
SwfdecStream * stream);
-void swfdec_stream_target_parse (SwfdecStreamTarget * target,
+gboolean swfdec_stream_target_parse (SwfdecStreamTarget * target,
SwfdecStream * stream);
void swfdec_stream_target_close (SwfdecStreamTarget * target,
SwfdecStream * stream);
diff --git a/swfdec/swfdec_xml_socket.c b/swfdec/swfdec_xml_socket.c
index 886a042..424726b 100644
--- a/swfdec/swfdec_xml_socket.c
+++ b/swfdec/swfdec_xml_socket.c
@@ -80,7 +80,7 @@ swfdec_xml_socket_stream_target_error (SwfdecStreamTarget *target,
swfdec_xml_socket_ensure_closed (xml);
}
-static void
+static gboolean
swfdec_xml_socket_stream_target_parse (SwfdecStreamTarget *target,
SwfdecStream *stream)
{
@@ -114,6 +114,7 @@ swfdec_xml_socket_stream_target_parse (SwfdecStreamTarget *target,
}
}
}
+ return FALSE;
}
static void
commit 8aa621a7f8b3ceb04b6c640c4653898e95dba32a
Author: Benjamin Otte <otte at gnome.org>
Date: Mon Feb 11 18:25:35 2008 +0100
emit debug messages about missing plugins
diff --git a/player/swfplay.c b/player/swfplay.c
index 1db23f3..c0288a1 100644
--- a/player/swfplay.c
+++ b/player/swfplay.c
@@ -146,6 +146,8 @@ main (int argc, char *argv[])
url = swfdec_url_new_from_input (argv[1]);
swfdec_player_set_url (player, url);
set_title (GTK_WINDOW (window), url);
+ swfdec_gtk_player_set_missing_plugins_window (SWFDEC_GTK_PLAYER (player),
+ window->window);
swfdec_url_free (url);
swfdec_gtk_player_set_playing (SWFDEC_GTK_PLAYER (player), TRUE);
diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index fce0b28..b4f10bc 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -1283,8 +1283,8 @@ swfdec_player_emit_signals (SwfdecPlayer *player)
/* emit missing-plugin signal for newly discovered plugins */
if (priv->missing_plugins) {
GSList *swalk;
- guint i = 0;
- char **details = g_new (char *, g_slist_length (priv->missing_plugins) + 1);
+ guint i = 0, n_plugins = g_slist_length (priv->missing_plugins);
+ char **details = g_new (char *, n_plugins + 1);
for (swalk = priv->missing_plugins; swalk; swalk = swalk->next) {
details[i++] = swalk->data;
@@ -1292,6 +1292,7 @@ swfdec_player_emit_signals (SwfdecPlayer *player)
details[i] = NULL;
g_slist_free (priv->missing_plugins);
priv->missing_plugins = NULL;
+ SWFDEC_INFO ("emitting missing plugins signal for %u plugins", n_plugins);
g_signal_emit (player, signals[MISSING_PLUGINS], 0, details);
g_strfreev (details);
}
@@ -2253,6 +2254,7 @@ swfdec_player_use_audio_codec (SwfdecPlayer *player, guint codec,
return;
}
+ SWFDEC_INFO ("missing audio plugin: %s\n", detail);
priv->missing_plugins = g_slist_prepend (priv->missing_plugins, detail);
}
@@ -2274,6 +2276,7 @@ swfdec_player_use_video_codec (SwfdecPlayer *player, guint codec)
return;
}
+ SWFDEC_INFO ("missing video plugin: %s\n", detail);
priv->missing_plugins = g_slist_prepend (priv->missing_plugins, detail);
}
More information about the Swfdec-commits
mailing list