Linux bluetooth development
 help / color / mirror / Atom feed
* BUG in rfcomm_sock_getsockopt+0x128/0x200
From: Fabio Rossi @ 2013-11-01 13:17 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth

I'm using the latest wireless-testing.git and I have found a problem, I get the 
following kernel trace:

BUG: unable to handle kernel paging request at 
00000009dd50350a                                                                                                                     
IP: [<ffffffff815b6768>] 
rfcomm_sock_getsockopt+0x128/0x200                                                                                                                         
PGD 
0                                                                                                                                                                               
Oops: 0000 [#1] SMP 
Modules linked in: vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) fglrx(PO) 
ath5k ath mac80211 cfg80211
CPU: 2 PID: 1475 Comm: bluetoothd Tainted: P           O 3.12.0-rc5-wl #4
Hardware name: System manufacturer System Product Name/P6T DELUXE V2, BIOS 
1202    12/22/2010
task: ffff88032e9ce360 ti: ffff880330654000 task.ti: ffff880330654000
RIP: 0010:[<ffffffff815b6768>]  [<ffffffff815b6768>] 
rfcomm_sock_getsockopt+0x128/0x200
RSP: 0018:ffff880330655ed8  EFLAGS: 00010246
RAX: 00000009dd503502 RBX: 0000000000000003 RCX: 00007fff7b30e298
RDX: 0000000000000003 RSI: 0000000000000012 RDI: ffff8800bad88f00
RBP: ffff880330655f28 R08: 00007fff7b30e29c R09: ffff8803306734d8
R10: 00007fff7b30e298 R11: 0000000000000202 R12: ffff8800ba83ec00
R13: 00007fff7b30e298 R14: 0000000000000003 R15: 00007fff7b30e29c
FS:  00007f31c1d9d700(0000) GS:ffff88033fc80000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000009dd50350a CR3: 000000033048a000 CR4: 00000000000007e0
Stack:
 ffff880330655f28 ffffffff815b5e2f ffff880330655f18 0002ffff81107bb6
 0000000600000000 ffff8800bad88f00 0000000000000012 00007fff7b30e298
 0000000000000003 00007fff7b30e29c ffff880330655f78 ffffffff814c6260
Call Trace:
 [<ffffffff815b5e2f>] ? rfcomm_sock_setsockopt+0x5f/0x190
 [<ffffffff814c6260>] SyS_getsockopt+0x60/0xb0
 [<ffffffff815e5ba2>] system_call_fastpath+0x16/0x1b
Code: 02 00 00 00 0f 47 d0 4c 89 ef e8 94 f0 cc ff 83 f8 01 19 c9 f7 d1 83 e1 
f2 e9 4b ff ff ff 0f 1f 44 00 00 49 8b 84 24 70 02 00 00 <4c> 8b 70 08 4c 89 c0 
e8 4c f6 cc ff 85 c0 49 89 d7 b9 f2 ff ff 
RIP  [<ffffffff815b6768>] rfcomm_sock_getsockopt+0x128/0x200
 RSP <ffff880330655ed8>
CR2: 00000009dd50350a
---[ end trace 6e62d73375e99d69 ]---

After bisecting the problem I found the following bad commit:

commit 94a86df01082557e2de45865e538d7fb6c46231c
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Sun Oct 13 10:34:02 2013 -0700

    Bluetooth: Store RFCOMM address information in its own socket structure
    
    The address information of RFCOMM sockets should be stored in its
    own socket structure. Trying to generalize them is not helpful since
    different transports have different address types.
    
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>

Fabio

^ permalink raw reply

* Re: [PATCH] android/client: Fix pin reply call when pin argument missing in cmd
From: Johan Hedberg @ 2013-11-01 13:11 UTC (permalink / raw)
  To: Ravi kumar Veeramally; +Cc: linux-bluetooth
In-Reply-To: <1383308405-17782-1-git-send-email-ravikumar.veeramally@linux.intel.com>

Hi Ravi,

On Fri, Nov 01, 2013, Ravi kumar Veeramally wrote:
> If condition checks number of arguments properly but still executes
> EXEC command. It should display error message and return.
> ---
>  android/client/if-bt.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/android/client/if-bt.c b/android/client/if-bt.c
> index 3d97458..2c3cc4a 100644
> --- a/android/client/if-bt.c
> +++ b/android/client/if-bt.c
> @@ -719,12 +719,15 @@ static void pin_reply_p(int argc, const char **argv)
>  	RETURN_IF_NULL(if_bluetooth);
>  	VERIFY_ADDR_ARG(2, &addr);
>  
> -	if (argc > 3) {
> -		accept = 1;
> -		pin_len = strlen(argv[3]);
> -		memcpy(pin.pin, argv[3], pin_len);
> +	if (argc != 4) {
> +		haltest_error("Usage <address> <pin>\n");
> +		return;
>  	}
>  
> +	accept = 1;
> +	pin_len = strlen(argv[3]);
> +	memcpy(pin.pin, argv[3], pin_len);
> +
>  	EXEC(if_bluetooth->pin_reply, &addr, accept, pin_len, &pin);

It seems to me that the original code might have been trying to do (if
it hadn't been broken like it now is) a negative pin reply in the case
that no parameter was given. At least I don't see any other code trying
to call if_bluetooth->pin_reply with accept=1 in haltest. So I'd
consider fixing that instead.

Johan

^ permalink raw reply

* [PATCH BlueZ 4/4] android/hid: Add handling of HAL_EV_HID_INFO
From: Luiz Augusto von Dentz @ 2013-11-01 13:08 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383311321-28429-1-git-send-email-luiz.dentz@gmail.com>

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

---
 android/hid.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/android/hid.c b/android/hid.c
index 57ad5e4..6e6f606 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -58,6 +58,7 @@ static GSList *devices = NULL;
 struct hid_device {
 	bdaddr_t	dst;
 	uint8_t		state;
+	uint8_t		subclass;
 	uint16_t	vendor;
 	uint16_t	product;
 	uint16_t	version;
@@ -260,6 +261,28 @@ static gboolean ctrl_watch_cb(GIOChannel *chan, GIOCondition cond,
 	return FALSE;
 }
 
+static void bt_hid_set_info(struct hid_device *dev)
+{
+	struct hal_ev_hid_info ev;
+
+	DBG("");
+
+	bdaddr2android(&dev->dst, ev.bdaddr);
+	ev.attr = 0; /* TODO: Check what is this field */
+	ev.subclass = dev->subclass;
+	ev.app_id = 0; /* TODO: Check what is this field */
+	ev.vendor = dev->vendor;
+	ev.product = dev->product;
+	ev.version = dev->version;
+	ev.country = dev->country;
+	ev.descr_len = dev->rd_size;
+	memset(ev.descr, 0, sizeof(ev.descr));
+	memcpy(ev.descr, dev->rd_data, ev.descr_len);
+
+	ipc_send(notification_io, HAL_SERVICE_ID_HIDHOST, HAL_EV_HID_INFO,
+							sizeof(ev), &ev, -1);
+}
+
 static int uhid_create(struct hid_device *dev)
 {
 	GIOCondition cond = G_IO_IN | G_IO_ERR | G_IO_NVAL;
@@ -295,6 +318,8 @@ static int uhid_create(struct hid_device *dev)
 	dev->uhid_watch_id = g_io_add_watch(io, cond, uhid_event_cb, dev);
 	g_io_channel_unref(io);
 
+	bt_hid_set_info(dev);
+
 	return 0;
 }
 
@@ -412,6 +437,10 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 		if (data)
 			dev->country = data->val.uint8;
 
+		data = sdp_data_get(rec, SDP_ATTR_HID_DEVICE_SUBCLASS);
+		if (data)
+			dev->subclass = data->val.uint8;
+
 		data = sdp_data_get(rec, SDP_ATTR_HID_DESCRIPTOR_LIST);
 		if (data) {
 			if (!SDP_IS_SEQ(data->dtd))
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH BlueZ 3/4] android/hal-hidhost: Add implemention of .hid_info_cb
From: Luiz Augusto von Dentz @ 2013-11-01 13:08 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383311321-28429-1-git-send-email-luiz.dentz@gmail.com>

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

---
 android/hal-hidhost.c | 22 ++++++++++++++++++++++
 android/hal-msg.h     | 14 ++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/android/hal-hidhost.c b/android/hal-hidhost.c
index e148dc2..c20c785 100644
--- a/android/hal-hidhost.c
+++ b/android/hal-hidhost.c
@@ -40,6 +40,25 @@ static void handle_conn_state(void *buf)
 								ev->state);
 }
 
+static void handle_info(void *buf)
+{
+	struct hal_ev_hid_info *ev = buf;
+	bthh_hid_info_t info;
+
+	info.attr_mask = ev->attr;
+	info.sub_class = ev->subclass;
+	info.app_id = ev->app_id;
+	info.vendor_id = ev->vendor;
+	info.product_id = ev->product;
+	info.version = ev->version;
+	info.ctry_code = ev->country;
+	info.dl_len = ev->descr_len;
+	memcpy(info.dsc_list, ev->descr, info.dl_len);
+
+	if (bt_hh_cbacks->hid_info_cb)
+		bt_hh_cbacks->hid_info_cb((bt_bdaddr_t *) ev->bdaddr, info);
+}
+
 /* will be called from notification thread context */
 void bt_notify_hh(uint16_t opcode, void *buf, uint16_t len)
 {
@@ -50,6 +69,9 @@ void bt_notify_hh(uint16_t opcode, void *buf, uint16_t len)
 	case HAL_EV_HID_CONN_STATE:
 		handle_conn_state(buf);
 		break;
+	case HAL_EV_HID_INFO:
+		handle_info(buf);
+		break;
 	default:
 		DBG("Unhandled callback opcode=0x%x", opcode);
 		break;
diff --git a/android/hal-msg.h b/android/hal-msg.h
index 8a344d8..9276a2f 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -439,6 +439,20 @@ struct hal_ev_hid_conn_state {
 	uint8_t state;
 } __attribute__((packed));
 
+#define HAL_EV_HID_INFO			0x82
+struct hal_ev_hid_info {
+	uint8_t bdaddr[6];
+	uint8_t attr;
+	uint8_t subclass;
+	uint8_t app_id;
+	uint16_t vendor;
+	uint16_t product;
+	uint16_t version;
+	uint8_t country;
+	uint16_t descr_len;
+	uint8_t descr[884];
+} __attribute__((packed));
+
 #define HAL_EV_AV_CONNECTION_STATE	0x81
 struct hal_ev_av_connection_state {
 	uint8_t state;
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH BlueZ 2/4] android/hid: Fix passing vendor id as version to uHID
From: Luiz Augusto von Dentz @ 2013-11-01 13:08 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383311321-28429-1-git-send-email-luiz.dentz@gmail.com>

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

---
 android/hid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/android/hid.c b/android/hid.c
index bbdc66a..57ad5e4 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -278,7 +278,7 @@ static int uhid_create(struct hid_device *dev)
 	ev.u.create.bus = BUS_BLUETOOTH;
 	ev.u.create.vendor = dev->vendor;
 	ev.u.create.product = dev->product;
-	ev.u.create.version = dev->vendor;
+	ev.u.create.version = dev->version;
 	ev.u.create.country = dev->country;
 	ev.u.create.rd_size = dev->rd_size;
 	ev.u.create.rd_data = dev->rd_data;
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH BlueZ 1/4] android/hid: Rename hdev vars to dev
From: Luiz Augusto von Dentz @ 2013-11-01 13:08 UTC (permalink / raw)
  To: linux-bluetooth

From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

---
 android/hid.c | 248 +++++++++++++++++++++++++++++-----------------------------
 1 file changed, 124 insertions(+), 124 deletions(-)

diff --git a/android/hid.c b/android/hid.c
index f576548..bbdc66a 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -74,10 +74,10 @@ struct hid_device {
 
 static int device_cmp(gconstpointer s, gconstpointer user_data)
 {
-	const struct hid_device *hdev = s;
+	const struct hid_device *dev = s;
 	const bdaddr_t *dst = user_data;
 
-	return bacmp(&hdev->dst, dst);
+	return bacmp(&dev->dst, dst);
 }
 
 static void uhid_destroy(int fd)
@@ -95,38 +95,38 @@ static void uhid_destroy(int fd)
 	close(fd);
 }
 
-static void hid_device_free(struct hid_device *hdev)
+static void hid_device_free(struct hid_device *dev)
 {
-	if (hdev->ctrl_watch > 0)
-		g_source_remove(hdev->ctrl_watch);
+	if (dev->ctrl_watch > 0)
+		g_source_remove(dev->ctrl_watch);
 
-	if (hdev->intr_watch > 0)
-		g_source_remove(hdev->intr_watch);
+	if (dev->intr_watch > 0)
+		g_source_remove(dev->intr_watch);
 
-	if (hdev->intr_io)
-		g_io_channel_unref(hdev->intr_io);
+	if (dev->intr_io)
+		g_io_channel_unref(dev->intr_io);
 
-	if (hdev->ctrl_io)
-		g_io_channel_unref(hdev->ctrl_io);
+	if (dev->ctrl_io)
+		g_io_channel_unref(dev->ctrl_io);
 
-	if (hdev->uhid_watch_id) {
-		g_source_remove(hdev->uhid_watch_id);
-		hdev->uhid_watch_id = 0;
+	if (dev->uhid_watch_id) {
+		g_source_remove(dev->uhid_watch_id);
+		dev->uhid_watch_id = 0;
 	}
 
-	if (hdev->uhid_fd > 0)
-		uhid_destroy(hdev->uhid_fd);
+	if (dev->uhid_fd > 0)
+		uhid_destroy(dev->uhid_fd);
 
-	g_free(hdev->rd_data);
+	g_free(dev->rd_data);
 
-	devices = g_slist_remove(devices, hdev);
-	g_free(hdev);
+	devices = g_slist_remove(devices, dev);
+	g_free(dev);
 }
 
 static gboolean uhid_event_cb(GIOChannel *io, GIOCondition cond,
 							gpointer user_data)
 {
-	struct hid_device *hdev = user_data;
+	struct hid_device *dev = user_data;
 	struct uhid_event ev;
 	ssize_t bread;
 	int fd;
@@ -151,19 +151,19 @@ static gboolean uhid_event_cb(GIOChannel *io, GIOCondition cond,
 	return TRUE;
 
 failed:
-	hdev->uhid_watch_id = 0;
+	dev->uhid_watch_id = 0;
 	return FALSE;
 }
 
 static gboolean intr_io_watch_cb(GIOChannel *chan, gpointer data)
 {
-	struct hid_device *hdev = data;
+	struct hid_device *dev = data;
 	uint8_t buf[UHID_DATA_MAX];
 	struct uhid_event ev;
 	int fd, bread;
 
 	/* Wait uHID if not ready */
-	if (hdev->uhid_fd < 0)
+	if (dev->uhid_fd < 0)
 		return TRUE;
 
 	fd = g_io_channel_unix_get_fd(chan);
@@ -183,26 +183,26 @@ static gboolean intr_io_watch_cb(GIOChannel *chan, gpointer data)
 	ev.u.input.size = bread - 1;
 	memcpy(ev.u.input.data, &buf[1], ev.u.input.size);
 
-	if (write(hdev->uhid_fd, &ev, sizeof(ev)) < 0)
+	if (write(dev->uhid_fd, &ev, sizeof(ev)) < 0)
 		DBG("write: %s (%d)", strerror(errno), errno);
 
 	return TRUE;
 }
 
-static void bt_hid_set_state(struct hid_device *hdev, uint8_t state)
+static void bt_hid_set_state(struct hid_device *dev, uint8_t state)
 {
 	struct hal_ev_hid_conn_state ev;
 	char address[18];
 
-	if (hdev->state == state)
+	if (dev->state == state)
 		return;
 
-	hdev->state = state;
+	dev->state = state;
 
-	ba2str(&hdev->dst, address);
+	ba2str(&dev->dst, address);
 	DBG("device %s state %u", address, state);
 
-	bdaddr2android(&hdev->dst, ev.bdaddr);
+	bdaddr2android(&dev->dst, ev.bdaddr);
 	ev.state = state;
 
 	ipc_send(notification_io, HAL_SERVICE_ID_HIDHOST,
@@ -212,7 +212,7 @@ static void bt_hid_set_state(struct hid_device *hdev, uint8_t state)
 static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond,
 								gpointer data)
 {
-	struct hid_device *hdev = data;
+	struct hid_device *dev = data;
 
 	if (cond & G_IO_IN)
 		return intr_io_watch_cb(chan, data);
@@ -220,19 +220,19 @@ static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond,
 	/* Checking for ctrl_watch avoids a double g_io_channel_shutdown since
 	 * it's likely that ctrl_watch_cb has been queued for dispatching in
 	 * this mainloop iteration */
-	if ((cond & (G_IO_HUP | G_IO_ERR)) && hdev->ctrl_watch)
+	if ((cond & (G_IO_HUP | G_IO_ERR)) && dev->ctrl_watch)
 		g_io_channel_shutdown(chan, TRUE, NULL);
 
-	hdev->intr_watch = 0;
+	dev->intr_watch = 0;
 
-	if (hdev->intr_io) {
-		g_io_channel_unref(hdev->intr_io);
-		hdev->intr_io = NULL;
+	if (dev->intr_io) {
+		g_io_channel_unref(dev->intr_io);
+		dev->intr_io = NULL;
 	}
 
 	/* Close control channel */
-	if (hdev->ctrl_io && !(cond & G_IO_NVAL))
-		g_io_channel_shutdown(hdev->ctrl_io, TRUE, NULL);
+	if (dev->ctrl_io && !(cond & G_IO_NVAL))
+		g_io_channel_shutdown(dev->ctrl_io, TRUE, NULL);
 
 	return FALSE;
 }
@@ -240,34 +240,34 @@ static gboolean intr_watch_cb(GIOChannel *chan, GIOCondition cond,
 static gboolean ctrl_watch_cb(GIOChannel *chan, GIOCondition cond,
 								gpointer data)
 {
-	struct hid_device *hdev = data;
+	struct hid_device *dev = data;
 	char address[18];
 
-	ba2str(&hdev->dst, address);
-	bt_hid_set_state(hdev, HAL_HID_STATE_DISCONNECTED);
+	ba2str(&dev->dst, address);
+	bt_hid_set_state(dev, HAL_HID_STATE_DISCONNECTED);
 
 	/* Checking for intr_watch avoids a double g_io_channel_shutdown since
 	 * it's likely that intr_watch_cb has been queued for dispatching in
 	 * this mainloop iteration */
-	if ((cond & (G_IO_HUP | G_IO_ERR)) && hdev->intr_watch)
+	if ((cond & (G_IO_HUP | G_IO_ERR)) && dev->intr_watch)
 		g_io_channel_shutdown(chan, TRUE, NULL);
 
-	if (hdev->intr_io && !(cond & G_IO_NVAL))
-		g_io_channel_shutdown(hdev->intr_io, TRUE, NULL);
+	if (dev->intr_io && !(cond & G_IO_NVAL))
+		g_io_channel_shutdown(dev->intr_io, TRUE, NULL);
 
-	hid_device_free(hdev);
+	hid_device_free(dev);
 
 	return FALSE;
 }
 
-static int uhid_create(struct hid_device *hdev)
+static int uhid_create(struct hid_device *dev)
 {
 	GIOCondition cond = G_IO_IN | G_IO_ERR | G_IO_NVAL;
 	GIOChannel *io;
 	struct uhid_event ev;
 
-	hdev->uhid_fd = open(UHID_DEVICE_FILE, O_RDWR | O_CLOEXEC);
-	if (hdev->uhid_fd < 0) {
+	dev->uhid_fd = open(UHID_DEVICE_FILE, O_RDWR | O_CLOEXEC);
+	if (dev->uhid_fd < 0) {
 		error("Failed to open uHID device: %s", strerror(errno));
 		return -errno;
 	}
@@ -276,23 +276,23 @@ static int uhid_create(struct hid_device *hdev)
 	ev.type = UHID_CREATE;
 	strcpy((char *) ev.u.create.name, "bluez-input-device");
 	ev.u.create.bus = BUS_BLUETOOTH;
-	ev.u.create.vendor = hdev->vendor;
-	ev.u.create.product = hdev->product;
-	ev.u.create.version = hdev->vendor;
-	ev.u.create.country = hdev->country;
-	ev.u.create.rd_size = hdev->rd_size;
-	ev.u.create.rd_data = hdev->rd_data;
-
-	if (write(hdev->uhid_fd, &ev, sizeof(ev)) < 0) {
+	ev.u.create.vendor = dev->vendor;
+	ev.u.create.product = dev->product;
+	ev.u.create.version = dev->vendor;
+	ev.u.create.country = dev->country;
+	ev.u.create.rd_size = dev->rd_size;
+	ev.u.create.rd_data = dev->rd_data;
+
+	if (write(dev->uhid_fd, &ev, sizeof(ev)) < 0) {
 		error("Failed to create uHID device: %s", strerror(errno));
-		close(hdev->uhid_fd);
-		hdev->uhid_fd = -1;
+		close(dev->uhid_fd);
+		dev->uhid_fd = -1;
 		return -errno;
 	}
 
-	io = g_io_channel_unix_new(hdev->uhid_fd);
+	io = g_io_channel_unix_new(dev->uhid_fd);
 	g_io_channel_set_encoding(io, NULL, NULL);
-	hdev->uhid_watch_id = g_io_add_watch(io, cond, uhid_event_cb, hdev);
+	dev->uhid_watch_id = g_io_add_watch(io, cond, uhid_event_cb, dev);
 	g_io_channel_unref(io);
 
 	return 0;
@@ -301,21 +301,21 @@ static int uhid_create(struct hid_device *hdev)
 static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 							gpointer user_data)
 {
-	struct hid_device *hdev = user_data;
+	struct hid_device *dev = user_data;
 
 	DBG("");
 
 	if (conn_err)
 		goto failed;
 
-	if (uhid_create(hdev) < 0)
+	if (uhid_create(dev) < 0)
 		goto failed;
 
-	hdev->intr_watch = g_io_add_watch(hdev->intr_io,
+	dev->intr_watch = g_io_add_watch(dev->intr_io,
 				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-				intr_watch_cb, hdev);
+				intr_watch_cb, dev);
 
-	bt_hid_set_state(hdev, HAL_HID_STATE_CONNECTED);
+	bt_hid_set_state(dev, HAL_HID_STATE_CONNECTED);
 
 	return;
 
@@ -324,58 +324,58 @@ failed:
 	 * control channel (if we only do unref GLib will close it only
 	 * after returning control to the mainloop */
 	if (!conn_err)
-		g_io_channel_shutdown(hdev->intr_io, FALSE, NULL);
+		g_io_channel_shutdown(dev->intr_io, FALSE, NULL);
 
-	g_io_channel_unref(hdev->intr_io);
-	hdev->intr_io = NULL;
+	g_io_channel_unref(dev->intr_io);
+	dev->intr_io = NULL;
 
-	if (hdev->ctrl_io) {
-		g_io_channel_unref(hdev->ctrl_io);
-		hdev->ctrl_io = NULL;
+	if (dev->ctrl_io) {
+		g_io_channel_unref(dev->ctrl_io);
+		dev->ctrl_io = NULL;
 	}
 }
 
 static void control_connect_cb(GIOChannel *chan, GError *conn_err,
 							gpointer user_data)
 {
-	struct hid_device *hdev = user_data;
+	struct hid_device *dev = user_data;
 	GError *err = NULL;
 	const bdaddr_t *src = bt_adapter_get_address();
 
 	DBG("");
 
 	if (conn_err) {
-		bt_hid_set_state(hdev, HAL_HID_STATE_DISCONNECTED);
+		bt_hid_set_state(dev, HAL_HID_STATE_DISCONNECTED);
 		error("%s", conn_err->message);
 		goto failed;
 	}
 
 	/* Connect to the HID interrupt channel */
-	hdev->intr_io = bt_io_connect(interrupt_connect_cb, hdev, NULL, &err,
+	dev->intr_io = bt_io_connect(interrupt_connect_cb, dev, NULL, &err,
 					BT_IO_OPT_SOURCE_BDADDR, src,
-					BT_IO_OPT_DEST_BDADDR, &hdev->dst,
+					BT_IO_OPT_DEST_BDADDR, &dev->dst,
 					BT_IO_OPT_PSM, L2CAP_PSM_HIDP_INTR,
 					BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
 					BT_IO_OPT_INVALID);
-	if (!hdev->intr_io) {
+	if (!dev->intr_io) {
 		error("%s", err->message);
 		g_error_free(err);
 		goto failed;
 	}
 
-	hdev->ctrl_watch = g_io_add_watch(hdev->ctrl_io,
+	dev->ctrl_watch = g_io_add_watch(dev->ctrl_io,
 					G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-					ctrl_watch_cb, hdev);
+					ctrl_watch_cb, dev);
 
 	return;
 
 failed:
-	hid_device_free(hdev);
+	hid_device_free(dev);
 }
 
 static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 {
-	struct hid_device *hdev = data;
+	struct hid_device *dev = data;
 	sdp_list_t *list;
 	GError *gerr = NULL;
 	const bdaddr_t *src = bt_adapter_get_address();
@@ -398,19 +398,19 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 
 		data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
 		if (data)
-			hdev->vendor = data->val.uint16;
+			dev->vendor = data->val.uint16;
 
 		data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
 		if (data)
-			hdev->product = data->val.uint16;
+			dev->product = data->val.uint16;
 
 		data = sdp_data_get(rec, SDP_ATTR_VERSION);
 		if (data)
-			hdev->version = data->val.uint16;
+			dev->version = data->val.uint16;
 
 		data = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
 		if (data)
-			hdev->country = data->val.uint8;
+			dev->country = data->val.uint8;
 
 		data = sdp_data_get(rec, SDP_ATTR_HID_DESCRIPTOR_LIST);
 		if (data) {
@@ -432,20 +432,20 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 			if (!data || !SDP_IS_TEXT_STR(data->dtd))
 				goto fail;
 
-			hdev->rd_size = data->unitSize;
-			hdev->rd_data = g_memdup(data->val.str, data->unitSize);
+			dev->rd_size = data->unitSize;
+			dev->rd_data = g_memdup(data->val.str, data->unitSize);
 		}
 	}
 
-	if (hdev->ctrl_io) {
-		if (uhid_create(hdev) < 0)
+	if (dev->ctrl_io) {
+		if (uhid_create(dev) < 0)
 			goto fail;
 		return;
 	}
 
-	hdev->ctrl_io = bt_io_connect(control_connect_cb, hdev, NULL, &gerr,
+	dev->ctrl_io = bt_io_connect(control_connect_cb, dev, NULL, &gerr,
 					BT_IO_OPT_SOURCE_BDADDR, src,
-					BT_IO_OPT_DEST_BDADDR, &hdev->dst,
+					BT_IO_OPT_DEST_BDADDR, &dev->dst,
 					BT_IO_OPT_PSM, L2CAP_PSM_HIDP_CTRL,
 					BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
 					BT_IO_OPT_INVALID);
@@ -458,13 +458,13 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 	return;
 
 fail:
-	bt_hid_set_state(hdev, HAL_HID_STATE_DISCONNECTED);
-	hid_device_free(hdev);
+	bt_hid_set_state(dev, HAL_HID_STATE_DISCONNECTED);
+	hid_device_free(dev);
 }
 
 static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 {
-	struct hid_device *hdev;
+	struct hid_device *dev;
 	char addr[18];
 	bdaddr_t dst;
 	GSList *l;
@@ -482,23 +482,23 @@ static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 	if (l)
 		return HAL_STATUS_FAILED;
 
-	hdev = g_new0(struct hid_device, 1);
-	bacpy(&hdev->dst, &dst);
-	hdev->uhid_fd = -1;
+	dev = g_new0(struct hid_device, 1);
+	bacpy(&dev->dst, &dst);
+	dev->uhid_fd = -1;
 
-	ba2str(&hdev->dst, addr);
+	ba2str(&dev->dst, addr);
 	DBG("connecting to %s", addr);
 
 	bt_string2uuid(&uuid, HID_UUID);
-	if (bt_search_service(src, &hdev->dst, &uuid, hid_sdp_search_cb, hdev,
+	if (bt_search_service(src, &dev->dst, &uuid, hid_sdp_search_cb, dev,
 								NULL) < 0) {
 		error("Failed to search sdp details");
-		hid_device_free(hdev);
+		hid_device_free(dev);
 		return HAL_STATUS_FAILED;
 	}
 
-	devices = g_slist_append(devices, hdev);
-	bt_hid_set_state(hdev, HAL_HID_STATE_CONNECTING);
+	devices = g_slist_append(devices, dev);
+	bt_hid_set_state(dev, HAL_HID_STATE_CONNECTING);
 
 	return HAL_STATUS_SUCCESS;
 }
@@ -506,7 +506,7 @@ static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 static uint8_t bt_hid_disconnect(struct hal_cmd_hid_disconnect *cmd,
 								uint16_t len)
 {
-	struct hid_device *hdev;
+	struct hid_device *dev;
 	GSList *l;
 	bdaddr_t dst;
 
@@ -521,16 +521,16 @@ static uint8_t bt_hid_disconnect(struct hal_cmd_hid_disconnect *cmd,
 	if (!l)
 		return HAL_STATUS_FAILED;
 
-	hdev = l->data;
+	dev = l->data;
 
 	/* Wait either channels to HUP */
-	if (hdev->intr_io)
-		g_io_channel_shutdown(hdev->intr_io, TRUE, NULL);
+	if (dev->intr_io)
+		g_io_channel_shutdown(dev->intr_io, TRUE, NULL);
 
-	if (hdev->ctrl_io)
-		g_io_channel_shutdown(hdev->ctrl_io, TRUE, NULL);
+	if (dev->ctrl_io)
+		g_io_channel_shutdown(dev->ctrl_io, TRUE, NULL);
 
-	bt_hid_set_state(hdev, HAL_HID_STATE_DISCONNECTING);
+	bt_hid_set_state(dev, HAL_HID_STATE_DISCONNECTING);
 
 	return HAL_STATUS_SUCCESS;
 }
@@ -556,7 +556,7 @@ void bt_hid_handle_cmd(GIOChannel *io, uint8_t opcode, void *buf, uint16_t len)
 
 static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 {
-	struct hid_device *hdev;
+	struct hid_device *dev;
 	bdaddr_t dst;
 	char address[18];
 	uint16_t psm;
@@ -589,25 +589,25 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 		if (l)
 			return;
 
-		hdev = g_new0(struct hid_device, 1);
-		bacpy(&hdev->dst, &dst);
-		hdev->ctrl_io = g_io_channel_ref(chan);
-		hdev->uhid_fd = -1;
+		dev = g_new0(struct hid_device, 1);
+		bacpy(&dev->dst, &dst);
+		dev->ctrl_io = g_io_channel_ref(chan);
+		dev->uhid_fd = -1;
 
 		bt_string2uuid(&uuid, HID_UUID);
-		if (bt_search_service(src, &hdev->dst, &uuid,
-					hid_sdp_search_cb, hdev, NULL) < 0) {
+		if (bt_search_service(src, &dev->dst, &uuid,
+					hid_sdp_search_cb, dev, NULL) < 0) {
 			error("failed to search sdp details");
-			hid_device_free(hdev);
+			hid_device_free(dev);
 			return;
 		}
 
-		devices = g_slist_append(devices, hdev);
+		devices = g_slist_append(devices, dev);
 
-		hdev->ctrl_watch = g_io_add_watch(hdev->ctrl_io,
+		dev->ctrl_watch = g_io_add_watch(dev->ctrl_io,
 					G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-					ctrl_watch_cb, hdev);
-		bt_hid_set_state(hdev, HAL_HID_STATE_CONNECTING);
+					ctrl_watch_cb, dev);
+		bt_hid_set_state(dev, HAL_HID_STATE_CONNECTING);
 		break;
 
 	case L2CAP_PSM_HIDP_INTR:
@@ -615,12 +615,12 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 		if (!l)
 			return;
 
-		hdev = l->data;
-		hdev->intr_io = g_io_channel_ref(chan);
-		hdev->intr_watch = g_io_add_watch(hdev->intr_io,
+		dev = l->data;
+		dev->intr_io = g_io_channel_ref(chan);
+		dev->intr_watch = g_io_add_watch(dev->intr_io,
 				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
-				intr_watch_cb, hdev);
-		bt_hid_set_state(hdev, HAL_HID_STATE_CONNECTED);
+				intr_watch_cb, dev);
+		bt_hid_set_state(dev, HAL_HID_STATE_CONNECTED);
 		break;
 	}
 }
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH] android/client: Fix pin reply call when pin argument missing in cmd
From: Ravi kumar Veeramally @ 2013-11-01 12:20 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Ravi kumar Veeramally

If condition checks number of arguments properly but still executes
EXEC command. It should display error message and return.
---
 android/client/if-bt.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/android/client/if-bt.c b/android/client/if-bt.c
index 3d97458..2c3cc4a 100644
--- a/android/client/if-bt.c
+++ b/android/client/if-bt.c
@@ -719,12 +719,15 @@ static void pin_reply_p(int argc, const char **argv)
 	RETURN_IF_NULL(if_bluetooth);
 	VERIFY_ADDR_ARG(2, &addr);
 
-	if (argc > 3) {
-		accept = 1;
-		pin_len = strlen(argv[3]);
-		memcpy(pin.pin, argv[3], pin_len);
+	if (argc != 4) {
+		haltest_error("Usage <address> <pin>\n");
+		return;
 	}
 
+	accept = 1;
+	pin_len = strlen(argv[3]);
+	memcpy(pin.pin, argv[3], pin_len);
+
 	EXEC(if_bluetooth->pin_reply, &addr, accept, pin_len, &pin);
 }
 
-- 
1.8.1.2


^ permalink raw reply related

* Re: [RFC] android/daemon: Update CoD and RSSI only when they exist
From: Johan Hedberg @ 2013-11-01 12:07 UTC (permalink / raw)
  To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1383306399-13750-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

Hi Andrei,

On Fri, Nov 01, 2013, Andrei Emeltchenko wrote:
> This avoid sending zeroed Class of Device and making it unidentified.
> ...
>  prop[0]: type=BT_PROPERTY_CLASS_OF_DEVICE len=4 val=000000
>  prop[1]: type=BT_PROPERTY_REMOTE_RSSI len=1 val=-75
>  prop[2]: type=BT_PROPERTY_BDNAME len=249 val=Microsoft Bluetooth Number Pad
> ...
> ---
>  android/adapter.c |   30 +++++++++++++++++-------------
>  1 file changed, 17 insertions(+), 13 deletions(-)

Applied. Thanks.

Johan

^ permalink raw reply

* Re: [RFC 1/6] android/daemon: Implement mgmt device connected event
From: Johan Hedberg @ 2013-11-01 12:06 UTC (permalink / raw)
  To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

Hi Andrei,

On Fri, Nov 01, 2013, Andrei Emeltchenko wrote:
> Send HAL_EV_ACL_STATE_CHANGED event to HAL through IPC.
> ---
>  android/adapter.c |   26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)

This doesn't compile:

  CC       android/adapter.o
android/adapter.c: In function ‘mgmt_device_connected_event’:
android/adapter.c:641:17: error: ‘HAL_ACL_STATE_CONNECTED’ undeclared (first use in this function)
  hal_ev.state = HAL_ACL_STATE_CONNECTED;
                 ^
android/adapter.c:641:17: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [android/adapter.o] Error 1

> +	if (length < sizeof(*ev)) {
> +		error("Too short %s (%u bytes)", __func__, length);
> +		return;
> +	}

This looks a bit weird. The function is not too short but the message
is, not to mention that having to use __func__ for error logs is a bit
counterintuitive. Just put "device connected event" into the string.
Same goes for your device disconnected event patch.

Johan

^ permalink raw reply

* [RFC] android/daemon: Update CoD and RSSI only when they exist
From: Andrei Emeltchenko @ 2013-11-01 11:46 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

This avoid sending zeroed Class of Device and making it unidentified.
...
 prop[0]: type=BT_PROPERTY_CLASS_OF_DEVICE len=4 val=000000
 prop[1]: type=BT_PROPERTY_REMOTE_RSSI len=1 val=-75
 prop[2]: type=BT_PROPERTY_BDNAME len=249 val=Microsoft Bluetooth Number Pad
...
---
 android/adapter.c |   30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/android/adapter.c b/android/adapter.c
index 39389ee..314f711 100644
--- a/android/adapter.c
+++ b/android/adapter.c
@@ -454,19 +454,23 @@ static int fill_device_props(struct hal_property *prop, bdaddr_t *addr,
 {
 	uint8_t num_props = 0;
 
-	/* fill cod */
-	prop->type = HAL_PROP_DEVICE_CLASS;
-	prop->len = sizeof(cod);
-	memcpy(prop->val, &cod, prop->len);
-	prop = ((void *) prop) + sizeof(*prop) + sizeof(cod);
-	num_props++;
-
-	/* fill rssi */
-	prop->type = HAL_PROP_DEVICE_RSSI;
-	prop->len = sizeof(rssi);
-	memcpy(prop->val, &rssi, prop->len);
-	prop = ((void *) prop) + sizeof(*prop) + sizeof(rssi);
-	num_props++;
+	/* fill Class of Device */
+	if (cod) {
+		prop->type = HAL_PROP_DEVICE_CLASS;
+		prop->len = sizeof(cod);
+		memcpy(prop->val, &cod, prop->len);
+		prop = ((void *) prop) + sizeof(*prop) + sizeof(cod);
+		num_props++;
+	}
+
+	/* fill RSSI */
+	if (rssi) {
+		prop->type = HAL_PROP_DEVICE_RSSI;
+		prop->len = sizeof(rssi);
+		memcpy(prop->val, &rssi, prop->len);
+		prop = ((void *) prop) + sizeof(*prop) + sizeof(rssi);
+		num_props++;
+	}
 
 	/* fill name */
 	if (name) {
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 6/6] android/daemon: Add handler for device disconnected
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Send event to callback thread which shall call acl state change callback.
---
 android/adapter.c |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/android/adapter.c b/android/adapter.c
index bc4492b..39389ee 100644
--- a/android/adapter.c
+++ b/android/adapter.c
@@ -643,6 +643,29 @@ static void mgmt_device_connected_event(uint16_t index, uint16_t length,
 			HAL_EV_ACL_STATE_CHANGED, sizeof(hal_ev), &hal_ev, -1);
 }
 
+static void mgmt_device_disconnected_event(uint16_t index, uint16_t length,
+					const void *param, void *user_data)
+{
+	const struct mgmt_ev_device_disconnected *ev = param;
+	struct hal_ev_acl_state_changed hal_ev;
+
+	if (length < sizeof(*ev)) {
+		error("Too short %s (%u bytes)", __func__, length);
+		return;
+	}
+
+	/* TODO: Update device */
+
+	/* TODO: Check Set bonding state */
+
+	hal_ev.status = HAL_STATUS_SUCCESS;
+	hal_ev.state = HAL_ACL_STATE_DISCONNECTED;
+	bdaddr2android(&ev->addr.bdaddr, &hal_ev.bdaddr);
+
+	ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH,
+			HAL_EV_ACL_STATE_CHANGED, sizeof(hal_ev), &hal_ev, -1);
+}
+
 static void mgmt_connect_failed_event(uint16_t index, uint16_t length,
 					const void *param, void *user_data)
 {
@@ -696,6 +719,10 @@ static void register_mgmt_handlers(void)
 	mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_CONNECTED, adapter->index,
 				mgmt_device_connected_event, NULL, NULL);
 
+	mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_DISCONNECTED,
+				adapter->index, mgmt_device_disconnected_event,
+				NULL, NULL);
+
 	mgmt_register(adapter->mgmt, MGMT_EV_CONNECT_FAILED, adapter->index,
 				mgmt_connect_failed_event, NULL, NULL);
 
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 5/6] android/hal: Add debug prints for every HAL callback
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

This allows us to trace callbacks to Java.
---
 android/hal-bluetooth.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/android/hal-bluetooth.c b/android/hal-bluetooth.c
index 91c5f97..7334d24 100644
--- a/android/hal-bluetooth.c
+++ b/android/hal-bluetooth.c
@@ -153,6 +153,8 @@ static void handle_adapter_props_changed(void *buf, uint16_t len)
 	struct hal_ev_adapter_props_changed *ev = buf;
 	bt_property_t props[ev->num_props];
 
+	DBG("");
+
 	if (!bt_hal_cbacks->adapter_properties_cb)
 		return;
 
@@ -168,6 +170,8 @@ static void handle_bond_state_change(void *buf)
 	struct hal_ev_bond_state_changed *ev = buf;
 	bt_bdaddr_t *addr = (bt_bdaddr_t *) ev->bdaddr;
 
+	DBG("state %u", ev->state);
+
 	if (bt_hal_cbacks->bond_state_changed_cb)
 		bt_hal_cbacks->bond_state_changed_cb(ev->status, addr,
 								ev->state);
@@ -180,6 +184,8 @@ static void handle_pin_request(void *buf)
 	bt_bdaddr_t *addr = (bt_bdaddr_t *) ev->bdaddr;
 	bt_bdname_t *name = (bt_bdname_t *) ev->name;
 
+	DBG("");
+
 	if (bt_hal_cbacks->pin_request_cb)
 		bt_hal_cbacks->pin_request_cb(addr, name, ev->class_of_dev);
 }
@@ -191,6 +197,8 @@ static void handle_ssp_request(void *buf)
 	bt_bdaddr_t *addr = (bt_bdaddr_t *) ev->bdaddr;
 	bt_bdname_t *name = (bt_bdname_t *) ev->name;
 
+	DBG("");
+
 	if (bt_hal_cbacks->ssp_request_cb)
 		bt_hal_cbacks->ssp_request_cb(addr, name, ev->class_of_dev,
 							ev->pairing_variant,
@@ -218,6 +226,8 @@ static void handle_discovery_state_changed(void *buf)
 {
 	struct hal_ev_discovery_state_changed *ev = buf;
 
+	DBG("");
+
 	if (bt_hal_cbacks->discovery_state_changed_cb)
 		bt_hal_cbacks->discovery_state_changed_cb(ev->state);
 }
@@ -227,6 +237,8 @@ static void handle_device_found(void *buf, uint16_t len)
 	struct hal_ev_device_found *ev = buf;
 	bt_property_t props[ev->num_props];
 
+	DBG("");
+
 	if (!bt_hal_cbacks->device_found_cb)
 		return;
 
@@ -242,6 +254,8 @@ static void handle_device_state_changed(void *buf, uint16_t len)
 	struct hal_ev_remote_device_props *ev = buf;
 	bt_property_t props[ev->num_props];
 
+	DBG("");
+
 	if (!bt_hal_cbacks->remote_device_properties_cb)
 		return;
 
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 4/6] android/daemon: Add handlers for auth_failed and connect_failed evt
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Add debug prints in a case connection is failing
---
 android/adapter.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/android/adapter.c b/android/adapter.c
index df56452..bc4492b 100644
--- a/android/adapter.c
+++ b/android/adapter.c
@@ -643,6 +643,18 @@ static void mgmt_device_connected_event(uint16_t index, uint16_t length,
 			HAL_EV_ACL_STATE_CHANGED, sizeof(hal_ev), &hal_ev, -1);
 }
 
+static void mgmt_connect_failed_event(uint16_t index, uint16_t length,
+					const void *param, void *user_data)
+{
+	DBG("");
+}
+
+static void mgmt_auth_failed_event(uint16_t index, uint16_t length,
+					const void *param, void *user_data)
+{
+	DBG("");
+}
+
 static void register_mgmt_handlers(void)
 {
 	mgmt_register(adapter->mgmt, MGMT_EV_NEW_SETTINGS, adapter->index,
@@ -683,6 +695,12 @@ static void register_mgmt_handlers(void)
 
 	mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_CONNECTED, adapter->index,
 				mgmt_device_connected_event, NULL, NULL);
+
+	mgmt_register(adapter->mgmt, MGMT_EV_CONNECT_FAILED, adapter->index,
+				mgmt_connect_failed_event, NULL, NULL);
+
+	mgmt_register(adapter->mgmt, MGMT_EV_AUTH_FAILED, adapter->index,
+				mgmt_auth_failed_event, NULL, NULL);
 }
 
 static void load_link_keys_complete(uint8_t status, uint16_t length,
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 3/6] android/hal: Handle acl_state_changed event
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

---
 android/hal-bluetooth.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/android/hal-bluetooth.c b/android/hal-bluetooth.c
index a0ee844..91c5f97 100644
--- a/android/hal-bluetooth.c
+++ b/android/hal-bluetooth.c
@@ -254,6 +254,18 @@ static void handle_device_state_changed(void *buf, uint16_t len)
 	device_hal_props_cleanup(props, ev->num_props);
 }
 
+static void handle_acl_state_changed(void *buf)
+{
+	struct hal_ev_acl_state_changed *ev = buf;
+	bt_bdaddr_t *addr = (bt_bdaddr_t *) ev->bdaddr;
+
+	DBG("state %u", ev->state);
+
+	if (bt_hal_cbacks->acl_state_changed_cb)
+		bt_hal_cbacks->acl_state_changed_cb(ev->status, addr,
+								ev->state);
+}
+
 /* will be called from notification thread context */
 void bt_notify_adapter(uint16_t opcode, void *buf, uint16_t len)
 {
@@ -287,6 +299,9 @@ void bt_notify_adapter(uint16_t opcode, void *buf, uint16_t len)
 	case HAL_EV_SSP_REQUEST:
 		handle_ssp_request(buf);
 		break;
+	case HAL_EV_ACL_STATE_CHANGED:
+		handle_acl_state_changed(buf);
+		break;
 	default:
 		DBG("Unhandled callback opcode=0x%x", opcode);
 		break;
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 2/6] android/ipc: Update HAL IPC header
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383305418-13619-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Add ACL states to the header.
---
 android/hal-msg.h |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/android/hal-msg.h b/android/hal-msg.h
index 8a344d8..1d256f2 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -405,6 +405,9 @@ struct hal_ev_bond_state_changed {
 	uint8_t state;
 } __attribute__((packed));
 
+#define HAL_ACL_STATE_CONNECTED		0x00
+#define HAL_ACL_STATE_DISCONNECTED	0x01
+
 #define HAL_EV_ACL_STATE_CHANGED	0x89
 struct hal_ev_acl_state_changed {
 	uint8_t status;
-- 
1.7.10.4


^ permalink raw reply related

* [RFC 1/6] android/daemon: Implement mgmt device connected event
From: Andrei Emeltchenko @ 2013-11-01 11:30 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Send HAL_EV_ACL_STATE_CHANGED event to HAL through IPC.
---
 android/adapter.c |   26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/android/adapter.c b/android/adapter.c
index 4ddd68b..df56452 100644
--- a/android/adapter.c
+++ b/android/adapter.c
@@ -620,6 +620,29 @@ static void mgmt_device_found_event(uint16_t index, uint16_t length,
 						confirm_name, eir, eir_len);
 }
 
+static void mgmt_device_connected_event(uint16_t index, uint16_t length,
+					const void *param, void *user_data)
+{
+	const struct mgmt_ev_device_connected *ev = param;
+	struct hal_ev_acl_state_changed hal_ev;
+
+	if (length < sizeof(*ev)) {
+		error("Too short %s (%u bytes)", __func__, length);
+		return;
+	}
+
+	/* TODO: Update device */
+
+	/* TODO: Check Set bonding state */
+
+	hal_ev.status = HAL_STATUS_SUCCESS;
+	hal_ev.state = HAL_ACL_STATE_CONNECTED;
+	bdaddr2android(&ev->addr.bdaddr, &hal_ev.bdaddr);
+
+	ipc_send(notification_io, HAL_SERVICE_ID_BLUETOOTH,
+			HAL_EV_ACL_STATE_CHANGED, sizeof(hal_ev), &hal_ev, -1);
+}
+
 static void register_mgmt_handlers(void)
 {
 	mgmt_register(adapter->mgmt, MGMT_EV_NEW_SETTINGS, adapter->index,
@@ -657,6 +680,9 @@ static void register_mgmt_handlers(void)
 	mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_FOUND,
 					adapter->index, mgmt_device_found_event,
 					NULL, NULL);
+
+	mgmt_register(adapter->mgmt, MGMT_EV_DEVICE_CONNECTED, adapter->index,
+				mgmt_device_connected_event, NULL, NULL);
 }
 
 static void load_link_keys_complete(uint8_t status, uint16_t length,
-- 
1.7.10.4


^ permalink raw reply related

* Re: l2cap sockets not properly multiplexed on ARM
From: Anderson Lizardo @ 2013-11-01 11:03 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Tim Tisdall, Alexander Holler, linux-bluetooth@vger.kernel.org
In-Reply-To: <F9B30CD6-4DCB-4F58-9322-E18969867664@holtmann.org>

Hi Marcel,

On Thu, Oct 31, 2013 at 10:20 AM, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Tim,
>
>>> As Anderson Lizardo already mentioned, maybe first verify that the x86
>>> kernel 3.4 doesn't have the same problem and that it's really a problem
>>> of the ARM kernel. Up to now he didn't say what kernel version he uses
>>> on x86.
>>
>> here's my desktop version:
>> $ uname -a
>> Linux tzing 3.8.0-32-generic #47-Ubuntu SMP Tue Oct 1 22:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>>
>> I'm trying to get an older version of the kernel running on another machine and then I'll report back
>
> I actually need to know if bluetooth-next tree still has this issue. That is first and foremost the one thing that needs to be checked.

I asked Tim to mention the kernel version on x86 vs. the version on
ARM, because I vaguely remember this same issue being reported last
year (or even 2011) and being fixed (If I find the patch, I will let
you know). As Tim mentions later on, on x86 the issue does not happen
on 3.8, but it is present on 3.2 (and I suspect it will also be
present on 3.4 on x86 as well).

Best Regards,
-- 
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil

^ permalink raw reply

* Re: Intel 7260 bluetooth malfunction when it is connected to EHCI bus
From: Hui Wang @ 2013-11-01  9:18 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Tedd An, Johan Hedberg, xiong.y.zhang, Gustavo F. Padovan,
	linux-bluetooth@vger.kernel.org development, Kun Yang,
	Anthony Wong
In-Reply-To: <C3BBD7E9-6D91-430E-96DF-2D4885F89DCC@holtmann.org>

[-- Attachment #1: Type: text/plain, Size: 6693 bytes --]

On 11/01/2013 03:49 PM, Marcel Holtmann wrote:
> Hi Hui,
>
>>>>>>>> The problem is:
>>>>>>>> On the machine which has Intel 7260 BT module, i use it to connect a bluetooth headset,
>>>>>>>> it can successfully scan and connect to the headset, when i play sound to the bt headset,
>>>>>>>> the problem comes, if the bt module is connected to the XHCI, it can work very well.
>>>>>>>>
>>>>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>>>>> 1-7:1.0: No such file or directory
>>>>>>>> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>>>>> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>>>>>     |__ Port 6: Dev 8, If 0, Class=HID, Driver=usbhid, 1.5M
>>>>>>>>     |__ Port 7: Dev 2, If 0, Class=vend., Driver=, 12M
>>>>>>>>     |__ Port 11: Dev 3, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>>     |__ Port 11: Dev 3, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>>
>>>>>>>> But if the bt module is connected to the EHCI, it always fails to play sound.
>>>>>>>>
>>>>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>>>>> /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>>>>> /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>>>>> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
>>>>>>>>     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
>>>>>>>> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
>>>>>>>>     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
>>>>>>>>         |__ Port 5: Dev 3, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>>         |__ Port 5: Dev 3, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>>         |__ Port 6: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
>>>>>>>>         |__ Port 6: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
>>>>>>> can you paste /sys/kernel/debug/usb/devices here.
>>>>>>>
>>>>>>> If the uvcvideo driver is also using ISOC URBs, we might have just exhausted the bandwidth of the USB bus here or these two devices just do not play nice with each other.
>>>>>>>
>>>>>>> Try to unload the uvcvideo driver and try it again.
>>>>>> Thanks for your reply, follow your instruction, i totally disabled the camera from the BIOS, then the usb tree like this,
>>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>>> 1-1.3:1.0: No such file or directory
>>>>>> /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>>> /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>>> /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
>>>>>>     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
>>>>>> /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
>>>>>>     |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
>>>>>>         |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M
>>>>>>         |__ Port 3: Dev 4, If 0, Class=vend., Driver=, 12M
>>>>>>         |__ Port 5: Dev 5, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>         |__ Port 5: Dev 5, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>> u@u-Lenovo-B4400:~$ uname -a
>>>>>> Linux u-Lenovo-B4400 3.12.0-031200rc6-generic #201310191635 SMP Sat Oct 19 20:36:43 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>>>>>>
>>>>>> I re-did the test, the result is same as before, after the headset is connected and i play audio, no sound is heard from the headset.
>>>>>> And hciconfig output shows still no SCO packets received by BT driver.
>>>>>> u@u-Lenovo-B4400:~$ hciconfig
>>>>>> hci0:    Type: BR/EDR  Bus: USB
>>>>>>     BD Address: 00:15:00:CC:2D:D2  ACL MTU: 1021:5  SCO MTU: 96:5
>>>>>>     UP RUNNING PSCAN
>>>>>>     RX bytes:5853 acl:61 sco:0 events:298 errors:0
>>>>>>     TX bytes:19212 acl:68 sco:1 commands:179 errors:0
>>>>> this is strange. The only reason I can think of is that you do not have the firmware installed and or it is not loaded correctly. Does dmesg give any indication that something failed here.
>>>> I can confirm the firmware file is the /lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq, and it is in the filesystem. And from the dmesg, the firmware was successfully loaded.
>>>>
>>>> [    8.600217] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
>>>> [    8.653635] kvm: disabled by bios
>>>> [    8.672981] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x126c00
>>>> [    8.707034] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input13
>>>> [    8.717725] Registered led device: phy0-led
>>>> [    8.722730] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
>>>> [    8.752626] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated
>>>>
>>>>> Since this is a 3.12 kernel it should have native support for Intel specific setup routing. Any chance you can run btmon -w <file> before plugging the device into the bus. Maybe something goes wrong with the setup routine on EHCI.
>>>> Do you mean the hcidump file i just sent in my previous email.
>>> I do not get this. I specifically asked to run “btmon -w <file>” before plugging in the device. I want to see the early setup process here. What would I do with a hcidump trace.
>> The attachment is the logfile generated by "btmon -w <file>". And the logfile was generated by below steps,
>>
>> 1) boot up the system into the ubuntu desktop
>> 2) open a terminal and run "sudo btmon -w ~/lenovo-m4400s-btmon.log"
>> 3) open bluetooth applet and click adding a new device, the bluetooth begin to scan devices
>> 4) power up the bt headset
>> 5) laptop bt module find the headset and connect it successfully
>> 6) open the sound applet, choose bt headset as output device, play sound, but no sound can be heard from bt headset
>> 7) Ctrl+C to terminate the "btmon -w <file>"
>>
>> In case you can't receive the attachment, i decode the logfile and paste the content here.
> what I need is to see the 7260 controller init. So you need to start btmon -w <file> before the 7260 gets attached to the USB bus or before btusb.ko driver gets loaded.
Understand now.

The attachment lenovo-k4450-btmon-v0.log is the log of intel 7260 init 
procedure, generated by "btmon -w <file>; insmod btusb.ko; ctrl+c 
terminate the btmon".

The attachment lenovo-k4450-btmon-v1.log is the log of intel 7260 init 
procedure + scan headset + connect headset + play sound.


If anything is wrong, please let me know.

Thanks,
Hui.

> Regards
>
> Marcel
>
>
>


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: lenovo-k4450-btmon-v0.log --]
[-- Type: text/x-log; name="lenovo-k4450-btmon-v0.log", Size: 24010 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0áÇÌÓ\x12'é\0\x01\0\0\0\0\0\0hci0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12*ð\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Xð\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12Y®\x05ü\0\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12\Ô\x0e\r\x01\x05ü\07\a\x10\x01€\x02\x03\r\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12£\x11ü\x02\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12§\v\x0e\x04\x01\x11ü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12§'Žü
\0\x01\0\b\0\x04\x02\x03\r.\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12ªò\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12«	Žüú\0\0\0!\0ô  €\x0f\0\bR\x02ø\aÂÿá\a€\x02ÔH\0\0ØH\0\0€0\bw(v—Õ’	 \x03épý\x02€0àx¤H\0\0\x02ð\x01ؽ\x02 0\x0fxàx¨H\0\0€0àx¬H\0\0\x05©¸\x05¡Z\rà\x01\x01ØŠ\b \x02\x0eظñ°H\0\0 H\0\0€0ZÐ\0€¢ÁV SŽ\0Ø\x01®=\a`0¢Ààx€H\0\0\x02Œ \x02€\bô©pÈÿ¸H\0\0À/àxÈH\0\0¯ÕF\x15€\x10ŸèÌH\0\0œÕH\x15€\x10¤è]\x15€\x10ÄH\0\0‚\x10Œê¹’¹”¹3¦3†³¹O!‚\x04ÀH\0\0‚\x10ŒêŒÐ\0Ù  €\x0f\0\bl,”\x17\0ö\bH\0\0À.n\và\0\x1apXÓ`\x13@ D\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12²Â\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12²×Žüúô\0\0!\0ô\r\x01 ±
ðàx €\x01áÁÇÁÆà\x7fÁÅtH\0\0áÇü\x1cÁÇÁÆà\x7fÁÅxH\0\0áÇü\x1cà\x7fÁÅ|H\0\0áÇü\x1c\b´ü\x1cÁ\x05Ïý$H\0\0ïý\x01Ø	\bR\0\0Ø	ð\x18H\0\0\b¹%x\x02
ïý\x03ˆà\x7føàx H\0\0\x01ã!\v\x1cH\0\0®\fà)\x10Ú8ѧ®¨®\x14H\0\0\x1c@\x1e\x02\x10\x1d?\x1e\x02\x10\x10H\0\0Š	\x0fÿª\roû\0‡µ\x06‰\x06€&\fH\0\0€&\bwŠ C/\x02•P €€àx\x04H\0\0àxÒ\v\x03\fc­\x16»\x10ºE{\b¸exÂ\f\x1aˆ†è\x04Ø\x05Ù²\v÷n\x0f\0	X\x10Ó\x15\x01\x16‘¹(H\0\0È\x1d˜\x1f\x02p\00\b\x0fÏs\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12º‘\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12º§Žüúè\x01\0!\0ô\x01 ¨¬8H\0\0
ôè\x17\0\x10Ïq@™\0 4H\0\0ù\x1f˜\x1f\x16\0\x1a[.ðàx0H\0\0\x15è^\x14\x03\x06¬»  €\x0f\x01 \x1a£,E# \0\x01#‰  €\x0f\x01 þ¦t <˜S ]˜5 V ,H\0\0†»^\x1eØ\x10  €\x0f\0\bà\x04\x18\x10€\x0f\0¼\0\0  €\x0f\0\bÐ\x03Ø\0\x02ð6Øb\f\0\0Ñ\x01€\x1f`H\0\0 \x03\x03Ø\x01ØîñdH\0\0À\x1eþ\b\x02\0àxTH\0\0ëvú\v\x0fïÏsPH\0\0ëvî
/ï\bu\x1eíd…%èa€#ë  €\x0f\0\bü\x04\x01Ùà\x7f «  €\x0f\0\bF\x04UzÇrœô\x12…w\b\x11\0nð\0ßõ¥\x01ØhH\0\0 €\bu\x11\x0fè\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Âa\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12ÂwŽüúÜ\x02\0!\0ôD…\x03…ôàxJ&\0pV%\x12\x1a\x1e\x12€ lH\0\0Û\x1eB\x13±\x1f\x18\x10Ïr\00  €\x0f\0\b®\x04ƒ\0V	/ù\0Ú\x1c\x10\x03   €\x0f\0\b\f\x10\x01Ú\x10qDÆ@!Q ãó\bðàx\r\rÑ\x10XH\0\0\x0eè€%\x05\x18\x0eàÌ R\bà\x10	Û©p‘\x02\0\x16\H\0\0J&\0pàx\x16•\x01à:\b \0\x16µ\x1di\00ÿÿ\0\0pH\0\0€\x10§Õ ޏè<H\0\0i\bŸ\x03\x17Ðð \x0fÿ\x11\0\0\0\x04Ø\x04­N\f/ÿ‡ÐA é¹´\x17\0öDH\0\0@€ÂªB\x14/‰M\v^\x01@H\0\02\roü\x01\0OÐLH\0\0"ª\x01j1\x02 \0ïû\x12ÐHH\0\0\0“	Q\0ð \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Ê1\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12ÊGŽüúÐ\x03\0!\0ôà\x7f\x01Øà\x7f€Ø\0H\0\0\x04€àx\0Úàx´H\0\0À\x04¥Á‡\x17\x11vè»°\x11\0\0UxyòနH\0\0C\0\x01Ø\x1d\a`\x03£Ààx˜H\0\0¬\x04\00Œ\a\00˜\x12\00ŒH\0\0ˆH\0\0\0\x03­ÁÐ\x17\x14vD\x14\x15 H\0\0ö
¯Ò\x03Ù\x01Ø\x02ð\0Ø`\0\x14à\0…àxàxŸ¹Â\x0f`\0\x19a_¥€\x1d@\x10~¥ºñ„H\0\0ƒ$9\bQ\0  €\x0f\0\b\\x1c\x19aA\x04\x04ðœH\0\0Ç\f^ \0…°\x10\0…ñ\x01`\x02¡Àà~àxÜH\0\0ÐH\0\0\0\x02b€\0Ý¢Á\x04\x1cD3¼H\0\0\0ö\0€°\x10\0\0\0€~\r  €\x0f\0\b\x12\x02¢ÁñÀAÀBÁ`\x01€$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Ò\x03\x0e\x04\x01Žü\0\0\0\05\0\0\05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12Ò$Žü2Ä\x04\0!\0,
2×ñàxàxñÀ\x0e\v  €\x0f\0\bš\x02\x05©àxñÀj\f\0\0\0 ý\x03\x1f\x02\x05\0\0\0\0\0\0\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Õé\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12Ö\x05Žüú \0\0’\0ô\x1e\0\0\0O\0\0\0R\0\0\0W\0\0\0Z\0\0\0\\0\0\0b\0\0\0Š\0\0\0Ï\x01\0\0Ô\x01\0\0Ù\x01\0\0õ\x01\0\0÷\x01\0\0^[\x02\0\0½\x03\0\0\x15\x05\0\0-\x06\0\0a\x06\0\0ê\x06\0\0p\a\0\0Þ\v\0€R\f\0\0—\r\0€¶\x0f\0€•\x10\0\0\x1a\x14\0\0õ\x14\0€\x13\x15\0€™\x15\0\0ç\x19\0\0÷\x19\0\0þ\x19\0\0\x02\x1a\0\0/\x1a\0\0j\x1a\0\0n\x1a\0\0À\x1a\0\0}^[\0\0e"\0\0ú#\0\04'\0\0E'\0\07(\0\0a(\0\0~)\0\0™)\0\0«)\0\0^[-\0\0r2\0\0W3\0\0&4\0\0N5\0\0X5\0\0þ5\0\0>@\0\0‘C\0\0±C\0\0çC\0\0äH\0\0¶I\0\0^J\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12Ý¿\x0e\x04\x01Žü\0\0\0\0U\0\0\0U\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12Þ-ŽüR\x14\x01\0’\0L‘W\0\0·W\0\0ëY\0\0Z\0\0\x0e[\0\0\x18[\0\0d[\0\0¼[\0\0ß[\0\0\x11\\0\0T\\0\0ã\\0\0-]\0\0`]\0\0ë]\0\0É^\0\04_\0\02d\0\0ÿ\x7f\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12á£\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12áðŽüú\0\x01\0\b\0ôï¾­Þ\0\0\0\0Bï¾B\x14\x01\0\b\0\0\0\0<\x06\0\bø\x01\0\bÀ\x06\0\bŒ\a\0\bÀ\b\0\b4	\0\b€
\0\bp\a\0\bä
\0\b$\v\0\bò\x02\0\bP\x03\0\bz\x03\0\b \x03\0\b`\v\0\bô\x03\0\bx\f\0\b\x18\x04\0\bü\f\0\bh\r\0\bl\x0e\0\b(\x0e\0\bÔ\x0e\0\bH\x0f\0\bl\x10\0\bÈ\x10\0\b„\x11\0\b\x1c\x05\0\b8\x13\0\bÐ\x14\0\bT\x16\0\bÀ\x19\0\b %\0\b¬\x1e\0\bä\x1c\0\bl \0\b¤ \0\bŽ\x05\0\b\x1c!\0\bÂ\x05\0\b˜#\0\b¤$\0\bÔ$\0\b %\0\bh%\0\b¨'\0\b\b+\0\bÐ,\0\bâ\x05\0\b\x0e\x06\0\bt+\0\bð+\0\b\x18.\0\bü&\0\b<'\0\bÀ-\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12é~\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12êHŽüúô\x01\0\b\0ô­Þáþ¡À
 €\x0f\0Á€\0\0\x18€\x0f\x0e\x13M¤  €\x0f\x01 |O\0\x16\0p\0¼L\x03\x04 €\x0f\x0eüÿ\x1f\x0fô\x05 €\x0f\x10\x02\0\0\0\x1e\0p\0¼L\x03" €\x0f\x05 |Ø	ð\x05 €\x0f°\0\0à\0\x1e\0p\0¼L\x03ÑÀà~Š!\x06\x04B!A\0L!\0€ú\aÂÿ
!€\x0f\0”\0\0\x10\x11\0\0\v €\0\0\0\x10à \x0f\0 ÌYP \0\x03\x10\x19\0\0\x14\x11\0\0P @\x02\x14\x19\0\0  €\x0f\0 ÌY\x1cŠ\x04©}Še©\b»\x04#ƒ\x0f\0\0\0ÿex\0\x1e\0p\0Á\x14\x02\0\x16€p\00¤\0\0\x16p\00ø\x12"x\rx\x11¸\x04 €\x0fþ\a\0\0\0\x16\x01p\0¼$\x02\x04!\x0f\x01øÿÿ%x\0\x1e\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12ñD\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12ñgŽüúè\x02\0\b\0ô\0p\0¼$\x02à~àx¡ÀÓ\x1dX\x10\0\x16\x01p\0¾<\0\x04!\x0f\0€\0\0A)þ‡\aò
!€\x0fº\0ÿñÓ\x1dX\x10\0\x16\x01p\0ÁÐ\0\x04!\x0f\0\0\00A)>ƒ\x0eò‡\x15\x01\x16\x04!\x0f\0þÿÿ\x05!\x0fµ\0\0\0‡\x1dX\x10  €\x0f\x01 |ž¡À\0\x16\0p\0ÁÐ\0\x04 €\x0f\0\0\00A(>ƒà ‚\x0f\x01 þ¦‡\x16\x02\x16  €\x0f\x01 ð¦¡ÀÚ\x1fX\x10Û\x1f˜\x1f Ž\x041ø\x1f˜\x1f(\0ƒ ù\x1f˜\x1f\x15\0Ò¶  €\x0f\x01 „ ¡À¸è\x1f\0\x10Ú\x1f˜\x1f@™\0 Û\x1f˜\x1f Ž\x04\x01ø\x1f˜\x1f\x04\0\0\x10ù\x1f˜\x1f\x16\0Ú6  €\x0f\x01 „ E\x14\x03\x06ˆ»E\x1cØ\0Š!\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x12ù\x13\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x12ù1ŽüúÜ\x03\0\b\0ô\x04\02Øa¸\x06èE\x14\x03\x06+{üõ  €\x0f\x01 à·@$\x1c1
 €\x0f\00„yð @\0\r\bŸ\x04  €\x0f\x04 \x1c9  €\x0f\x04 €9¡À&\0!\0@€Ïq\00ôy\0\x16€p\00x\x11\x15y\0„¸\0¡  €\x0f\x04 ~>  €\x0f\x04 ØB\x1a`UzÇr\00$YŠà8\x12\0á Ê\aÊ *\00\x12ƒ\01\x12„\0?\v\x03\x01y’6\x12\x04\x01	\fÃ\09\x12\0àÌ â€Ì "‚Ì b‚\bò@$D\0/$\b\x016\x1a\x04\x01\x1a’\x15\f\x02\0\0Û{²à\x7f(pà\x7f9\x12€\0à\x7f(pàx@$„\x02zb\x02$ƒ€\0Ú\x18\0\x03\0s{" €\x0f\x02 ¬H  €\x0f\x03 0'\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13\0â\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13\0ÿŽüúÐ\x04\0\b\0ô" €\x0f\x02 |H  €\x0f\x03 0'Q\x16\0\x16¦¸Q\x1e\x18\x10Q\x16\0\x16†¸Q\x1e\x18\x10  €\x0f\x01 \x10¬a\x13‚\0\v
Q\0\x01Ù\0^[B 
\x11\0\0Ù\0^[B   €\x0f\x02 „ƒ¡ÀÛ\x1eB\x13ü\x1c\b°ü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cÈ·Z\r@\0\x04\x14\x1f4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014\x04\x14\04  €\x0f\x02 ¼Ñ@$\x1c1" €\x0f\0 @Wü\x1c\b°J @\0\0\x1e\0p\0\bœ5\x04\x14\04" €\x0f\0 XW¬\x11\0\0  €\x0f\x05 Àž@$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13\b²\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13\bÏŽüúÄ\x05\0\b\0ô\x1c1\ax\0\x1e\0p\0\bœ5*p" €\x0f\x05 dÀ  €\x0f\x05 HÅ@$\x1c1S¦E\x16‚\x10…ê  €\x0f\0 €\x1fñÀáÀ" €\x0f\0\bD+ÁÀÑÀ  €\x0f\0 ”\x1f@$\x1c1S¦E\x16‚\x10…ê  €\x0f\0 X\x1fñÀáÀ" €\x0f\0\b\+ÁÀÑÀ  €\x0f\0 l\x1fàx¡À  €\x0f\0\bH\x06à~à\x7f\x01Ð\x02\x03\r.\0Ú\x03ð\x01â\x11
\x13\f=ÐVx €úé\x03ð\0Øà~áÅáÆ8Ña\x11\x02\x06`\x11\0\x06A\b…\06Ó\x02 Í\05ÐBx-\bC\x03\0Þ\x03ð\x01æ\x13\x0e\x13\x1c\x16!€\x03¡€õ
Aƒ\x02ð\0Øa `\x11\0\x06a\x19Ø\0bx\x10x\x06ð\x10x\x04ðBx\x10x\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13\x10\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13\x10œŽüú¸\x06\0\b\0ôÁÆà\x7fÁÅàx¡À  €\x0f\0\bÌ\x06à~ñÀ" €\x0f\x06 ´\x17\bw" €\x0f\0 @W\x03ç˜pF'Ï\x10\x1cÖ\0†ð\x7f€àÊ \x0f\0\0\0\x03\aò!†\a\bE\0\x15Ð"x\x10x\r\bÃ\x03Øÿ\r\bÂ\x03Ðÿ
%\0	ôˆp" €\x0f\0 XW\0Ø\x10ð\x01†\x1fg\0¥á¦á¥\0†„è\0…\0¦ˆp" €\x0f\0 XW\0…  €\x0f\x06  \x18\x04&\00¨\x01\0@¨\x04\0@„'\00\vÐ\0ˆà\x01Øà\x7fÀx\bÑà\x7f\0©àx¡À\x06Ñ\0Ú@©«®¡®  €\x0f\0 tÙà~àxt5\0\b¡À  €\x0f\0\b˜\aà~ñÀ" €\x0f\x06 ¨\x17Š!C/\x0f	# \bw\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13\x18R\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13\x18pŽüú¬\a\0\b\0ô^[\0 \0;Õép" €\x0f\0 äÑ" €\x0f\0 <Ò\bu\x02\x15\x12\x11ép\x04\x15\x10\x11" €\x0f\x04 p\x03+\b\x0f\0\0ÿÿ" €\x0f\x01 \x14>‰è\0ر٠Ú\x02Û" €\x0f\x05 Ðm" €\x0f\0 \x18×(ÖÉq" €\x0f\x01 HA" €\x0f\0 äÙ\x04\x1e„\x14\x10®\0\x1e\x04\x14\x03•\x03¶\x04•\x01¶	Ž^[\bÐ\0\r\b‘\0
Ž\x0f\b\0" €\x0f\0\b\\a\x04è\x02–ª¸\x02¶" €\x0f\0\b\\a\aè\x02–¬¸\x02¶\0–¬¸\0¶\x0f\x0fC\x14\0§¸\0­\x05ðÿÜ\x0e'\0\x13\x01à\b®" €\x0f\0 ÔÙÉq\x03¦ép" €\x0f\0 ¤n©p" €\x0f\x01 €B  €\x0f\x06 \b\x18 D\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13 !\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13 <Žüú \b\0\b\0ô,D\00ñÀ" €\x0f\x05 ¸ëpÑ\x14©" €\x0f\x05 TlÑÀà~àx¡À  €\x0f\0\bÌ\bà~ñÀ*\b\0\0‰èûuÁÅ  €\x0f\x01 X		ðûuÁÅ\fÙaÁ  €\x0f\x01 T	åññÀáÅ×p\0\0Wü\x01Ø\x15ô\Ð\0ˆ€à\fØ\x11òZÑ[Ð\0Ý©r" €\x0f\x01 ÐXWЩq" €\x0f\0 Üê©p  €\x0f\x06 0\x18àx¡ÀH\x1e\x02\x10ü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cȲü\x1cÈ·©p" €\x0f\0\b°	\x04\x14\x1f4\x04\x14\v4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13'ñ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13(
Žüú”	\0\b\0ô\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014  €\x0f\0 dûà~àxñÀ" €\x0f\x06 ´\x17¡Á0Õ\bv@ O\x06‹p@%A\x1e\x03Ú" €\x0f\x06  \x16\0Ú\fð3$ƒ03'\x10\v	ã\0\0$€0 ¨\x01âí
Ò€@%@\x1e‹q\x03Ú" €\x0f\x06  \x16‹p©qAá\x03Ú" €\x0f\x06  \x16\0Ú@&O\x18\fð3$ƒ03'\x10\v	ã\0\0$€0 ¨\x01âí
Ò€©pAà‹q\x03Ú" €\x0f\x06  \x16&\x16À\x107\x15Á\x10	\bC\07\x1d\x02\x10(\x16À\x108\x15Á\x10	\bC\08\x1d\x02\x10¡À  €\x0f\x06  \x18àx„\0\00\b\x0e\00¤\b\0\bWü\0\0\x04\0\00¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13/Ã\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13/âŽüúˆ
\0\b\0ôŒ
à~ñÀ\x14Ð €\0‘5\b\x0f\0\08ü\x03‰€àÌ b€Ê!¢\x04\x06ô" €\x0f\0\bh\a\0Ù\vÐ" €\x0f\0 ÜêÑÀ  €\x0f\0 ò½ÑÀ!\0  €\x0f\0 è½ÑÀà~àx\x04\x0e\008ü\0\0@$\x1c1  €\x0f\0\bô
à~àx	Û\x03ð\x01ã\x1f\v•\x02\bÔyc5yt!\x02\x03ñ\b€\x02‰\x05Ñ\x14x\ba\x02ðÿØà~àx>\00V\r\00¡À  €\x0f\0\b0\và~ñÀáÅ\x01Ø" €\x0f\0 05\x19\br\0\bu" €\x0f\0 ¼!	\bP\0a½¯}©p  €\x0f\x06 0\x18àx¡À  €\x0f\0\bl\và~ñÀ" €\x0f\x06 ´\x17\buáÀ8Ò\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x137‘\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x137­Žüú|\v\0\b\0ô$\x12\x01\bk\x12\x03\x0e\x04#ƒ\x0f€ÿ\0\07»\x17»\x05#Ž\x0f\0\0oðk\x1a¸\x030Öð\x1a \x03\0Þ”¾ô\x1a \x03.Ö<\x16\x0e\x18\x04&Ž\x1f\0\x01\0\0A.\x0f\x16*Ö\r\x0fQ\x10$¦\x01Ø\x14®\x14Ž\x17\bQ\0ä†ây1\x7f&†\v	Å\x03\0Ø\x14®O\bQ\0€åÌ%"‘Ì%¢‘Ì%b’Ì%b‘^[ô\x05#ƒ\x0f\b\0[°Š 		k\x1aø\0ð\x1a \0\x18Ðô\x1a \0\x17Ð\x18Ò\0ˆ\x18Ñ\x05è\x04ž\0¢\x05ž\x04ð\0ž\0¢\x01ž\0¡ÁÀÁÅÁÆÁÇÑÀ\0\x16\x02p\00\b\x0fÏs\x01 ¨¬
 À'  €\x0f\x01 €Ÿ  €\x0f\x06  \x18àx\0\0\0¼ä\x17\0\0\0\0\0¾x5\0\bõ(\0\0Ü\x0e\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13?a\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13?{Žüúp\f\0\b\0ôÄ\x0e\00È\x0e\00¡À\0Àü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cȲ  €\x0f\0\b¤\fà~àxñÀ3h\x02y\x15 A\0\x12Ð\x10Ú6x\x11Ñ\x10à" €\x0f\x06  \x16\x04\x14\v4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\x034\x04\x14\x024\x04\x14\x014
%€\x1f\00pz*­  €\x0f\x04 LŽÑÀà~àxTx\00Ly\00¡À  €\x0f\0\b\b\rà~ñÀü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±>Ñ@‰>ÑUy@%
\x1e\x01<Фº@¡3Ù@€\x01j" €\x0f\0\b°/\0ØÿÙ" €\x0f\x04 \x1c"\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014\x04\x14\x1f4  €\x0f\x04 z¦\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13G1\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13GIŽüúd\r\0\b\0ôÑÀà~¡Àü\x1c\b°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²  €\x0f\0\b”\rà~ñÀáÅ\x1eÐ!Ò`ˆuz ‚3	Þ\x06\x1cл¹ux € ¢„½  ^[Ðux`€‡¹ ¢š»` \x19Ð €5Ø%‰" €\x0f\x04 h\x19\x04\x14\r4\x04\x14\x1f4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\x04\x14\x044\x04\x14\x034\x04\x14\04@€\0Ù  €\x0f\x04 h›  €\x0f\x06 0\x18àxx\x11\00ôy\00Ä\x11\00,z\00Øy\00À\x11\00@$\x1c1  €\x0f\0\b8\x0eà~àxñÀáÅ" €\x0f\0 @W"Ñ \bíC…@¡\0Ù\x02ê$¢$¥#¥\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13O\x02\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13OZŽüúX\x0e\0\b\0ô" €\x0f\0 XW©p  €\x0f\x06 0\x18àx@$\x1c1  €\x0f\0\b|\x0eà~àxñÀáÅ
%\0\x1fò" €\x0f\0 @W$…C…\x04éC¡\að\x0eÑ@¡\x03ê\0Ù$¢C…\x03ê$…$¢	Ò\0Ù$¥ ‚#¥\x02餡 ¢" €\x0f\0 XW  €\x0f\x06 0\x18àxä\x0f\00à\x0f\00¡À„è\x06†!è€%\x05\x18\x0eàÌ "€\x19ò#\bÑ\0\0\x16p\00/\x0f\0!A\0\x14!A\02!\x0f\00/F\x17	Ð\0" €\x0f\x03 ”\7\x1e\x02\x10\x0e\x06ð\x01Ø7\x1e\x02\x10\0Ø\x15¶<\x1e\x02\x10" €\x0f\x01 øë<\x16€\x10\x05è  €\x0f\x03 VU  €\x0f\x03 dUà~¡À  \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13VÔ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13W(ŽüúL\x0f\0\b\0ô€\x0f\0\bT\x0fà~ñÀ" €\x0f\x06 ´\x17˜p€áÌ!¢€Bô$Ð%Ò\0ˆ%j\x18`\x14x\baY\bQ\0"Ð\0ˆ"Ö\x18`\x14x\x13b\x1ab †u¶Š \x05\x06\x04å	#\x01\02¶\x02#O\0\x10wÊ!
\0Cöðy"\x7f	\x0f#\x103¶ðx\x14¶\x16Ð\x01Ù ¨$Š©pCŠ" €\x0f\x03 tY5\x1e\x02\x10\x13ð\x0fÒ\0Š‚àŠ%\x05\x16À}\vÑ \x01à€!\x05\a=e\0ª\x05ð\aЧ€¦ ©p  €\x0f\x06  \x18/\x0f\00,F\00Þ\x0e\00\x16\00”5\0\bñÀáÅ\x15Ð`€\0Ù#\x13\0)£\x04ƒ-“L“\x1d\r\x11\x14\x11Õ ŠíPq\x01Ú%ƒÂ"Œ\0Yaa¹\bðPq\x01Ù\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13^«\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13_NŽüú@\x10\0\b\0ôEƒÂ!L\0Ya" €\x0f\x02 LÁÅÑÀ  €\x0f\x03 Ž5  €\x0f\x06 0\x18˜\x10\00 \x10\00¡À  €\x0f\0\bx\x10à~ñÀáÅ\x10Рˆ" €\x0f\x01 Tö\x0eÑ ‰\x0eÒ\x02¹5y4y)b„áÌ%¡‘\vòáÊ â\r\x03ô\aè:Ø" €\x0f\x02 ´*  €\x0f\x06 0\x18àx.\x0f\00Þ\x0e\00LE\00¡À  €\x0f\0\b \x11à~ñÀ" €\x0f\x06 ¸\x17\0Ý©v\x04ð\x01Ý\x01æ-\x0e\x15\x12”íÏx" €\x0f\x03  Cwèc\x10\0ë	_\0€qè-€‚áÌ!bìõ\0€úñ©p  €\x0f\x06 (\x18àxñÀáÅ" €\x0f\0 ¨P\buêÿ¢è" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13ft\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13f—Žüú4\x11\0\b\0ô€\x0f\x03 x>\x04è$€
ð" €\x0f\x03 d>\x11è)€\x0fé$€\0!€\x0f\0\b\0\0±qÊ F\0¢x\x1d\x0e\x05p\0\0ÿÿ\x06ð" €\x0f\x02 ph\x04è\0Ø\x04ðŠ ÿ\x0f  €\x0f\x06 0\x18¡À  €\x0f\0\b\x11à~ñÀ" €\x0f\x06 ¬\x17 €\bv\r…‚àÌ â€xô\x11…\x10èD†\x03†\0Ù(s\x1ab\x10…Úº" €\x0f\x02 Äh„è\x01Ø\x15¥\x15…"è‹\x15\x04\x17\x01ØA†\x12¥V%\x10\x1a\b\x10 \0ßp…1Ø/$\0\x01õ¥ñ¥" €\x0f\x02 Di\x01†a\x10€\0Šè\b\x10 8Øô¥" €\x0f\x02 |j\x12…‰\bQ\0" €\x0f\x03 d>}\b\x10\0 €\r\rA\x10!\x10€\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13nC\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13n­Žüú(\x12\0\b\0ôm\b\x01$†\x03†V%\x0f\x1a\0!\x11\0(8Ø*r" €\x0f\x02 \x18j(\x1ap1Ø*r" €\x0f\x02 \x18j€àÌ ‚ÿÿÿÿ\x1aôL \0 Ì ‚¯ÿÿÿÿ\x14ô(\0Ø\x1ap\x12¥\x13¥1Ø" €\x0f\x02 |j(8ØP\x1d\0\x14" €\x0f\x02 |jÉp" €\x0f\x02 Ä—  €\x0f\x06 \x10\x18àxñÀ" €\x0f\x06 ¸\x17\0Ø\bu\x03ð\x01å;\rÕ\x11¯x" €\x0f\x02 Poxè-€‚áÌ!â€ôõ!€a\x11\0á	Q€‹\x10\x01\aP€Œ\x10\x03\a;y€ãÀ!¢\0\x03ð\0ÚHq\x0fÖ%\rÐ\x11:bÚºE¦‰\x10\x02\a\x02"@\0e¸^[\b…\0	Ò!’\x13\bE\0\x01²\að\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13v\x12\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13v0Žüú\x1c\x13\0\b\0ô" €\x0f\0 ¨P\x05¦  €\x0f\x06 (\x18àxÐ]\00T\x10\00¡À  €\x0f\0\bD\x13à~ñÀ" €\x0f\x06 ´\x17]Ö\x02Ž" €\x0f\x03 ,ã[׸p\0¯\0–Œ Œ\0ÝOòŒ L*òØà“ò\x12öÖàeò×àœô$Ž\x03Ž€á\0¯xôPÔ\x14x™`\x01‰£¸\x01©\x10ÝqðÙà„òŒ \fŠôJÑ\x14%@\x01\ba† ÿƒ\x06òŠ Ì\r@Ù{ðŠ Ì\r\fÙwðBÑ\x14%@\x01\ba† ÿƒöó\f\x16„\x10\x03–"–D–e–" €\x0f\x02 èCÕ\b\x10\0Š Ì\r\x1fÙ" €\x0f\x03 tÛ©p\x12Ù‘Ú\x03Û" €\x0f\x05 ÐmXð¨p" €\x0f\x04 X\x06\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13}á\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13}ûŽüú\x10\x14\0\b\0ô\0/Ò\x14 \x01\0)b¡	Þ€" €\x0f\x02 \x18D‘\b\x10\0©p\x12Ù©Ú\x03Û" €\x0f\x05 ÐmŠ Ì\r\x1fÙ5ð\x04Ž#Ž ¯‰è Ô4y™a\x01‰ƒ¸\x01© Ý\x02ð\x1fÝŠ Ì\r©q" €\x0f\x03 tÛ" €\x0f\x02 €„"ð\x1fÝŠ Ì\r©q" €\x0f\x03 tÛ" €\x0f\x02 à„" €\x0f\x02 \x04„\x10ð\x03Ž\0¯Š \f\x0e\x06ð\x03Ž\0¯Š L\x0e\0Ù" €\x0f\x03 tÛ\0Ý©p  €\x0f\x06  \x18àxüg\008\x11\00Ti\00Ui\00¡À  €\x0f\0\bÜ\x14à~ñÀ" €\x0f\x06 \x17:pÚp€&\x10 X\x16\x14 \0\x11\x10\0\\x16‚ Áâ@$\r"J%\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13…±\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13…ËŽüú\x04\x15\0\b\0ô\0 ¢ò	\x11˜ \x1d\b\x110p\x16€ Šè*p" €\x0f\0 äa\x01Ùp\x1eB “ðs
‘\0`\x16\x13 \x02$Ï$\x10çd\x16\x12 +ð\0"À$¢pS \x02\x02Š#\b\0\x02#\00wÊ!Å\x03\x02 €\x04ȸ\x02{pqÊ'Æ Ê'E /$À\x05V!\x03"\x14#\0\x14{@!\0\x06@#\x01\x06ˆr" €\x0f\x06  \x16\x02'Ï\x15\0%Õ%Øï\0"\x01%X\x1e@ BuÑ\x17\x12v\bß
pérJqJ#\0 \vs" €\x0f\0 ,\\x1aph¾\x13ðÊÑÊÒ\x14"À$	Û
%\0\x05\x14"Â\x04" €\x0f\0 <[\0#\x13%‚u\x02'\x0f\x15\x16ïS%\x01\x12\x0e!‚\x0f\0\0\0\x02PwÊ$† \\x16‚ Ê$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13‚\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13Žüúø\x15\0\b\0ôÅ#V!À"\x14 D\0]êˆqÜñ\x01Ù\\x1eB \x1eðS%\x02\x12\x0e"€\x0f\0\0\0\x02\x10vÊ …\x03\x10v	\x11ƒ Ê'\x06\x10V!Á"TyÊ'…\x13
pér" €\x0f\0 ,\â~\x1apýeäî  €\x0f\x06 Ø\x17àx¡À  €\x0f\0\b`\x16à~ñÀ" €\x0f\x06 \x17\bv\x02\x1aqJ$@ ê¸ Â$\x01%§Á\0Ý‘é\x15†0Ž\x01à\x15¦\bŽ\x03é\v\b\x10\x01©w\x19ðL$\0 \x01ßÊ'¡\x10\x13ð	\x10 ÷é0Ž\x05é(Ž\v	\x10\x01©w\x02ð\x01ßL$\0 Ñ â‚\x03ò\0\x18@#)Ž\x01Ø€áÀxHŽ@ X\0\0Ø\x0f
\x11\x01JŽ€âÊ b\0N ’\0\x02–ã¸Ì!\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13•S\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13•rŽüúì\x16\0\b\0ôâ€\x04ô@Å\x05ð\x03–‡¸@À@&\x11\x17*p" €\x0f\0 p=B"V \x01(€…\x13ò\x04\x10\x15 @%‚ \v\b…\0^[\f\x11 \b\x16„\x10-\f\x11\x01\0(ƒ\x05@" \x19\vE\0L$\0 v\x02\x01\0€&\x11\x17o\x02 \0 ®
\x05\0ºr\x05ð\a\r\x04 ºpO\f\x10 \0\x10\x02 Ép€ \x10\0;€‡êA)\x02\x01By; \x10ðA)B\x01By áŒ!\b€; È÷Ép
q" €\x0f\0 Øb\bðÉp
q" €\x0f\0 äa\b\x16„\x10\bðBÅ\b\x10€ DÀ\0\x10\0 AÀ\x02–\v\b\x1f\x03zu/ðÿ\f\x10@\x16\x01\x11D\x16\0\x11"x\x10x'\bÓ\x03;\x16€\x10\x01à\x0fxã\br;\x1e\x02\x10\x13†\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13!\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13<Žüúà\x17\0\b\0ô;\x1eB\x13\x01à\x13¦J#@ \x15ðk\b\x12	;\x16€\x10\x01à\x0fx¿\br;\x1e\x02\x10\x13†;\x1eB\x13B%U \x01à\x13¦Š ÿ\x0fzp-\f\x11\x01…À*q\x02Ú" €\x0f\0 Ø=\x05ÀB%• \x02Ùà¨\x01\x18B\x05*p" €\x0f\0 |=\x01À€àÌ$! \x03ô\x10Ž\bè\x11\x0f\x10úu\x06ð;\x1eB\x13¯ñJ'@ …Àªt
"€\x14J$\0x\0Ú¨ \0\x02/"‚’À"\x05\x03›|*q" €\x0f\0 Ø=\v\f\x11 \x05ÀCÀ\x06Á\x01)\x05\x11\x0f\x10 \x05À" €\x0f\x06 ,^[GðE\f\x10 \x05ÅÉp\0\x14\x040
qér©s" €\x0f\0 ÀdJt\bw)hJ$\0x\0ب \0\x02/$\x02“À \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13¤ñ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13¥\vŽüúÔ\x18\0\b\0ôE\0;y\x1de+ðà;\00Ð;\00$\x13\00l†Àéq`{\0Âét
"\0\x16J$\0x\0ب \0\x02/"‚’À \x05\x03›|\x01ÁJtJ$\0x\0Ý8`AÀ	o¨ À\x01/$\x02“À%\x05\x10^[x\x03À\x1deD\x16\0\x11\x02%Õ#JtJ$\0xø`\x10xD\x1e\x04\x10\0Ù¨ \0\x02/$\x02“À!Å\x03û\x7f*p" €\x0f\0 |=L%\0 €õ\bŽ„à⠁\x0f\x05 ¼_?\vQ …À*qJr" €\x0f\0 Ø=\x06À\x15è\x05Á\v
Q \0\0©\x03ð\0•\0±D\x16\0\x11Jq\x01à\x10xD\x1e\x04\x10*p" €\x0f\0 |=§À  €\x0f\x06 Ø\x17\0Ùà\x7f@\x18D\0¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13¬Á\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13¬ÛŽüúÈ\x19\0\b\0ôÌ\x19à~ñÀ" €\x0f\x06 ¨\x17m\x17\x12v:p\x14\x12€ \0Þ\x1aqü\x1cŒ³^[\bÑ\x01Ép\aÙŠ"Ï\x02(s" €\x0f\x05 Ðm\x01Ø¿ð" €\x0f\0 LW\x14\x12‚ `ÑOa`Õ\x16'Â\x13\x03ºâz\x15'‚\x10U}:\x1dB\x14" €\x0f\0 XWŒ!C¯*pÆö" €\x0f\x05 To\x06ð" €\x0f\0 äÉ:pŒ ÃÊ !\0Ê!¡\0Ê"\x0f\0\0Ú\x03Ê#á\x01⠁\x0f\x05 Ðm©p
q\x14Ú" €\x0f\x06  \x16	\v\bÑ\0\x01Ø
­*p9\x1dB\x14" €\x0f\0 ôm©pÊÿB\x1d„\x13D\x1d„\x13<\x1d‚\x13;\x1d‚\x13Ò¥Ó¥Ô¥Õ¥" €\x0f\0\b\\a€à\x01Ø\x03ô\f\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13´‘\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13´«Žüú¼\x1a\0\b\0ô\0 8\x1d\x02\x10©p" €\x0f\0 œ`IƒâÊ!‚\0\x02ô*\0؁áÊ \x0f\0\0Õ\0\x06ò‚áÊ \x0f\0\0ÿ\0\x0fx\0\x1c\x040€â\x01ÚÀz\x01âT%À\x18‹q" €\x0f\x06  \x16V%À\x12\bt€$\x10\x10À¤Š!\x10\0" €\x0f\x06 ,^[©q€!\x10\0\\x19‚\x03Ø¡Ù¡Š \b\0\x1a¡\x01Øp\x19\x02\0@%\0\x17éq" €\x0f\0 H=€àl\x0eáÿÊ A\x03" €\x0f\0 LW\x14\x12 \x0f!Â\x03\x14\x1a‚ " €\x0f\0 XW©p" €\x0f\0 hm\0Ø¡À  €\x0f\x06 \b\x18,;\00\f5\0\bÌ6\00ñÀ" €\x0f\x06 ´\x17ÞÑ\bv\x04æô\x1c\b°‹p\x03Ù" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13¼c\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13¼‚Žüú°^[\0\b\0ô€\x0f\0\bð/\x01Ù" €\x0f\0\bà/\x18Ù" €\x0f\0\bÐ/ÔÐ\0€ÔÕ€ \x04\0Fˆ …\x13ê\aˆ‘è\x11\0Á\x10à" €\x0f\x05 ŒË\0…\x11€\f\x16\x01\x18\x14à" €\x0f\x05 ŒË\0…O'Á\x17\x11€" €\x0f\x05 ŒË£À  €\x0f\x06  \x18ñÀáÅÁÕ
…" €\x0f\0 °v\b…\0Ù\x02Ú" €\x0f\x05 ¤Y\x06…\x01Ù\x02Ú" €\x0f\x05 ¤Y¸Ð\0€„\x10\0\x06" €\x0f\0 À4  €\x0f\x06 0\x18ñÀ" €\x0f\x06 ¸\x17\buü\x1cȰÉu&…®ÖA‰ ‰\bºEy ¶(p" €\x0f\0 (ÅŒ Ï\x04ô\0Ø\0¶\0–\fè\x06…"ˆ@%\0\x1a\x03á" €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13Ä1\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13Ä…Žüú¤\x1c\0\b\0ôÀ/\x11ð\x04\x14\x034\x04\x14\r4\x04\x14\x0e4ÑÀ\x06†"ˆ\x03ˆ\b¸  €\x0f\x05 \x1eÁ\x04\x14\x034\x04\x14\r4\x04\x14\x0e4ÑÀ  €\x0f\x05 *Á  €\x0f\x06 (\x18¡À  €\x0f\0\bð\x1cà~ñÀ" €\x0f\x06 ¤\x17ªÁ†Ñ‡×\x1c\x11\x13\0$\x11\x11\0(\x11\x10\0,\x11\x12\0\0‡Î¼\x10\0\0" €\x0f\x05 ˆË\0Ý ‡9\b\x1e\0¼\x11\0\0\x01Ù©r" €\x0f\x05 Ë\0‡\x05Ù©r¼\x10\0\0" €\x0f\x05 Ë\0‡\rÙ©r¼\x10\0\0" €\x0f\x05 Ë ‡tÐV!Ì	 ¨°\x11\0\0 ¬\0€O&\x01\x10\0Ú\x04à" €\x0f\x05 Ë" €\x0f\x01 ÀQ€àÀxÀyâ ‚\x0f\0 HMO#Ó&\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13Ì\x02\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13ÌYŽüú˜\x1d\0\b\0ôaÖ\0Ý	ðð!@\x03jq" €\x0f\x05 ŒË\x01å\0†U A\x04†\x10€\0ç\bCƒ\x01Ø" €\x0f\x05 hÎ\x03Ø" €\x0f\x05 hÎ\x05Ø" €\x0f\x05 hÎ\x02Ø" €\x0f\x05 hÎ\x04Ø" €\x0f\x05 hÎ\x10Ø" €\x0f\x05 L‹NÐ\0ˆ€àâ ‚\x0f\0 Œ"…ÿP!\x01 °¹€¹\0†¹\0€\x1cà" €\x0f\x05 ŒË\0†
q\0€E!Á\x03\x14à" €\x0f\x05 ŒË\0‡E"Â#€ \x04\0iˆF"Á+E!Á\x03ƒë\x06ˆ‚èHq\0†\0€\x10à" €\x0f\x05 ŒË\0†\0€" €\x0f\x05 ˆË\0ÙEÀ…À" €\x0f\0\b\00\0†\x05Á\0€" €\x0f\x05 ŒË(Ð\0€Cÿ\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13ÓÔ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13Ô(ŽüúŒ\x1e\0\b\0ô\0‡\0Ù¬\x10\0\0Œ¹\x14à" €\x0f\x05 ŒË\x01تÀ  €\x0f\x06 \0\x18¡À  €\x0f\0\b¸\x1eà~ñÀ" €\x0f\x06 °\x17\bv@ \r\x02\x1d€Œ ÿ¡ÁÈò\x12Ð\0€2 €\x0f\0\0\x06\x01€àÀò<…^…0rF\x01%\0\0…è¸~ô\x11Ð\0ˆ€àzòN\x16@\x11žè1†B†"‰2ºÊºTzcºá	\0\x14ð\x145\0\b\x12\00”\x12\00x\x04\00œ\x12\00–5\0\b¦5\0\b¥5\0\bX\f\00è\x17\x0fð°è‹r\x03Ø@'\x01\x14" €\x0f\x05 LY¡è1†\x03Ú\x02‰N\x1e\x04\x10\x04‡" €\x0f\x06  \x161†X†\x04‡\x03ácº\x04à" €\x0f\x06  \x168†N\x16@\x11Ki\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13Û«\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13ÜMŽüú€\x1f\0\b\0ô\x01áBx\x0exN\x1e\x04\x100y\x1dðR\x16\0\x11\x01à\x10xR\x1e\x04\x10*ðP\x16\0\x11$‡X†8`1†" €\x0f\x06  \x16N\x16@\x118†"x\x0exP\x16\x02\x11N\x1e\x04\x10Ya0y)\bs\0P\x1eD\x10\0Ø\x16¯\x1ap\x04‡"ˆ\x03á*·" €\x0f\0 L"N\x1e\x04\x14P\x1e\x04\x14\0…\v\b\x1f\x02\x11†\x02ð\x12†\x0f¦\x10¦0\x1e \x104\x1e \x10\0Ø\x1e¥\x14…R \0\0S \x01\04¥\x0f\b\x1e\0\x0e…\x1f¥,\x15\0\x18\x05ð\r…\x1f¥(\x15\0\x18€\x1d\0\x10\0…\x19\b\x1f\x02©p" €\x0f\x05 h¦6Ñ\0\x01à\0¡\x0eð»\x17\0ö\0ˆ€àâ ‚\x0f\0  \x060Ñ\0\x01à\0¡¡À  €\x0f\x06 \x18\x18àx¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13ãu\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13㜎üút \0\b\0ôx à~ñÀ¨\x17\0ö\0€\bÙ¬\x10\0\0\x14à" €\x0f\x05 ŒË"Ð\0€€à⠁\x0f\0  \x06\x01ØÑÀà~¡À  €\x0f\0\b° à~ñÀáÅ¡Á›\x17\rö\0…" €\x0f\0 \0"\0Ø\x02µ‹q©p" €\x0f\0 ˆv”\x17\x01ö Šè\0…\f\x19 \0\f\x11\0\bPà\x14\x19 \0\f\x11\0\b\x02¡\x14\x11\0\b\x04¡¡À\x04\x14\r4ÑÀ  €\x0f\x05 J¶¡À  €\x0f\x06 0\x18àx¤\x12\00¨\x12\00¡À  €\x0f\0\b(!à~ñÀ" €\x0f\x06 ¬\x17aÖ\0†¦Á°\x10\0\0\0€\bà" €\x0f\x05 ˆË\0†K\x10\0\x06\x06è$€\x04é`y\a€ †\x02ݰ\x11\0\x06‚àJ!@ Žô\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13ëB\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13ë^Žüúh!\0\b\0ô°\x11\0\0\0€" €\x0f\x05 ˆË †V!\x02	xŠƒãÆ ‚ÿÿ\x0fø|òLÓ\x04\x13\x10\0⃬\x11\0\0¸ª\0Ù‹¹\x14à" €\x0f\x05 ŒË" €\x0f\x05 –" €\x0f\x05 x—\0†¬\x10\0\0\fà" €\x0f\x05 ˆË †¡¿'\b\x1e\x01¼\x11\0\0\0Ù\x01Ú" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0XàO'B\x10\x11ð¬\x11\0\0O'B\x10\0ÙXà" €\x0f\x05 Ë\0†\0Ù
r€º¼\x10\0\0" €\x0f\x05 Ë\0†\0Ù±\x18X\x04¬\x10\0\0\x01ÚXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0"ÒXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0\bÚXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13ó\x12\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13ó.Žüú\"\0\b\0ô\0\0 ÚXà" €\x0f\x05 Ë\0†¬\x10\0\0Xà" €\x0f\x05 ˆË †j\x19\x18\0V!Ì	¬\x11\0\0 ¬\0Ù‹¹\x14à" €\x0f\x05 ŒË
Ð\0€€àÊ b\0â ‚\x0f\x05 œË¦À  €\x0f\x06 \x10\x18\x12\00X5\0\b\0\x05\x04\0œ5\0\bD¸S B€\x1ciÁ¸Ì !€Ê !\0\x16òâÌ !€
òàÌ"!€\x06òâÌ a€\x04ô\x01Ø\bð‚âÌ ¡€\x02Ø\x02ò\x03Ø\x04¸%xà\x7f\x0fxñÀ" €\x0f\x06 ¨\x17£Á\bu(w\x1ar\0Ù ª!ªZqÀéq" €\x0f\x05 ˜]\x01Á:p\x01\x10€ !‰ãÿ\x01\x18\x02 \x01À ˆ\0\x18B \0Þ\fð\0Á©p" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x13úá\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x13úüŽüúP#\0\b\0ô€\x0f\x06  \x16"Á=e\0"R >f‹p/!G\x04‚Â" €\x0f\x05 h^"Âíê\x13\x0eA\x14\x02'O\x14/'Ç“Ñõ\0Ø\x04ð\x02'€\x14\x0fx£À  €\x0f\x06 \b\x18àx¡À  €\x0f\0\b¤#à~ñÀ" €\x0f\x06 ¨\x17çÐà€€'\a’¡ÁqòŒ\x17\0\x10\x01ÛA(\0A(\x02\x01Á¸Á¹Ãº" €\x0f\x05 ày
"\0€\x18§_òS"\x04@'\0\x18" €\x0f\0\bÀ//!‡ \x14!@$²‡B Ò\0*q©p" €\x0f\x06 ,^[\0Ø\x1ap`À\x01\x1c\x020\x01Ø" €\x0f\x05 ÔÐÌÖ\0Ž/"‡$¡èJp\x02\x1d‚\x14" €\x0f\x05 $]\x01®\x14è\x03mB!Á /y‹r²ÿ\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14\x02±\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14\x02ËŽüúD$\0\b\0ô À\0­\x01\x14€0\x01­ À\x02®\x01\x14€0ø\x03®\x11ð\x02Ž\0­\x03Ž\x01­\vð\x01Ž€àÊ"\x02\aÊ B\x03˜\x0eâÿÊ!B\x04ép" €\x0f\x05 ´Õ³Ð\x01Ù ¨\0Ž\x01à\x0fx\v\bò\0\0®\0\x1e\x02\x14¡À  €\x0f\x06 \b\x18¡À  €\x0f\0\b°$à~ñÀ©Ñ\0©‡è" €\x0f\x05 \{\x05ð" €\x0f\x05 D{¤Ð\0Ù  ÑÀà~¡À  €\x0f\0\bà$à~ñÀáÅšÑ\x01؝Õ\x04©\x14\x15\x01\x18‰¹\x14\x1d`\x10" €\x0f\0 \x04C\x10\x15\0\x18ˆ¸Œ¸‘¸\x10\x1d \x10\x10\x15\0\x18°¸\x10\x1d \x10  €\x0f\x06 0\x18àx¡À  €\x0f\0\b,%à~ñÀáÅ\bØ" €\x0f\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14
\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14
œŽüú8%\0\b\0ôLV…Õ\x04\x10è\x0eØ" €\x0f\0 lV" €\x0f\x05 lÊ\x0eØ" €\x0f\0 LV\0Ø\x04­  €\x0f\x06 0\x18¡À  €\x0f\0\bt%à~ñÀzÑ\x14\x11\0\b©¸\x14\x19 \0\x10\x11\0\b¬¸\x10\x19 \0\x01Ø" €\x0f\0 \x04C" €\x0f\0 ¤\x05šñ¡À  €\x0f\0\b¬%à~ñÀ" €\x0f\x06 ¸\x17eÖ\0†¡Á€ 	\x06" €\x0f\x05 (Ô\x02Ø\x01Ù" €\x0f\0 44cÕ‹q\x06¥©p" €\x0f\0 ˆv †Šè\0…\f\x19 \0\f\x11\0\bPà\x14\x19 \0\f\x11\0\b\x02¡\x14\x11\0\b\x04¡(p" €\x0f\0\b”^[\x03Ø\0Ù" €\x0f\0 44 †\x02¥„\x19\x18\0\x03Ø\0Ù" €\x0f\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14\x12R\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14\x12oŽüú,&\0\b\0ô44 †	Ú\0ÛË\x19\x18\0KÑ\x0eØ" €\x0f\0 \x14V\x0eØ" €\x0f\0 lV" €\x0f\x05 lÊ\x01Ø" €\x0f\0 \x04C\x0eØ" €\x0f\0 LV¡À  €\x0f\x06 (\x18ñÀ\x0fx" €\x0f\x05 <΀àÊ !\0\x05ò\x02€2¸Ê¸"ññÀ" €\x0f\x06 ´\x17£Á\x01Øöÿc¸P \x01\0‹p/y" €\x0f\x05 ˜]\bu+Ð\0Á€\0‰¯\x7f\0®\x01‰\x01®¢®\x03æ	ð\x01ÁÉp" €\x0f\x06  \x16"À\x1efÀ‚Âéq" €\x0f\x05 h^"Âñê\x03m\x10x£À  €\x0f\x06  \x18àx¡À  €\x0f\0\b\b'à~ñÀ" €\x0f\x06 ¸\x17\x14Õ\x02…ßÿ\bv\x01Ø" €\x0f\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14\x1a!\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14\x1a=Žüú '\0\b\0ô\x05 ÔÐ\x06Ø\x0e­\x02…Éq" €\x0f\x05 Ìy  €\x0f\x06 (\x18¡À  €\x0f\0\bh'à~œ\x12\00 5\0\bµ5\0\bX\f\00¨\x12\00\0\0\0”x\x04\00lÊ\x05 ñÀ" €\x0f\x06 ¸\x17ð\x17\rð(v
¥6µ\x01Ø" €\x0f\x05 ÔÐÈ\x17\x01ð\x05‰ýè\x01Ø\x05©
…Éq" €\x0f\x05 Ôz  €\x0f\x06 (\x18àx¡À  €\x0f\0\b´'à~ñÀ" €\x0f\x06 ¬\x17¥Á¾\x17\x11v`ˆ\0\x11\x0e cÃáˆ@$\x103\r\x1cÂ3Cˆ\0Ý"ˆ\bºYa\x0e\x1cD0Eˆ/$H\0\x04\x10†\0@*\x05\x02\0%…\x01/%H\x01\x10\x1cD1Gˆf¿\x06ˆ\bº\x1ab…çPzf\x02-\0\x12\x1c„0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14!ò\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14"\rŽüú\x14(\0\b\0ô@'\0sõ Ï\x03ôx\0x\x06\0)\x01¬\0œ\0\x15\x01¸\0B,\0\x02a¸Žà>\x02\r\0@'\x03sõ#\0\0\x14{\0{\x0f\0&\0U\0\x17\x01\x17\x01?\0L\0\x17\x01\x17\x01\x17\x01\x17\x01\x17\x01\x17\x01\x17\x012\0—Ð\0€I"\x04\vè•ÑÉp©r" €\x0f\x06  \x16û\x01\0\0’ÑÉp©r" €\x0f\x06  \x16ç\x01\0\0ŽÑ±Ø	"\r\0Ép©r" €\x0f\x06  \x16Ï\x01\0\0…Ð\0€\x18èˆÑI"\r\x03Ép©r" €\x0f\x06  \x16Ùð\x7fÐ\0€\fè‚ÑI"\x02Ép©r" €\x0f\x06  \x16ÍðŠ 0\x05" €\x0f\x05 \x14´Š%ÿ\x17ÃðS!Á€\rôxÑ ‰	%\x10Ép©r" €\x0f\x06  \x16\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14)Á\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14)ÛŽüú\b)\0\b\0ôµð\x1d	Q\0sÑ ‰	%\x10Ép©r" €\x0f\x06  \x16©ð^[	‘\0mÑ ‰	%\x10Ép©r" €\x0f\x06  \x16›ðƒá™ôhÑ ‰	%\x10Ép©r" €\x0f\x06  \x16ð€ãô©p" €\x0f\0 \0#" €\x0f\x05 ¨Ó\x0e\x14\x011]Ð °\x7fðŒ#\x02€{ôZÐ\0\0®\x12\x14\r1€åè\0	\0sðãqôUÐ\x01ÚU×  ¡ ¢ L¨TР¨TÐ@¨TÐ °\0‡„\x10\0\x06¿\b\x10\0{\f\x10\0" €\x0f\x05 D{NЩq\x03Ú\f\x19D# ¨LР¨LР¨¡¨\x10\x11\0 " €\x0f\x05 ¤Y\0‡©q€ \v
" €\x0f\x05 DÕ\0‡\x01Ù€ \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x141‘\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x141¦Žüúü)\0\b\0ô\a\x02" €\x0f\x05 DÕ\0‡€ \v
" €\x0f\x05 \fË\0‡€ \a\x02" €\x0f\x05 \fË\0‡€ \a\x04" €\x0f\x05 \x14!ð" €\x0f\x05 \{\0‡€ \a\x04" €\x0f\x05  \x15ð¡ãÌ%¡€Ê%\x10\x0fò\0\x10€ Œ B€\0Ý	ô&Ð\x06\x10\r!\0\v\rr\x10\0®\x01Ý=\r\x12\x10\x06\x10\0!\x1f\r\x03\x10\x1cÐ\0€(€©p2¹Ê¹" €\x0f\x06 ˆ\x18\x01ß\x02é\0ß\0ØÉqÉr©sS'\x04\x10" €\x0f\x05 $Ï©p¥À  €\x0f\x06 \x10\x18x\x04\00ø\x03\00¼Y\x06 ¨Y\x06 ÐY\x06 Z\x06 œZ\x06 4\\x06 ´Z\x06 4[\x06 ´[\x06 Š\x12\00¨5\0\bœ\x12\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x149b\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x149Žüúð*\0\b\0ô¥5\0\b¦5\0\bŒ\x12\00¡5\0\b 5\0\b¢5\0\b@$\x1c1  €\x0f\0\b\x18+à~àx©p" €\x0f\0 °v
 €\x0f\00h\x1c\0ِ¹\0Ú" €\x0f\x05 ðÿ  €\x0f\0 8\x1dà~àxñÀ" €\x0f\0\b\\a\x06èUÑ\0”¸\0¡ÑÀà~ñÀ" €\x0f\0\b\\a\x06èOÑ\0’¸\0¡ôñàx@$\x1c1  €\x0f\0\b„+à~àxñÀáÅHÐ\0ˆ­èHÐ\0ˆ«è" €\x0f\0 <'%èBÕ …P!€\x04“¸\0¥BÐ\0ˆ’èP!\0\x04²¸´¸“¸\0¥>Ð(\x10\0\b!\b\x1e\0=Ñ\0 ¸\0¡
ð" €\x0f\0\b\\a\x04è\0…´¸\0¥7Ð\0€\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14A1\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14ALŽüúä+\0\b\0ô@x  €\x0f\x06 0\x18àx@$\x1c1  €\x0f\0\b\0,à~àxñÀáÅ/Ð\0ˆ®è/Ð\0ˆ,è\x1eØ" €\x0f\x05 $]&è"Õ …P!\0\x05•¸\0¥"Ð\0ˆ‘èP!\0\x04²¸´¸•¸\0¥\x1fÐ(\x10\0\b\x1f\b\x1e\0\x1dÑ\0 ¸\0¡	ð" €\x0f\0\b\\a\x05è\0…²¸\0¥^[Ð\0€@x  €\x0f\x06 0\x18ñÀáÀáÁ\x17Ñ ‰^[	\x1e\0" €\x0f\0\b\\a‡èÁÁÁÀÑÀ  À\aÁÁÁÀÑÀ”¹\0Ú  €\x0f\x05 ðÿ\ñàxØ\f\00Ò\f\00Ó\f\00Ñ\f\00\0\0\0–à\f\00¬\f\00Ô\f\00é\f\00´\f\00¨\x04\00¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14I\x05\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14IkŽüúØ,\0\b\0ôÜ,à~ñÀ" €\x0f\x06 ¨\x17¨Ð\0€\0ݰ\x10\0\0\0€\bà" €\x0f\x05 ˆË£Ñ $‰€áÌ!¢Vò¡\x17\x10v!\b\x1e\0 Ð\x01Ù\0\x18B   žÐ  žÐ  žÐ ¨\x01ØGð\0\x10 …	\x10\0—\x17\x11v(¸—\x17\x12vS A\x03\0\x11\x02 •וÖ\x17
@\0\0\x19@ \0\x1a@# §\x01Ø\0®,ð\0Ž\vè" €\x0f\0 ¨P §\0\x1a\0  ®©p\rð" €\x0f\0 ¨P\0\x12\x01 "x\v\b3\0\0§\x13x\0§Œ \x03‚Òö\0ސè\0\x19@#\0\x1a@# §\x01Ø\0®\0\x18B#\x02Ø" €\x0f\x05 DÑ\0Ø  €\x0f\x06 \b\x18àx¡À  €\x0f\0\bÌ-à~\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14Pß\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14QžŽüúÌ-\0\b\0ôG\bó\x01\0Ù‡èmÐ\0€@ \x01\x06^[ð\x19\b\x1e\0jÑ\x1dx\x04¸ \x16x€!\x02
\x19a\x11ð\x11\b‘\0dÐ\0€\bq€!	\x06	ð\x0f\b\x11\x01`Ð\0€\bq€!\v
à\x7f(pàx¡À  €\x0f\0\b$.à~ñÀ" €\x0f\x06 ´\x17¢Á"€\0Þ\bw\x04\x1c„3Û	\x1f\x02A)€\x03Á¸‚àÌ"!€eôUÕ(…&\x1d‚\x13\x03‰B‰\b¸X`\x04à\x12µQÐ\0€à\x03Ø	ô\x01‰ ‰\b¸%x" €\x0f\x05 4Y5\b\0Â9\bÐ\0‹q" €\x0f\x05 LY€àuô\0À(…R•" €\x0f\x06  \x16\0À" €\x0f\0 Ø!-ð\b…" €\x0f\0 Ø!cð\x03Ø@%\x01\x14" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14X¥\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14XÐŽüúÀ.\0\b\0ô€\x0f\x05 LYšè\x04…\x03Ú(…" €\x0f\x06  \x16(…J‡\x04…\x03áÒºcº\x04à" €\x0f\x06  \x16\x04…" €\x0f\0 L"\að,Ð" €\x0f\0 8!\b…\0Ù\x02Ú" €\x0f\x05 ¤Y5ð1	\x1e\x02\bàÌ"!€\x12ô Ð.\x18‚\x03Ö°
€" €\x0f\0 °v" €\x0f\0 Œ"\x1dÐÀ¨\x1fð;	\x1e\x02.¹Á¹‚áÌ"!€\x17ô" €\x0f\0\b\\a\x12Ñ\vè\x0e‰\x13\b‘\x01Ω" €\x0f\0 ¤"\aðީα" €\x0f\0 €"¢À  €\x0f\x06  \x18\x12\00œ\x12\00¦5\0\b¨5\0\b¬5\0\b°5\0\b´5\0\bx\x04\00–5\0\bœ<\x06 ¥5\0\bJ"@\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14`r\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14`Žüú´/\0\b\0ôJ#€\x11  €\x0f\x06 ø"J"\0\x10J#€\x14  €\x0f\x06 ä"J"\0\x10J#€\x11  €\x0f\x06 ä"J"À\x14J#@\x10  €\x0f\x06 ä"J"@\x17J#@\x10  €\x0f\x06 ä"J"\0\x11J#€\x11  €\x0f\x06 ä"áÅÏp\x06 ´= €\x01ÛÏp\x06 ¸=(\x19à\0@€Š%\x11\x12Ïp€\0 @`\x1a`\x03h\x1a \0Ïp$\0\0$l\x1a \0dØ \x1aà\0\x1c\x1a \0\x04Ø\x18\x1a \0\0Ø(\x19 \0\0Ø‘¸\x198\0à\x7fÁÅàxÏq\x06 ¸= \x1c\x19 \0à~àxÏq\x06 ¸= \x18\x19 \0à~àxÏq\x06 ¸= \x04\x19 \0à~àxÏp\x06 ´=\0€\0Ù(\x18`\0à~\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14hB\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14hYŽüú¨0\0\b\0ôÏp\x06 ´=\0€\x01Ù(\x18`\0à~Ïq\x06 ¸=@H\x12\x01\b  L\x12\x01\bà\x7f$¨àxñÀáÅ\buÏp\x06 ¸=\0€P\x10\0\b\x04 €\x0f\0€ÿ\0\0¥\x03† ý\x0fB(þ\x0eò\0" €\x0f\0 HA\0­©p" €\x0f\0 hA\x06ðÏp­Þï¾\0¥  €\x0f\x06 0\x18Ïq\x06 ¸= 8\x11\x01\b  \x03ˆ† ý\x0fà\x7fG¸ñÀáÅ\buÏp\x06 ¸=\0€\\x10\0\b\x04 €\x0f\0€ÿ\0\0¥\x03† ý\x0fB(þ\x0eò\0" €\x0f\0 HA\0­©p" €\x0f\0 hA\x06ðÏp­Þï¾\0¥  €\x0f\x06 0\x18Ïq\x06 ¸= D\x11\x01\b  \x03ˆ† ý\x0f\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14p\x13\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14p,Žüúœ1\0\b\0ôà\x7fG¸Ïp\x06 ¸=\0€\x01Ù(\x18`\0à~Ïq\x06 ¸=  \x19 \0à~àxÏp\x06 ´=\0€\x01Ù(\x18`\0Ïp\x06 ¸=\0€\x02Ù\x04\x18`\0à~àxÏt\0Ÿ\0\0\x04¸\x14xš` \x12\0\b&x \x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`(\x12\0\b&x(\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`(\x12\0\b\x05y(\x1a`\0à~Ïq\0Ÿ\0\0<\x11\0\bŒ¸<\x19 \0@\x11\0\bŒ¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¸Ž¸<\x19 \0@\x11\0\b­¸®¸@\x19 \0à~Ït\0Ÿ\0\0\x04¸\x14xš`0\x12\0\b&x0\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`0\x12\0\b\x05y0\x1a\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14wá\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14w÷Žüú2\0\b\0ô`\0à~Ït\0Ÿ\0\0\x04¸\x14xš`,\x12\0\b&x,\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`,\x12\0\b\x05y,\x1a`\0à~Ïq\0Ÿ,\0\x04¸\x14x0!\0€à~Ït\0Ÿ,\0\x04¸\x14xš`\0\x1a`\0à~àxÏp\0Ÿ\0\0\x10\x10\0\bà~Ïq\0Ÿ\0\0\x10\x19 \0à~Ït\0Ÿ\0\0\x04¸\x14xš`8\x12\0\b&x8\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`4\x12\0\b&x4\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`4\x12\0\b\x05y4\x1a`\0à~Ït\0Ÿ\0\0\x04¸\x14xš`8\x12\0\b\x05y8\x1a`\0à~Ïq\0Ÿ$\0\x04¸\x14x0!\0€à~Ït\0Ÿ\0\0\x04¸\x14xš` \x12\0\b\x05y \x1a\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14\x7f±\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14\x7fÇŽüú„3\0\b\0ô`\0à~Ïq\0Ÿ$\0\x04¸\x14x0!\0€à~Ïq\0Ÿ\0\0<\x11\0\bE @\x01<\x19 \0@\x11\0\b€¸@\x19 \0@\x11\0\b¢¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b„¸<\x19 \0@\x11\0\b¤¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¤¸<\x19 \0à~àxÏq\0Ÿ\0\0<\x11\0\b†¸<\x19 \0@\x11\0\b¦¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¦¸<\x19 \0à~àxÏq\0Ÿ\0\0<\x11\0\bޏ¸<\x19 \0@\x11\0\b®¸¯¸@\x19 \0à~Ït\0Ÿ \0\x04¸\x14xš`\0\x1a`\0à~àxÏt\0Ÿ\0\0\x04¸\x14xš`L\x12\0\b&xL\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14‡‚\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14‡šŽüúx4\0\b\0ôL\x12\0\b\x05yL\x1a`\0à~Ïs\00\x04\0 \x13‚\0?‹\x05è\x1e‹8`X`\x02ðXaà\x7f"¸Ïp\0¼\0\0 \x10\0\bŒ Eà\x7fo \v\0Ïq\00„'\0€àÊ \x0f\0\0\0\x03
ò!\r\bE\0Ïp\0@¨\x04"x\x10xà~àx\0Ù\bt€$\x10\x10 ¤Š!\x10\0  €\x0f\x06 ,^[àxȸ\x0e ‚\x0f\0\0\0\x02PqÊ †\0à\x7fÊ E\0\0\0\0\x01\0\x02\0\x01\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14Q\x0e\x04\x01Žü\0\0\0\0U\0\0\0U\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14gŽüRl5\0\b\0L\0\0\0\0\0\0\0\0\0\0\0\0>þ\x0eþ€þPþ>þ°ý€þòý\0\0\0\0\0\0\0\02\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14“9\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14“NŽü
\0\0\0@\0\x04\x02\x03\r\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14—!\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14—6Žü
\0\x01\0\b\0\x04\x02\x03\r.\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14›	\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14›\x1dŽü
\0\x04\00\0\x04\x14\x01\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14žñ\x0e\x04\x01Žü\0\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14Ÿ\aŽü	\0\0\0@\0\x03\x02\x03\r\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14¢Ù\x0e\x04\x01Žü\0\0\0\0S\0\0\0S\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14¢í/üP\0\0\0\0\0\0\0\0\0-1\x01ÿþ\x0fþÛÿ{‡\x01@ú\x1a 
\a\x06\b\x05\a\a\a
\a\x06\x04\x06
¤	¸Ì
\x04\0\x01À\v\x14\b\0\r\0\x1e\0¸\vd\x19ȯ¨aÐ\a\x04\0\vZ††\x04C³|\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14¦Á\x0f\x04\0\x01/ü\0\0\0\x04\0\0\0\x04\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14ª«ÿ\x02\x19\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14ªÜ\x11ü\x02\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14®‘\x0e\x04\x01\x11ü\0\0\0\0\x7f\0\0\0\x7f\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14®®`ü|\x01\x01\x01ߎßÚN\0\0\0\0«¿ÄÉÎÓØÝâçìñö\0\0\0ìîðòôöøúüþ\0\x02\x04\x06\b
\x03¸\v\0,\x012\x14\x1a\0\0 \0\x01\0\x03\0\x01\0\x02\0\0\x03\0 \0\x01\0\x03\0\x01\0\x05\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14²y\x0e\x04\x01`ü\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14²•\x11ü\x02\0\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x14é3\x0e\x04\x02\x11ü\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x14é‹\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15\x1fÜ\x0e\x04\x02\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15\x1fî\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15#Â\x0e\f\x01\x03\x10\0ÿþ\x0fþÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15#Ô\x01\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15'©\x0e\f\x01\x01\x10\0\x06\0\x05\x06\x02\0\0\x05\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15'¸	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15+“\x0e
\x01	\x10\0Dz\aý‹\f\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15+²\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15/€\x0e\v\x01\x05\x10\0ý\x03`\x05\0\x05\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15/—#\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌÓ\x153c\x0e\a\x02#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x153u\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15C\x04\x0eü\x01\x14\f\0Bluemoon Universal Bluetooth Host Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15C\x18%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15Fê\x0e\x06\x01%\f\0`\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15Fö\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15JÒ\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15Jå\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15N¹\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15NÄ^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15R¡\x0e\b\x02^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15R¬F\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15V‰\x0e\x05\x02F\f\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15V”\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15Zq\x0e\a\x01\x02 \0^[\0\a\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15Z{\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15^Y\x0e\f\x01\x03 \0\x01\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15^c\a \0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15bA\x0e\x05\x01\a \0	\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15bM\x0f \0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15f)\x0e\x05\x01\x0f \0 \0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15f4\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15j\x11\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15j^[\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15mû\x0e\x04\x01\x01\f\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15n	\x01 \b\x1f\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15qâ\x0e\x04\x01\x01 \0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15qô\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15y±\x0eD\x01\x02\x10\0ÿÿû\x03Îÿïÿÿ?ÿŸó\x0fèþ?÷ÿ\x1c\0\0\0a÷ÿÿ\x7f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15y¼R\fñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15}™\x0e\x04\x01R\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15}¤E\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15\x0e\x04\x02E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15ŒX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15…i\x0e\x05\x01X\f\0
\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15…u\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15‰Q\x0e\x0e\x01\x04\x10\0\x01\0\0\0\0\0\0\0\0\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15‰l\x12\f\a\0\0\0\0\0\0\x01\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÓ\x159\x0e\x06\x01\x12\f\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15E\x0f\b\x02\a\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15‘!\x0e\x04\x01\x0f\b\0\0\0\0#\0\0\0#\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15‘,\b  \x1f\x02\x01\b\x02
	\x18\bBluemoon Universal Blue\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15•
\x0e\x04\x01\b \0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15•}\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15˜ò\x0e\x0e\x01\x04\x10\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15™\x02\x18\f\x02\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15œÙ\x0e\x04\x02\x18\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15œã\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15 Á\x0e\b\x01\r\f\0\x05\0\0\0\0\0\0û\0\0\0û\0\0\0\x02\0\0\0\0\0áÇÌÓ\x15 Ó\x13\føubuntu-desktop-0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x15¤©\x0e\x04\x01\x13\f\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16\x10A\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16\x15ô\x0e\x04\x01\x01\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16\x16\bV\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16\x19Ù\x0e\x04\x01V\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16\x19ãE\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16\x1dÁ\x0e\x04\x02E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16\x1dÔX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16!ª\x0e\x05\x01X\f\0
\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16!¿\x0f\b\x02\a\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16%”\x0e\x04\x01\x0f\b\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16%«$\f\x03\0\x01n\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16){\x0e\x04\x02$\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16)\x1a\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16-d\x0e\x04\x02\x1a\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x1603\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16@ê\x0eü\x01\x14\f\0ubuntu-desktop-0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16A\bU\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16DÒ\x0e\x05\x01U\f\0\x01\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16Dì\x19\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16H¹\x0e\x05\x02\x19\f\0\x02\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0áÇÌÓ\x16HÒR\fñ\0\x11	ubuntu-desktop-0\x02

\x13\x03-\x11\x12\x11\x1f\x11\x1e\x11
\x11\v\x11\f\x11\x0e\x11\x03\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÓ\x16L¢\x0e\x04\x01R\f\0

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: lenovo-k4450-btmon-v1.log --]
[-- Type: text/x-log; name="lenovo-k4450-btmon-v1.log", Size: 34887 bytes --]

btsnoop\0\0\0\0\x01\0\0\aÑ\0\0\0\x10\0\0\0\x10\0\0\0\0\0\0\0\0\0áÇÌým‰\0\x01\0\0\0\0\0\0hci0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýmŒú\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýmº@\x0e\x04\x01\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýmº›\x05ü\0\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0áÇÌým¾&\x0e\r\x01\x05ü\07\a\x10\x01€\x02\x03\r\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýn\x1aù\x11ü\x02\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn\x1fÐ\x0e\x04\x01\x11ü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌýn\x1fòŽü
\0\x01\0\b\0\x04\x02\x03\r.\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn#µ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn#ÊŽüú\0\0\0!\0ô  €\x0f\0\bR\x02ø\aÂÿá\a€\x02ÔH\0\0ØH\0\0€0\bw(v—Õ’	 \x03épý\x02€0àx¤H\0\0\x02ð\x01ؽ\x02 0\x0fxàx¨H\0\0€0àx¬H\0\0\x05©¸\x05¡Z\rà\x01\x01ØŠ\b \x02\x0eظñ°H\0\0 H\0\0€0ZÐ\0€¢ÁV SŽ\0Ø\x01®=\a`0¢Ààx€H\0\0\x02Œ \x02€\bô©pÈÿ¸H\0\0À/àxÈH\0\0¯ÕF\x15€\x10ŸèÌH\0\0œÕH\x15€\x10¤è]\x15€\x10ÄH\0\0‚\x10Œê¹’¹”¹3¦3†³¹O!‚\x04ÀH\0\0‚\x10ŒêŒÐ\0Ù  €\x0f\0\bl,”\x17\0ö\bH\0\0À.n\và\0\x1apXÓ`\x13@ D\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn+†\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn+šŽüúô\0\0!\0ô\r\x01 ±
ðàx €\x01áÁÇÁÆà\x7fÁÅtH\0\0áÇü\x1cÁÇÁÆà\x7fÁÅxH\0\0áÇü\x1cà\x7fÁÅ|H\0\0áÇü\x1c\b´ü\x1cÁ\x05Ïý$H\0\0ïý\x01Ø	\bR\0\0Ø	ð\x18H\0\0\b¹%x\x02
ïý\x03ˆà\x7føàx H\0\0\x01ã!\v\x1cH\0\0®\fà)\x10Ú8ѧ®¨®\x14H\0\0\x1c@\x1e\x02\x10\x1d?\x1e\x02\x10\x10H\0\0Š	\x0fÿª\roû\0‡µ\x06‰\x06€&\fH\0\0€&\bwŠ C/\x02•P €€àx\x04H\0\0àxÒ\v\x03\fc­\x16»\x10ºE{\b¸exÂ\f\x1aˆ†è\x04Ø\x05Ù²\v÷n\x0f\0	X\x10Ó\x15\x01\x16‘¹(H\0\0È\x1d˜\x1f\x02p\00\b\x0fÏs\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn3V\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn3hŽüúè\x01\0!\0ô\x01 ¨¬8H\0\0
ôè\x17\0\x10Ïq@™\0 4H\0\0ù\x1f˜\x1f\x16\0\x1a[.ðàx0H\0\0\x15è^\x14\x03\x06¬»  €\x0f\x01 \x1a£,E# \0\x01#‰  €\x0f\x01 þ¦t <˜S ]˜5 V ,H\0\0†»^\x1eØ\x10  €\x0f\0\bà\x04\x18\x10€\x0f\0¼\0\0  €\x0f\0\bÐ\x03Ø\0\x02ð6Øb\f\0\0Ñ\x01€\x1f`H\0\0 \x03\x03Ø\x01ØîñdH\0\0À\x1eþ\b\x02\0àxTH\0\0ëvú\v\x0fïÏsPH\0\0ëvî
/ï\bu\x1eíd…%èa€#ë  €\x0f\0\bü\x04\x01Ùà\x7f «  €\x0f\0\bF\x04UzÇrœô\x12…w\b\x11\0nð\0ßõ¥\x01ØhH\0\0 €\bu\x11\x0fè\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn;&\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn;:ŽüúÜ\x02\0!\0ôD…\x03…ôàxJ&\0pV%\x12\x1a\x1e\x12€ lH\0\0Û\x1eB\x13±\x1f\x18\x10Ïr\00  €\x0f\0\b®\x04ƒ\0V	/ù\0Ú\x1c\x10\x03   €\x0f\0\b\f\x10\x01Ú\x10qDÆ@!Q ãó\bðàx\r\rÑ\x10XH\0\0\x0eè€%\x05\x18\x0eàÌ R\bà\x10	Û©p‘\x02\0\x16\H\0\0J&\0pàx\x16•\x01à:\b \0\x16µ\x1di\00ÿÿ\0\0pH\0\0€\x10§Õ ޏè<H\0\0i\bŸ\x03\x17Ðð \x0fÿ\x11\0\0\0\x04Ø\x04­N\f/ÿ‡ÐA é¹´\x17\0öDH\0\0@€ÂªB\x14/‰M\v^\x01@H\0\02\roü\x01\0OÐLH\0\0"ª\x01j1\x02 \0ïû\x12ÐHH\0\0\0“	Q\0ð \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnBé\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnCOŽüúÐ\x03\0!\0ôà\x7f\x01Øà\x7f€Ø\0H\0\0\x04€àx\0Úàx´H\0\0À\x04¥Á‡\x17\x11vè»°\x11\0\0UxyòနH\0\0C\0\x01Ø\x1d\a`\x03£Ààx˜H\0\0¬\x04\00Œ\a\00˜\x12\00ŒH\0\0ˆH\0\0\0\x03­ÁÐ\x17\x14vD\x14\x15 H\0\0ö
¯Ò\x03Ù\x01Ø\x02ð\0Ø`\0\x14à\0…àxàxŸ¹Â\x0f`\0\x19a_¥€\x1d@\x10~¥ºñ„H\0\0ƒ$9\bQ\0  €\x0f\0\b\\x1c\x19aA\x04\x04ðœH\0\0Ç\f^ \0…°\x10\0…ñ\x01`\x02¡Àà~àxÜH\0\0ÐH\0\0\0\x02b€\0Ý¢Á\x04\x1cD3¼H\0\0\0ö\0€°\x10\0\0\0€~\r  €\x0f\0\b\x12\x02¢ÁñÀAÀBÁ`\x01€$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnJÆ\x0e\x04\x01Žü\0\0\0\05\0\0\05\0\0\0\x02\0\0\0\0\0áÇÌýnJæŽü2Ä\x04\0!\0,
2×ñàxàxñÀ\x0e\v  €\x0f\0\bš\x02\x05©àxñÀj\f\0\0\0 ý\x03\x1f\x02\x05\0\0\0\0\0\0\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnN­\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnNÀŽüú \0\0’\0ô\x1e\0\0\0O\0\0\0R\0\0\0W\0\0\0Z\0\0\0\\0\0\0b\0\0\0Š\0\0\0Ï\x01\0\0Ô\x01\0\0Ù\x01\0\0õ\x01\0\0÷\x01\0\0^[\x02\0\0½\x03\0\0\x15\x05\0\0-\x06\0\0a\x06\0\0ê\x06\0\0p\a\0\0Þ\v\0€R\f\0\0—\r\0€¶\x0f\0€•\x10\0\0\x1a\x14\0\0õ\x14\0€\x13\x15\0€™\x15\0\0ç\x19\0\0÷\x19\0\0þ\x19\0\0\x02\x1a\0\0/\x1a\0\0j\x1a\0\0n\x1a\0\0À\x1a\0\0}^[\0\0e"\0\0ú#\0\04'\0\0E'\0\07(\0\0a(\0\0~)\0\0™)\0\0«)\0\0^[-\0\0r2\0\0W3\0\0&4\0\0N5\0\0X5\0\0þ5\0\0>@\0\0‘C\0\0±C\0\0çC\0\0äH\0\0¶I\0\0^J\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnV~\x0e\x04\x01Žü\0\0\0\0U\0\0\0U\0\0\0\x02\0\0\0\0\0áÇÌýnV‘ŽüR\x14\x01\0’\0L‘W\0\0·W\0\0ëY\0\0Z\0\0\x0e[\0\0\x18[\0\0d[\0\0¼[\0\0ß[\0\0\x11\\0\0T\\0\0ã\\0\0-]\0\0`]\0\0ë]\0\0É^\0\04_\0\02d\0\0ÿ\x7f\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnZX\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnZ§Žüú\0\x01\0\b\0ôï¾­Þ\0\0\0\0Bï¾B\x14\x01\0\b\0\0\0\0<\x06\0\bø\x01\0\bÀ\x06\0\bŒ\a\0\bÀ\b\0\b4	\0\b€
\0\bp\a\0\bä
\0\b$\v\0\bò\x02\0\bP\x03\0\bz\x03\0\b \x03\0\b`\v\0\bô\x03\0\bx\f\0\b\x18\x04\0\bü\f\0\bh\r\0\bl\x0e\0\b(\x0e\0\bÔ\x0e\0\bH\x0f\0\bl\x10\0\bÈ\x10\0\b„\x11\0\b\x1c\x05\0\b8\x13\0\bÐ\x14\0\bT\x16\0\bÀ\x19\0\b %\0\b¬\x1e\0\bä\x1c\0\bl \0\b¤ \0\bŽ\x05\0\b\x1c!\0\bÂ\x05\0\b˜#\0\b¤$\0\bÔ$\0\b %\0\bh%\0\b¨'\0\b\b+\0\bÐ,\0\bâ\x05\0\b\x0e\x06\0\bt+\0\bð+\0\b\x18.\0\bü&\0\b<'\0\bÀ-\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnb+\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnbyŽüúô\x01\0\b\0ô­Þáþ¡À
 €\x0f\0Á€\0\0\x18€\x0f\x0e\x13M¤  €\x0f\x01 |O\0\x16\0p\0¼L\x03\x04 €\x0f\x0eüÿ\x1f\x0fô\x05 €\x0f\x10\x02\0\0\0\x1e\0p\0¼L\x03" €\x0f\x05 |Ø	ð\x05 €\x0f°\0\0à\0\x1e\0p\0¼L\x03ÑÀà~Š!\x06\x04B!A\0L!\0€ú\aÂÿ
!€\x0f\0”\0\0\x10\x11\0\0\v €\0\0\0\x10à \x0f\0 ÌYP \0\x03\x10\x19\0\0\x14\x11\0\0P @\x02\x14\x19\0\0  €\x0f\0 ÌY\x1cŠ\x04©}Še©\b»\x04#ƒ\x0f\0\0\0ÿex\0\x1e\0p\0Á\x14\x02\0\x16€p\00¤\0\0\x16p\00ø\x12"x\rx\x11¸\x04 €\x0fþ\a\0\0\0\x16\x01p\0¼$\x02\x04!\x0f\x01øÿÿ%x\0\x1e\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýniû\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnj5Žüúè\x02\0\b\0ô\0p\0¼$\x02à~àx¡ÀÓ\x1dX\x10\0\x16\x01p\0¾<\0\x04!\x0f\0€\0\0A)þ‡\aò
!€\x0fº\0ÿñÓ\x1dX\x10\0\x16\x01p\0ÁÐ\0\x04!\x0f\0\0\00A)>ƒ\x0eò‡\x15\x01\x16\x04!\x0f\0þÿÿ\x05!\x0fµ\0\0\0‡\x1dX\x10  €\x0f\x01 |ž¡À\0\x16\0p\0ÁÐ\0\x04 €\x0f\0\0\00A(>ƒà ‚\x0f\x01 þ¦‡\x16\x02\x16  €\x0f\x01 ð¦¡ÀÚ\x1fX\x10Û\x1f˜\x1f Ž\x041ø\x1f˜\x1f(\0ƒ ù\x1f˜\x1f\x15\0Ò¶  €\x0f\x01 „ ¡À¸è\x1f\0\x10Ú\x1f˜\x1f@™\0 Û\x1f˜\x1f Ž\x04\x01ø\x1f˜\x1f\x04\0\0\x10ù\x1f˜\x1f\x16\0Ú6  €\x0f\x01 „ E\x14\x03\x06ˆ»E\x1cØ\0Š!\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnqÐ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnr\fŽüúÜ\x03\0\b\0ô\x04\02Øa¸\x06èE\x14\x03\x06+{üõ  €\x0f\x01 à·@$\x1c1
 €\x0f\00„yð @\0\r\bŸ\x04  €\x0f\x04 \x1c9  €\x0f\x04 €9¡À&\0!\0@€Ïq\00ôy\0\x16€p\00x\x11\x15y\0„¸\0¡  €\x0f\x04 ~>  €\x0f\x04 ØB\x1a`UzÇr\00$YŠà8\x12\0á Ê\aÊ *\00\x12ƒ\01\x12„\0?\v\x03\x01y’6\x12\x04\x01	\fÃ\09\x12\0àÌ â€Ì "‚Ì b‚\bò@$D\0/$\b\x016\x1a\x04\x01\x1a’\x15\f\x02\0\0Û{²à\x7f(pà\x7f9\x12€\0à\x7f(pàx@$„\x02zb\x02$ƒ€\0Ú\x18\0\x03\0s{" €\x0f\x02 ¬H  €\x0f\x03 0'\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnyœ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnyùŽüúÐ\x04\0\b\0ô" €\x0f\x02 |H  €\x0f\x03 0'Q\x16\0\x16¦¸Q\x1e\x18\x10Q\x16\0\x16†¸Q\x1e\x18\x10  €\x0f\x01 \x10¬a\x13‚\0\v
Q\0\x01Ù\0^[B 
\x11\0\0Ù\0^[B   €\x0f\x02 „ƒ¡ÀÛ\x1eB\x13ü\x1c\b°ü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cÈ·Z\r@\0\x04\x14\x1f4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014\x04\x14\04  €\x0f\x02 ¼Ñ@$\x1c1" €\x0f\0 @Wü\x1c\b°J @\0\0\x1e\0p\0\bœ5\x04\x14\04" €\x0f\0 XW¬\x11\0\0  €\x0f\x05 Àž@$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnu\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn¨ŽüúÄ\x05\0\b\0ô\x1c1\ax\0\x1e\0p\0\bœ5*p" €\x0f\x05 dÀ  €\x0f\x05 HÅ@$\x1c1S¦E\x16‚\x10…ê  €\x0f\0 €\x1fñÀáÀ" €\x0f\0\bD+ÁÀÑÀ  €\x0f\0 ”\x1f@$\x1c1S¦E\x16‚\x10…ê  €\x0f\0 X\x1fñÀáÀ" €\x0f\0\b\+ÁÀÑÀ  €\x0f\0 l\x1fàx¡À  €\x0f\0\bH\x06à~à\x7f\x01Ð\x02\x03\r.\0Ú\x03ð\x01â\x11
\x13\f=ÐVx €úé\x03ð\0Øà~áÅáÆ8Ña\x11\x02\x06`\x11\0\x06A\b…\06Ó\x02 Í\05ÐBx-\bC\x03\0Þ\x03ð\x01æ\x13\x0e\x13\x1c\x16!€\x03¡€õ
Aƒ\x02ð\0Øa `\x11\0\x06a\x19Ø\0bx\x10x\x06ð\x10x\x04ðBx\x10x\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn‰F\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn‰}Žüú¸\x06\0\b\0ôÁÆà\x7fÁÅàx¡À  €\x0f\0\bÌ\x06à~ñÀ" €\x0f\x06 ´\x17\bw" €\x0f\0 @W\x03ç˜pF'Ï\x10\x1cÖ\0†ð\x7f€àÊ \x0f\0\0\0\x03\aò!†\a\bE\0\x15Ð"x\x10x\r\bÃ\x03Øÿ\r\bÂ\x03Ðÿ
%\0	ôˆp" €\x0f\0 XW\0Ø\x10ð\x01†\x1fg\0¥á¦á¥\0†„è\0…\0¦ˆp" €\x0f\0 XW\0…  €\x0f\x06  \x18\x04&\00¨\x01\0@¨\x04\0@„'\00\vÐ\0ˆà\x01Øà\x7fÀx\bÑà\x7f\0©àx¡À\x06Ñ\0Ú@©«®¡®  €\x0f\0 tÙà~àxt5\0\b¡À  €\x0f\0\b˜\aà~ñÀ" €\x0f\x06 ¨\x17Š!C/\x0f	# \bw\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn‘\x16\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn‘,Žüú¬\a\0\b\0ô^[\0 \0;Õép" €\x0f\0 äÑ" €\x0f\0 <Ò\bu\x02\x15\x12\x11ép\x04\x15\x10\x11" €\x0f\x04 p\x03+\b\x0f\0\0ÿÿ" €\x0f\x01 \x14>‰è\0ر٠Ú\x02Û" €\x0f\x05 Ðm" €\x0f\0 \x18×(ÖÉq" €\x0f\x01 HA" €\x0f\0 äÙ\x04\x1e„\x14\x10®\0\x1e\x04\x14\x03•\x03¶\x04•\x01¶	Ž^[\bÐ\0\r\b‘\0
Ž\x0f\b\0" €\x0f\0\b\\a\x04è\x02–ª¸\x02¶" €\x0f\0\b\\a\aè\x02–¬¸\x02¶\0–¬¸\0¶\x0f\x0fC\x14\0§¸\0­\x05ðÿÜ\x0e'\0\x13\x01à\b®" €\x0f\0 ÔÙÉq\x03¦ép" €\x0f\0 ¤n©p" €\x0f\x01 €B  €\x0f\x06 \b\x18 D\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn˜æ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn™^[Žüú \b\0\b\0ô,D\00ñÀ" €\x0f\x05 ¸ëpÑ\x14©" €\x0f\x05 TlÑÀà~àx¡À  €\x0f\0\bÌ\bà~ñÀ*\b\0\0‰èûuÁÅ  €\x0f\x01 X		ðûuÁÅ\fÙaÁ  €\x0f\x01 T	åññÀáÅ×p\0\0Wü\x01Ø\x15ô\Ð\0ˆ€à\fØ\x11òZÑ[Ð\0Ý©r" €\x0f\x01 ÐXWЩq" €\x0f\0 Üê©p  €\x0f\x06 0\x18àx¡ÀH\x1e\x02\x10ü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cȲü\x1cÈ·©p" €\x0f\0\b°	\x04\x14\x1f4\x04\x14\v4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn ·\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn¡\x1dŽüú”	\0\b\0ô\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014  €\x0f\0 dûà~àxñÀ" €\x0f\x06 ´\x17¡Á0Õ\bv@ O\x06‹p@%A\x1e\x03Ú" €\x0f\x06  \x16\0Ú\fð3$ƒ03'\x10\v	ã\0\0$€0 ¨\x01âí
Ò€@%@\x1e‹q\x03Ú" €\x0f\x06  \x16‹p©qAá\x03Ú" €\x0f\x06  \x16\0Ú@&O\x18\fð3$ƒ03'\x10\v	ã\0\0$€0 ¨\x01âí
Ò€©pAà‹q\x03Ú" €\x0f\x06  \x16&\x16À\x107\x15Á\x10	\bC\07\x1d\x02\x10(\x16À\x108\x15Á\x10	\bC\08\x1d\x02\x10¡À  €\x0f\x06  \x18àx„\0\00\b\x0e\00¤\b\0\bWü\0\0\x04\0\00¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn¨‡\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn¨ÁŽüúˆ
\0\b\0ôŒ
à~ñÀ\x14Ð €\0‘5\b\x0f\0\08ü\x03‰€àÌ b€Ê!¢\x04\x06ô" €\x0f\0\bh\a\0Ù\vÐ" €\x0f\0 ÜêÑÀ  €\x0f\0 ò½ÑÀ!\0  €\x0f\0 è½ÑÀà~àx\x04\x0e\008ü\0\0@$\x1c1  €\x0f\0\bô
à~àx	Û\x03ð\x01ã\x1f\v•\x02\bÔyc5yt!\x02\x03ñ\b€\x02‰\x05Ñ\x14x\ba\x02ðÿØà~àx>\00V\r\00¡À  €\x0f\0\b0\và~ñÀáÅ\x01Ø" €\x0f\0 05\x19\br\0\bu" €\x0f\0 ¼!	\bP\0a½¯}©p  €\x0f\x06 0\x18àx¡À  €\x0f\0\bl\và~ñÀ" €\x0f\x06 ´\x17\buáÀ8Ò\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn°V\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn°‚Žüú|\v\0\b\0ô$\x12\x01\bk\x12\x03\x0e\x04#ƒ\x0f€ÿ\0\07»\x17»\x05#Ž\x0f\0\0oðk\x1a¸\x030Öð\x1a \x03\0Þ”¾ô\x1a \x03.Ö<\x16\x0e\x18\x04&Ž\x1f\0\x01\0\0A.\x0f\x16*Ö\r\x0fQ\x10$¦\x01Ø\x14®\x14Ž\x17\bQ\0ä†ây1\x7f&†\v	Å\x03\0Ø\x14®O\bQ\0€åÌ%"‘Ì%¢‘Ì%b’Ì%b‘^[ô\x05#ƒ\x0f\b\0[°Š 		k\x1aø\0ð\x1a \0\x18Ðô\x1a \0\x17Ð\x18Ò\0ˆ\x18Ñ\x05è\x04ž\0¢\x05ž\x04ð\0ž\0¢\x01ž\0¡ÁÀÁÅÁÆÁÇÑÀ\0\x16\x02p\00\b\x0fÏs\x01 ¨¬
 À'  €\x0f\x01 €Ÿ  €\x0f\x06  \x18àx\0\0\0¼ä\x17\0\0\0\0\0¾x5\0\bõ(\0\0Ü\x0e\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn¸\x19\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýn¸bŽüúp\f\0\b\0ôÄ\x0e\00È\x0e\00¡À\0Àü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b²ü\x1cH²ü\x1cˆ²ü\x1cȲ  €\x0f\0\b¤\fà~àxñÀ3h\x02y\x15 A\0\x12Ð\x10Ú6x\x11Ñ\x10à" €\x0f\x06  \x16\x04\x14\v4\x04\x14
4\x04\x14	4\x04\x14\b4\x04\x14\x034\x04\x14\x024\x04\x14\x014
%€\x1f\00pz*­  €\x0f\x04 LŽÑÀà~àxTx\00Ly\00¡À  €\x0f\0\b\b\rà~ñÀü\x1cH°ü\x1cˆ°ü\x1cȰü\x1c\b±>Ñ@‰>ÑUy@%
\x1e\x01<Фº@¡3Ù@€\x01j" €\x0f\0\b°/\0ØÿÙ" €\x0f\x04 \x1c"\x04\x14\x044\x04\x14\x034\x04\x14\x024\x04\x14\x014\x04\x14\x1f4  €\x0f\x04 z¦\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn¿é\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnÀ\x01Žüúd\r\0\b\0ôÑÀà~¡Àü\x1c\b°ü\x1cȰü\x1c\b±ü\x1cH±ü\x1cˆ±ü\x1cȱü\x1c\b²ü\x1cH²  €\x0f\0\b”\rà~ñÀáÅ\x1eÐ!Ò`ˆuz ‚3	Þ\x06\x1cл¹ux € ¢„½  ^[Ðux`€‡¹ ¢š»` \x19Ð €5Ø%‰" €\x0f\x04 h\x19\x04\x14\r4\x04\x14\x1f4\x04\x14	4\x04\x14\b4\x04\x14\a4\x04\x14\x064\x04\x14\x054\x04\x14\x044\x04\x14\x034\x04\x14\04@€\0Ù  €\x0f\x04 h›  €\x0f\x06 0\x18àxx\x11\00ôy\00Ä\x11\00,z\00Øy\00À\x11\00@$\x1c1  €\x0f\0\b8\x0eà~àxñÀáÅ" €\x0f\0 @W"Ñ \bíC…@¡\0Ù\x02ê$¢$¥#¥\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnÇ»\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnÈ\x11ŽüúX\x0e\0\b\0ô" €\x0f\0 XW©p  €\x0f\x06 0\x18àx@$\x1c1  €\x0f\0\b|\x0eà~àxñÀáÅ
%\0\x1fò" €\x0f\0 @W$…C…\x04éC¡\að\x0eÑ@¡\x03ê\0Ù$¢C…\x03ê$…$¢	Ò\0Ù$¥ ‚#¥\x02餡 ¢" €\x0f\0 XW  €\x0f\x06 0\x18àxä\x0f\00à\x0f\00¡À„è\x06†!è€%\x05\x18\x0eàÌ "€\x19ò#\bÑ\0\0\x16p\00/\x0f\0!A\0\x14!A\02!\x0f\00/F\x17	Ð\0" €\x0f\x03 ”\7\x1e\x02\x10\x0e\x06ð\x01Ø7\x1e\x02\x10\0Ø\x15¶<\x1e\x02\x10" €\x0f\x01 øë<\x16€\x10\x05è  €\x0f\x03 VU  €\x0f\x03 dUà~¡À  \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnω\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnÏÌŽüúL\x0f\0\b\0ô€\x0f\0\bT\x0fà~ñÀ" €\x0f\x06 ´\x17˜p€áÌ!¢€Bô$Ð%Ò\0ˆ%j\x18`\x14x\baY\bQ\0"Ð\0ˆ"Ö\x18`\x14x\x13b\x1ab †u¶Š \x05\x06\x04å	#\x01\02¶\x02#O\0\x10wÊ!
\0Cöðy"\x7f	\x0f#\x103¶ðx\x14¶\x16Ð\x01Ù ¨$Š©pCŠ" €\x0f\x03 tY5\x1e\x02\x10\x13ð\x0fÒ\0Š‚àŠ%\x05\x16À}\vÑ \x01à€!\x05\a=e\0ª\x05ð\aЧ€¦ ©p  €\x0f\x06  \x18/\x0f\00,F\00Þ\x0e\00\x16\00”5\0\bñÀáÅ\x15Ð`€\0Ù#\x13\0)£\x04ƒ-“L“\x1d\r\x11\x14\x11Õ ŠíPq\x01Ú%ƒÂ"Œ\0Yaa¹\bðPq\x01Ù\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýn×a\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnןŽüú@\x10\0\b\0ôEƒÂ!L\0Ya" €\x0f\x02 LÁÅÑÀ  €\x0f\x03 Ž5  €\x0f\x06 0\x18˜\x10\00 \x10\00¡À  €\x0f\0\bx\x10à~ñÀáÅ\x10Рˆ" €\x0f\x01 Tö\x0eÑ ‰\x0eÒ\x02¹5y4y)b„áÌ%¡‘\vòáÊ â\r\x03ô\aè:Ø" €\x0f\x02 ´*  €\x0f\x06 0\x18àx.\x0f\00Þ\x0e\00LE\00¡À  €\x0f\0\b \x11à~ñÀ" €\x0f\x06 ¸\x17\0Ý©v\x04ð\x01Ý\x01æ-\x0e\x15\x12”íÏx" €\x0f\x03  Cwèc\x10\0ë	_\0€qè-€‚áÌ!bìõ\0€úñ©p  €\x0f\x06 (\x18àxñÀáÅ" €\x0f\0 ¨P\buêÿ¢è" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnß6\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnßXŽüú4\x11\0\b\0ô€\x0f\x03 x>\x04è$€
ð" €\x0f\x03 d>\x11è)€\x0fé$€\0!€\x0f\0\b\0\0±qÊ F\0¢x\x1d\x0e\x05p\0\0ÿÿ\x06ð" €\x0f\x02 ph\x04è\0Ø\x04ðŠ ÿ\x0f  €\x0f\x06 0\x18¡À  €\x0f\0\b\x11à~ñÀ" €\x0f\x06 ¬\x17 €\bv\r…‚àÌ â€xô\x11…\x10èD†\x03†\0Ù(s\x1ab\x10…Úº" €\x0f\x02 Äh„è\x01Ø\x15¥\x15…"è‹\x15\x04\x17\x01ØA†\x12¥V%\x10\x1a\b\x10 \0ßp…1Ø/$\0\x01õ¥ñ¥" €\x0f\x02 Di\x01†a\x10€\0Šè\b\x10 8Øô¥" €\x0f\x02 |j\x12…‰\bQ\0" €\x0f\x03 d>}\b\x10\0 €\r\rA\x10!\x10€\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnç\x06\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnçEŽüú(\x12\0\b\0ôm\b\x01$†\x03†V%\x0f\x1a\0!\x11\0(8Ø*r" €\x0f\x02 \x18j(\x1ap1Ø*r" €\x0f\x02 \x18j€àÌ ‚ÿÿÿÿ\x1aôL \0 Ì ‚¯ÿÿÿÿ\x14ô(\0Ø\x1ap\x12¥\x13¥1Ø" €\x0f\x02 |j(8ØP\x1d\0\x14" €\x0f\x02 |jÉp" €\x0f\x02 Ä—  €\x0f\x06 \x10\x18àxñÀ" €\x0f\x06 ¸\x17\0Ø\bu\x03ð\x01å;\rÕ\x11¯x" €\x0f\x02 Poxè-€‚áÌ!â€ôõ!€a\x11\0á	Q€‹\x10\x01\aP€Œ\x10\x03\a;y€ãÀ!¢\0\x03ð\0ÚHq\x0fÖ%\rÐ\x11:bÚºE¦‰\x10\x02\a\x02"@\0e¸^[\b…\0	Ò!’\x13\bE\0\x01²\að\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnîÕ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnï\bŽüú\x1c\x13\0\b\0ô" €\x0f\0 ¨P\x05¦  €\x0f\x06 (\x18àxÐ]\00T\x10\00¡À  €\x0f\0\bD\x13à~ñÀ" €\x0f\x06 ´\x17]Ö\x02Ž" €\x0f\x03 ,ã[׸p\0¯\0–Œ Œ\0ÝOòŒ L*òØà“ò\x12öÖàeò×àœô$Ž\x03Ž€á\0¯xôPÔ\x14x™`\x01‰£¸\x01©\x10ÝqðÙà„òŒ \fŠôJÑ\x14%@\x01\ba† ÿƒ\x06òŠ Ì\r@Ù{ðŠ Ì\r\fÙwðBÑ\x14%@\x01\ba† ÿƒöó\f\x16„\x10\x03–"–D–e–" €\x0f\x02 èCÕ\b\x10\0Š Ì\r\x1fÙ" €\x0f\x03 tÛ©p\x12Ù‘Ú\x03Û" €\x0f\x05 ÐmXð¨p" €\x0f\x04 X\x06\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnö¦\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnöèŽüú\x10\x14\0\b\0ô\0/Ò\x14 \x01\0)b¡	Þ€" €\x0f\x02 \x18D‘\b\x10\0©p\x12Ù©Ú\x03Û" €\x0f\x05 ÐmŠ Ì\r\x1fÙ5ð\x04Ž#Ž ¯‰è Ô4y™a\x01‰ƒ¸\x01© Ý\x02ð\x1fÝŠ Ì\r©q" €\x0f\x03 tÛ" €\x0f\x02 €„"ð\x1fÝŠ Ì\r©q" €\x0f\x03 tÛ" €\x0f\x02 à„" €\x0f\x02 \x04„\x10ð\x03Ž\0¯Š \f\x0e\x06ð\x03Ž\0¯Š L\x0e\0Ù" €\x0f\x03 tÛ\0Ý©p  €\x0f\x06  \x18àxüg\008\x11\00Ti\00Ui\00¡À  €\x0f\0\bÜ\x14à~ñÀ" €\x0f\x06 \x17:pÚp€&\x10 X\x16\x14 \0\x11\x10\0\\x16‚ Áâ@$\r"J%\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýnþu\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýnþ­Žüú\x04\x15\0\b\0ô\0 ¢ò	\x11˜ \x1d\b\x110p\x16€ Šè*p" €\x0f\0 äa\x01Ùp\x1eB “ðs
‘\0`\x16\x13 \x02$Ï$\x10çd\x16\x12 +ð\0"À$¢pS \x02\x02Š#\b\0\x02#\00wÊ!Å\x03\x02 €\x04ȸ\x02{pqÊ'Æ Ê'E /$À\x05V!\x03"\x14#\0\x14{@!\0\x06@#\x01\x06ˆr" €\x0f\x06  \x16\x02'Ï\x15\0%Õ%Øï\0"\x01%X\x1e@ BuÑ\x17\x12v\bß
pérJqJ#\0 \vs" €\x0f\0 ,\\x1aph¾\x13ðÊÑÊÒ\x14"À$	Û
%\0\x05\x14"Â\x04" €\x0f\0 <[\0#\x13%‚u\x02'\x0f\x15\x16ïS%\x01\x12\x0e!‚\x0f\0\0\0\x02PwÊ$† \\x16‚ Ê$\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo\x06F\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo\x06rŽüúø\x15\0\b\0ôÅ#V!À"\x14 D\0]êˆqÜñ\x01Ù\\x1eB \x1eðS%\x02\x12\x0e"€\x0f\0\0\0\x02\x10vÊ …\x03\x10v	\x11ƒ Ê'\x06\x10V!Á"TyÊ'…\x13
pér" €\x0f\0 ,\â~\x1apýeäî  €\x0f\x06 Ø\x17àx¡À  €\x0f\0\b`\x16à~ñÀ" €\x0f\x06 \x17\bv\x02\x1aqJ$@ ê¸ Â$\x01%§Á\0Ý‘é\x15†0Ž\x01à\x15¦\bŽ\x03é\v\b\x10\x01©w\x19ðL$\0 \x01ßÊ'¡\x10\x13ð	\x10 ÷é0Ž\x05é(Ž\v	\x10\x01©w\x02ð\x01ßL$\0 Ñ â‚\x03ò\0\x18@#)Ž\x01Ø€áÀxHŽ@ X\0\0Ø\x0f
\x11\x01JŽ€âÊ b\0N ’\0\x02–ã¸Ì!\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo\x0e\x16\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo\x0eLŽüúì\x16\0\b\0ôâ€\x04ô@Å\x05ð\x03–‡¸@À@&\x11\x17*p" €\x0f\0 p=B"V \x01(€…\x13ò\x04\x10\x15 @%‚ \v\b…\0^[\f\x11 \b\x16„\x10-\f\x11\x01\0(ƒ\x05@" \x19\vE\0L$\0 v\x02\x01\0€&\x11\x17o\x02 \0 ®
\x05\0ºr\x05ð\a\r\x04 ºpO\f\x10 \0\x10\x02 Ép€ \x10\0;€‡êA)\x02\x01By; \x10ðA)B\x01By áŒ!\b€; È÷Ép
q" €\x0f\0 Øb\bðÉp
q" €\x0f\0 äa\b\x16„\x10\bðBÅ\b\x10€ DÀ\0\x10\0 AÀ\x02–\v\b\x1f\x03zu/ðÿ\f\x10@\x16\x01\x11D\x16\0\x11"x\x10x'\bÓ\x03;\x16€\x10\x01à\x0fxã\br;\x1e\x02\x10\x13†\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo\x15æ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo\x16\x18Žüúà\x17\0\b\0ô;\x1eB\x13\x01à\x13¦J#@ \x15ðk\b\x12	;\x16€\x10\x01à\x0fx¿\br;\x1e\x02\x10\x13†;\x1eB\x13B%U \x01à\x13¦Š ÿ\x0fzp-\f\x11\x01…À*q\x02Ú" €\x0f\0 Ø=\x05ÀB%• \x02Ùà¨\x01\x18B\x05*p" €\x0f\0 |=\x01À€àÌ$! \x03ô\x10Ž\bè\x11\x0f\x10úu\x06ð;\x1eB\x13¯ñJ'@ …Àªt
"€\x14J$\0x\0Ú¨ \0\x02/"‚’À"\x05\x03›|*q" €\x0f\0 Ø=\v\f\x11 \x05ÀCÀ\x06Á\x01)\x05\x11\x0f\x10 \x05À" €\x0f\x06 ,^[GðE\f\x10 \x05ÅÉp\0\x14\x040
qér©s" €\x0f\0 ÀdJt\bw)hJ$\0x\0ب \0\x02/$\x02“À \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo\x1dµ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo\x1dÍŽüúÔ\x18\0\b\0ôE\0;y\x1de+ðà;\00Ð;\00$\x13\00l†Àéq`{\0Âét
"\0\x16J$\0x\0ب \0\x02/"‚’À \x05\x03›|\x01ÁJtJ$\0x\0Ý8`AÀ	o¨ À\x01/$\x02“À%\x05\x10^[x\x03À\x1deD\x16\0\x11\x02%Õ#JtJ$\0xø`\x10xD\x1e\x04\x10\0Ù¨ \0\x02/$\x02“À!Å\x03û\x7f*p" €\x0f\0 |=L%\0 €õ\bŽ„à⠁\x0f\x05 ¼_?\vQ …À*qJr" €\x0f\0 Ø=\x06À\x15è\x05Á\v
Q \0\0©\x03ð\0•\0±D\x16\0\x11Jq\x01à\x10xD\x1e\x04\x10*p" €\x0f\0 |=§À  €\x0f\x06 Ø\x17\0Ùà\x7f@\x18D\0¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo%‡\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo%°ŽüúÈ\x19\0\b\0ôÌ\x19à~ñÀ" €\x0f\x06 ¨\x17m\x17\x12v:p\x14\x12€ \0Þ\x1aqü\x1cŒ³^[\bÑ\x01Ép\aÙŠ"Ï\x02(s" €\x0f\x05 Ðm\x01Ø¿ð" €\x0f\0 LW\x14\x12‚ `ÑOa`Õ\x16'Â\x13\x03ºâz\x15'‚\x10U}:\x1dB\x14" €\x0f\0 XWŒ!C¯*pÆö" €\x0f\x05 To\x06ð" €\x0f\0 äÉ:pŒ ÃÊ !\0Ê!¡\0Ê"\x0f\0\0Ú\x03Ê#á\x01⠁\x0f\x05 Ðm©p
q\x14Ú" €\x0f\x06  \x16	\v\bÑ\0\x01Ø
­*p9\x1dB\x14" €\x0f\0 ôm©pÊÿB\x1d„\x13D\x1d„\x13<\x1d‚\x13;\x1d‚\x13Ò¥Ó¥Ô¥Õ¥" €\x0f\0\b\\a€à\x01Ø\x03ô\f\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo-I\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo-ŸŽüú¼\x1a\0\b\0ô\0 8\x1d\x02\x10©p" €\x0f\0 œ`IƒâÊ!‚\0\x02ô*\0؁áÊ \x0f\0\0Õ\0\x06ò‚áÊ \x0f\0\0ÿ\0\x0fx\0\x1c\x040€â\x01ÚÀz\x01âT%À\x18‹q" €\x0f\x06  \x16V%À\x12\bt€$\x10\x10À¤Š!\x10\0" €\x0f\x06 ,^[©q€!\x10\0\\x19‚\x03Ø¡Ù¡Š \b\0\x1a¡\x01Øp\x19\x02\0@%\0\x17éq" €\x0f\0 H=€àl\x0eáÿÊ A\x03" €\x0f\0 LW\x14\x12 \x0f!Â\x03\x14\x1a‚ " €\x0f\0 XW©p" €\x0f\0 hm\0Ø¡À  €\x0f\x06 \b\x18,;\00\f5\0\bÌ6\00ñÀ" €\x0f\x06 ´\x17ÞÑ\bv\x04æô\x1c\b°‹p\x03Ù" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo5\x19\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo5dŽüú°^[\0\b\0ô€\x0f\0\bð/\x01Ù" €\x0f\0\bà/\x18Ù" €\x0f\0\bÐ/ÔÐ\0€ÔÕ€ \x04\0Fˆ …\x13ê\aˆ‘è\x11\0Á\x10à" €\x0f\x05 ŒË\0…\x11€\f\x16\x01\x18\x14à" €\x0f\x05 ŒË\0…O'Á\x17\x11€" €\x0f\x05 ŒË£À  €\x0f\x06  \x18ñÀáÅÁÕ
…" €\x0f\0 °v\b…\0Ù\x02Ú" €\x0f\x05 ¤Y\x06…\x01Ù\x02Ú" €\x0f\x05 ¤Y¸Ð\0€„\x10\0\x06" €\x0f\0 À4  €\x0f\x06 0\x18ñÀ" €\x0f\x06 ¸\x17\buü\x1cȰÉu&…®ÖA‰ ‰\bºEy ¶(p" €\x0f\0 (ÅŒ Ï\x04ô\0Ø\0¶\0–\fè\x06…"ˆ@%\0\x1a\x03á" €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo<ë\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo=3Žüú¤\x1c\0\b\0ôÀ/\x11ð\x04\x14\x034\x04\x14\r4\x04\x14\x0e4ÑÀ\x06†"ˆ\x03ˆ\b¸  €\x0f\x05 \x1eÁ\x04\x14\x034\x04\x14\r4\x04\x14\x0e4ÑÀ  €\x0f\x05 *Á  €\x0f\x06 (\x18¡À  €\x0f\0\bð\x1cà~ñÀ" €\x0f\x06 ¤\x17ªÁ†Ñ‡×\x1c\x11\x13\0$\x11\x11\0(\x11\x10\0,\x11\x12\0\0‡Î¼\x10\0\0" €\x0f\x05 ˆË\0Ý ‡9\b\x1e\0¼\x11\0\0\x01Ù©r" €\x0f\x05 Ë\0‡\x05Ù©r¼\x10\0\0" €\x0f\x05 Ë\0‡\rÙ©r¼\x10\0\0" €\x0f\x05 Ë ‡tÐV!Ì	 ¨°\x11\0\0 ¬\0€O&\x01\x10\0Ú\x04à" €\x0f\x05 Ë" €\x0f\x01 ÀQ€àÀxÀyâ ‚\x0f\0 HMO#Ó&\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoD¹\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoDØŽüú˜\x1d\0\b\0ôaÖ\0Ý	ðð!@\x03jq" €\x0f\x05 ŒË\x01å\0†U A\x04†\x10€\0ç\bCƒ\x01Ø" €\x0f\x05 hÎ\x03Ø" €\x0f\x05 hÎ\x05Ø" €\x0f\x05 hÎ\x02Ø" €\x0f\x05 hÎ\x04Ø" €\x0f\x05 hÎ\x10Ø" €\x0f\x05 L‹NÐ\0ˆ€àâ ‚\x0f\0 Œ"…ÿP!\x01 °¹€¹\0†¹\0€\x1cà" €\x0f\x05 ŒË\0†
q\0€E!Á\x03\x14à" €\x0f\x05 ŒË\0‡E"Â#€ \x04\0iˆF"Á+E!Á\x03ƒë\x06ˆ‚èHq\0†\0€\x10à" €\x0f\x05 ŒË\0†\0€" €\x0f\x05 ˆË\0ÙEÀ…À" €\x0f\0\b\00\0†\x05Á\0€" €\x0f\x05 ŒË(Ð\0€Cÿ\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoLŽ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoLÈŽüúŒ\x1e\0\b\0ô\0‡\0Ù¬\x10\0\0Œ¹\x14à" €\x0f\x05 ŒË\x01تÀ  €\x0f\x06 \0\x18¡À  €\x0f\0\b¸\x1eà~ñÀ" €\x0f\x06 °\x17\bv@ \r\x02\x1d€Œ ÿ¡ÁÈò\x12Ð\0€2 €\x0f\0\0\x06\x01€àÀò<…^…0rF\x01%\0\0…è¸~ô\x11Ð\0ˆ€àzòN\x16@\x11žè1†B†"‰2ºÊºTzcºá	\0\x14ð\x145\0\b\x12\00”\x12\00x\x04\00œ\x12\00–5\0\b¦5\0\b¥5\0\bX\f\00è\x17\x0fð°è‹r\x03Ø@'\x01\x14" €\x0f\x05 LY¡è1†\x03Ú\x02‰N\x1e\x04\x10\x04‡" €\x0f\x06  \x161†X†\x04‡\x03ácº\x04à" €\x0f\x06  \x168†N\x16@\x11Ki\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoTh\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoT‘Žüú€\x1f\0\b\0ô\x01áBx\x0exN\x1e\x04\x100y\x1dðR\x16\0\x11\x01à\x10xR\x1e\x04\x10*ðP\x16\0\x11$‡X†8`1†" €\x0f\x06  \x16N\x16@\x118†"x\x0exP\x16\x02\x11N\x1e\x04\x10Ya0y)\bs\0P\x1eD\x10\0Ø\x16¯\x1ap\x04‡"ˆ\x03á*·" €\x0f\0 L"N\x1e\x04\x14P\x1e\x04\x14\0…\v\b\x1f\x02\x11†\x02ð\x12†\x0f¦\x10¦0\x1e \x104\x1e \x10\0Ø\x1e¥\x14…R \0\0S \x01\04¥\x0f\b\x1e\0\x0e…\x1f¥,\x15\0\x18\x05ð\r…\x1f¥(\x15\0\x18€\x1d\0\x10\0…\x19\b\x1f\x02©p" €\x0f\x05 h¦6Ñ\0\x01à\0¡\x0eð»\x17\0ö\0ˆ€àâ ‚\x0f\0  \x060Ñ\0\x01à\0¡¡À  €\x0f\x06 \x18\x18àx¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo\6\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo\WŽüút \0\b\0ôx à~ñÀ¨\x17\0ö\0€\bÙ¬\x10\0\0\x14à" €\x0f\x05 ŒË"Ð\0€€à⠁\x0f\0  \x06\x01ØÑÀà~¡À  €\x0f\0\b° à~ñÀáÅ¡Á›\x17\rö\0…" €\x0f\0 \0"\0Ø\x02µ‹q©p" €\x0f\0 ˆv”\x17\x01ö Šè\0…\f\x19 \0\f\x11\0\bPà\x14\x19 \0\f\x11\0\b\x02¡\x14\x11\0\b\x04¡¡À\x04\x14\r4ÑÀ  €\x0f\x05 J¶¡À  €\x0f\x06 0\x18àx¤\x12\00¨\x12\00¡À  €\x0f\0\b(!à~ñÀ" €\x0f\x06 ¬\x17aÖ\0†¦Á°\x10\0\0\0€\bà" €\x0f\x05 ˆË\0†K\x10\0\x06\x06è$€\x04é`y\a€ †\x02ݰ\x11\0\x06‚àJ!@ Žô\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýod\x06\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýod&Žüúh!\0\b\0ô°\x11\0\0\0€" €\x0f\x05 ˆË †V!\x02	xŠƒãÆ ‚ÿÿ\x0fø|òLÓ\x04\x13\x10\0⃬\x11\0\0¸ª\0Ù‹¹\x14à" €\x0f\x05 ŒË" €\x0f\x05 –" €\x0f\x05 x—\0†¬\x10\0\0\fà" €\x0f\x05 ˆË †¡¿'\b\x1e\x01¼\x11\0\0\0Ù\x01Ú" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0XàO'B\x10\x11ð¬\x11\0\0O'B\x10\0ÙXà" €\x0f\x05 Ë\0†\0Ù
r€º¼\x10\0\0" €\x0f\x05 Ë\0†\0Ù±\x18X\x04¬\x10\0\0\x01ÚXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0"ÒXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0\bÚXà" €\x0f\x05 Ë\0†\0Ù¬\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýokÖ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýokðŽüú\"\0\b\0ô\0\0 ÚXà" €\x0f\x05 Ë\0†¬\x10\0\0Xà" €\x0f\x05 ˆË †j\x19\x18\0V!Ì	¬\x11\0\0 ¬\0Ù‹¹\x14à" €\x0f\x05 ŒË
Ð\0€€àÊ b\0â ‚\x0f\x05 œË¦À  €\x0f\x06 \x10\x18\x12\00X5\0\b\0\x05\x04\0œ5\0\bD¸S B€\x1ciÁ¸Ì !€Ê !\0\x16òâÌ !€
òàÌ"!€\x06òâÌ a€\x04ô\x01Ø\bð‚âÌ ¡€\x02Ø\x02ò\x03Ø\x04¸%xà\x7f\x0fxñÀ" €\x0f\x06 ¨\x17£Á\bu(w\x1ar\0Ù ª!ªZqÀéq" €\x0f\x05 ˜]\x01Á:p\x01\x10€ !‰ãÿ\x01\x18\x02 \x01À ˆ\0\x18B \0Þ\fð\0Á©p" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýos¦\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýosÅŽüúP#\0\b\0ô€\x0f\x06  \x16"Á=e\0"R >f‹p/!G\x04‚Â" €\x0f\x05 h^"Âíê\x13\x0eA\x14\x02'O\x14/'Ç“Ñõ\0Ø\x04ð\x02'€\x14\x0fx£À  €\x0f\x06 \b\x18àx¡À  €\x0f\0\b¤#à~ñÀ" €\x0f\x06 ¨\x17çÐà€€'\a’¡ÁqòŒ\x17\0\x10\x01ÛA(\0A(\x02\x01Á¸Á¹Ãº" €\x0f\x05 ày
"\0€\x18§_òS"\x04@'\0\x18" €\x0f\0\bÀ//!‡ \x14!@$²‡B Ò\0*q©p" €\x0f\x06 ,^[\0Ø\x1ap`À\x01\x1c\x020\x01Ø" €\x0f\x05 ÔÐÌÖ\0Ž/"‡$¡èJp\x02\x1d‚\x14" €\x0f\x05 $]\x01®\x14è\x03mB!Á /y‹r²ÿ\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo{v\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo{—ŽüúD$\0\b\0ô À\0­\x01\x14€0\x01­ À\x02®\x01\x14€0ø\x03®\x11ð\x02Ž\0­\x03Ž\x01­\vð\x01Ž€àÊ"\x02\aÊ B\x03˜\x0eâÿÊ!B\x04ép" €\x0f\x05 ´Õ³Ð\x01Ù ¨\0Ž\x01à\x0fx\v\bò\0\0®\0\x1e\x02\x14¡À  €\x0f\x06 \b\x18¡À  €\x0f\0\b°$à~ñÀ©Ñ\0©‡è" €\x0f\x05 \{\x05ð" €\x0f\x05 D{¤Ð\0Ù  ÑÀà~¡À  €\x0f\0\bà$à~ñÀáÅšÑ\x01؝Õ\x04©\x14\x15\x01\x18‰¹\x14\x1d`\x10" €\x0f\0 \x04C\x10\x15\0\x18ˆ¸Œ¸‘¸\x10\x1d \x10\x10\x15\0\x18°¸\x10\x1d \x10  €\x0f\x06 0\x18àx¡À  €\x0f\0\b,%à~ñÀáÅ\bØ" €\x0f\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoƒG\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoƒhŽüú8%\0\b\0ôLV…Õ\x04\x10è\x0eØ" €\x0f\0 lV" €\x0f\x05 lÊ\x0eØ" €\x0f\0 LV\0Ø\x04­  €\x0f\x06 0\x18¡À  €\x0f\0\bt%à~ñÀzÑ\x14\x11\0\b©¸\x14\x19 \0\x10\x11\0\b¬¸\x10\x19 \0\x01Ø" €\x0f\0 \x04C" €\x0f\0 ¤\x05šñ¡À  €\x0f\0\b¬%à~ñÀ" €\x0f\x06 ¸\x17eÖ\0†¡Á€ 	\x06" €\x0f\x05 (Ô\x02Ø\x01Ù" €\x0f\0 44cÕ‹q\x06¥©p" €\x0f\0 ˆv †Šè\0…\f\x19 \0\f\x11\0\bPà\x14\x19 \0\f\x11\0\b\x02¡\x14\x11\0\b\x04¡(p" €\x0f\0\b”^[\x03Ø\0Ù" €\x0f\0 44 †\x02¥„\x19\x18\0\x03Ø\0Ù" €\x0f\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo‹\x16\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo‹/Žüú,&\0\b\0ô44 †	Ú\0ÛË\x19\x18\0KÑ\x0eØ" €\x0f\0 \x14V\x0eØ" €\x0f\0 lV" €\x0f\x05 lÊ\x01Ø" €\x0f\0 \x04C\x0eØ" €\x0f\0 LV¡À  €\x0f\x06 (\x18ñÀ\x0fx" €\x0f\x05 <΀àÊ !\0\x05ò\x02€2¸Ê¸"ññÀ" €\x0f\x06 ´\x17£Á\x01Øöÿc¸P \x01\0‹p/y" €\x0f\x05 ˜]\bu+Ð\0Á€\0‰¯\x7f\0®\x01‰\x01®¢®\x03æ	ð\x01ÁÉp" €\x0f\x06  \x16"À\x1efÀ‚Âéq" €\x0f\x05 h^"Âñê\x03m\x10x£À  €\x0f\x06  \x18àx¡À  €\x0f\0\b\b'à~ñÀ" €\x0f\x06 ¸\x17\x14Õ\x02…ßÿ\bv\x01Ø" €\x0f\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo’æ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo“\x06Žüú '\0\b\0ô\x05 ÔÐ\x06Ø\x0e­\x02…Éq" €\x0f\x05 Ìy  €\x0f\x06 (\x18¡À  €\x0f\0\bh'à~œ\x12\00 5\0\bµ5\0\bX\f\00¨\x12\00\0\0\0”x\x04\00lÊ\x05 ñÀ" €\x0f\x06 ¸\x17ð\x17\rð(v
¥6µ\x01Ø" €\x0f\x05 ÔÐÈ\x17\x01ð\x05‰ýè\x01Ø\x05©
…Éq" €\x0f\x05 Ôz  €\x0f\x06 (\x18àx¡À  €\x0f\0\b´'à~ñÀ" €\x0f\x06 ¬\x17¥Á¾\x17\x11v`ˆ\0\x11\x0e cÃáˆ@$\x103\r\x1cÂ3Cˆ\0Ý"ˆ\bºYa\x0e\x1cD0Eˆ/$H\0\x04\x10†\0@*\x05\x02\0%…\x01/%H\x01\x10\x1cD1Gˆf¿\x06ˆ\bº\x1ab…çPzf\x02-\0\x12\x1c„0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoš¶\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýošÏŽüú\x14(\0\b\0ô@'\0sõ Ï\x03ôx\0x\x06\0)\x01¬\0œ\0\x15\x01¸\0B,\0\x02a¸Žà>\x02\r\0@'\x03sõ#\0\0\x14{\0{\x0f\0&\0U\0\x17\x01\x17\x01?\0L\0\x17\x01\x17\x01\x17\x01\x17\x01\x17\x01\x17\x01\x17\x012\0—Ð\0€I"\x04\vè•ÑÉp©r" €\x0f\x06  \x16û\x01\0\0’ÑÉp©r" €\x0f\x06  \x16ç\x01\0\0ŽÑ±Ø	"\r\0Ép©r" €\x0f\x06  \x16Ï\x01\0\0…Ð\0€\x18èˆÑI"\r\x03Ép©r" €\x0f\x06  \x16Ùð\x7fÐ\0€\fè‚ÑI"\x02Ép©r" €\x0f\x06  \x16ÍðŠ 0\x05" €\x0f\x05 \x14´Š%ÿ\x17ÃðS!Á€\rôxÑ ‰	%\x10Ép©r" €\x0f\x06  \x16\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo¢†\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo¢¤Žüú\b)\0\b\0ôµð\x1d	Q\0sÑ ‰	%\x10Ép©r" €\x0f\x06  \x16©ð^[	‘\0mÑ ‰	%\x10Ép©r" €\x0f\x06  \x16›ðƒá™ôhÑ ‰	%\x10Ép©r" €\x0f\x06  \x16ð€ãô©p" €\x0f\0 \0#" €\x0f\x05 ¨Ó\x0e\x14\x011]Ð °\x7fðŒ#\x02€{ôZÐ\0\0®\x12\x14\r1€åè\0	\0sðãqôUÐ\x01ÚU×  ¡ ¢ L¨TР¨TÐ@¨TÐ °\0‡„\x10\0\x06¿\b\x10\0{\f\x10\0" €\x0f\x05 D{NЩq\x03Ú\f\x19D# ¨LР¨LР¨¡¨\x10\x11\0 " €\x0f\x05 ¤Y\0‡©q€ \v
" €\x0f\x05 DÕ\0‡\x01Ù€ \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoªI\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoªdŽüúü)\0\b\0ô\a\x02" €\x0f\x05 DÕ\0‡€ \v
" €\x0f\x05 \fË\0‡€ \a\x02" €\x0f\x05 \fË\0‡€ \a\x04" €\x0f\x05 \x14!ð" €\x0f\x05 \{\0‡€ \a\x04" €\x0f\x05  \x15ð¡ãÌ%¡€Ê%\x10\x0fò\0\x10€ Œ B€\0Ý	ô&Ð\x06\x10\r!\0\v\rr\x10\0®\x01Ý=\r\x12\x10\x06\x10\0!\x1f\r\x03\x10\x1cÐ\0€(€©p2¹Ê¹" €\x0f\x06 ˆ\x18\x01ß\x02é\0ß\0ØÉqÉr©sS'\x04\x10" €\x0f\x05 $Ï©p¥À  €\x0f\x06 \x10\x18x\x04\00ø\x03\00¼Y\x06 ¨Y\x06 ÐY\x06 Z\x06 œZ\x06 4\\x06 ´Z\x06 4[\x06 ´[\x06 Š\x12\00¨5\0\bœ\x12\00\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo²\x19\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýo²3Žüúð*\0\b\0ô¥5\0\b¦5\0\bŒ\x12\00¡5\0\b 5\0\b¢5\0\b@$\x1c1  €\x0f\0\b\x18+à~àx©p" €\x0f\0 °v
 €\x0f\00h\x1c\0ِ¹\0Ú" €\x0f\x05 ðÿ  €\x0f\0 8\x1dà~àxñÀ" €\x0f\0\b\\a\x06èUÑ\0”¸\0¡ÑÀà~ñÀ" €\x0f\0\b\\a\x06èOÑ\0’¸\0¡ôñàx@$\x1c1  €\x0f\0\b„+à~àxñÀáÅHÐ\0ˆ­èHÐ\0ˆ«è" €\x0f\0 <'%èBÕ …P!€\x04“¸\0¥BÐ\0ˆ’èP!\0\x04²¸´¸“¸\0¥>Ð(\x10\0\b!\b\x1e\0=Ñ\0 ¸\0¡
ð" €\x0f\0\b\\a\x04è\0…´¸\0¥7Ð\0€\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýo¹ì\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoº\rŽüúä+\0\b\0ô@x  €\x0f\x06 0\x18àx@$\x1c1  €\x0f\0\b\0,à~àxñÀáÅ/Ð\0ˆ®è/Ð\0ˆ,è\x1eØ" €\x0f\x05 $]&è"Õ …P!\0\x05•¸\0¥"Ð\0ˆ‘èP!\0\x04²¸´¸•¸\0¥\x1fÐ(\x10\0\b\x1f\b\x1e\0\x1dÑ\0 ¸\0¡	ð" €\x0f\0\b\\a\x05è\0…²¸\0¥^[Ð\0€@x  €\x0f\x06 0\x18ñÀáÀáÁ\x17Ñ ‰^[	\x1e\0" €\x0f\0\b\\a‡èÁÁÁÀÑÀ  À\aÁÁÁÀÑÀ”¹\0Ú  €\x0f\x05 ðÿ\ñàxØ\f\00Ò\f\00Ó\f\00Ñ\f\00\0\0\0–à\f\00¬\f\00Ô\f\00é\f\00´\f\00¨\x04\00¡À  €\x0f\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoÁº\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoÁÝŽüúØ,\0\b\0ôÜ,à~ñÀ" €\x0f\x06 ¨\x17¨Ð\0€\0ݰ\x10\0\0\0€\bà" €\x0f\x05 ˆË£Ñ $‰€áÌ!¢Vò¡\x17\x10v!\b\x1e\0 Ð\x01Ù\0\x18B   žÐ  žÐ  žÐ ¨\x01ØGð\0\x10 …	\x10\0—\x17\x11v(¸—\x17\x12vS A\x03\0\x11\x02 •וÖ\x17
@\0\0\x19@ \0\x1a@# §\x01Ø\0®,ð\0Ž\vè" €\x0f\0 ¨P §\0\x1a\0  ®©p\rð" €\x0f\0 ¨P\0\x12\x01 "x\v\b3\0\0§\x13x\0§Œ \x03‚Òö\0ސè\0\x19@#\0\x1a@# §\x01Ø\0®\0\x18B#\x02Ø" €\x0f\x05 DÑ\0Ø  €\x0f\x06 \b\x18àx¡À  €\x0f\0\bÌ-à~\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoɍ\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoÊFŽüúÌ-\0\b\0ôG\bó\x01\0Ù‡èmÐ\0€@ \x01\x06^[ð\x19\b\x1e\0jÑ\x1dx\x04¸ \x16x€!\x02
\x19a\x11ð\x11\b‘\0dÐ\0€\bq€!	\x06	ð\x0f\b\x11\x01`Ð\0€\bq€!\v
à\x7f(pàx¡À  €\x0f\0\b$.à~ñÀ" €\x0f\x06 ´\x17¢Á"€\0Þ\bw\x04\x1c„3Û	\x1f\x02A)€\x03Á¸‚àÌ"!€eôUÕ(…&\x1d‚\x13\x03‰B‰\b¸X`\x04à\x12µQÐ\0€à\x03Ø	ô\x01‰ ‰\b¸%x" €\x0f\x05 4Y5\b\0Â9\bÐ\0‹q" €\x0f\x05 LY€àuô\0À(…R•" €\x0f\x06  \x16\0À" €\x0f\0 Ø!-ð\b…" €\x0f\0 Ø!cð\x03Ø@%\x01\x14" \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoÑg\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoчŽüúÀ.\0\b\0ô€\x0f\x05 LYšè\x04…\x03Ú(…" €\x0f\x06  \x16(…J‡\x04…\x03áÒºcº\x04à" €\x0f\x06  \x16\x04…" €\x0f\0 L"\að,Ð" €\x0f\0 8!\b…\0Ù\x02Ú" €\x0f\x05 ¤Y5ð1	\x1e\x02\bàÌ"!€\x12ô Ð.\x18‚\x03Ö°
€" €\x0f\0 °v" €\x0f\0 Œ"\x1dÐÀ¨\x1fð;	\x1e\x02.¹Á¹‚áÌ"!€\x17ô" €\x0f\0\b\\a\x12Ñ\vè\x0e‰\x13\b‘\x01Ω" €\x0f\0 ¤"\aðީα" €\x0f\0 €"¢À  €\x0f\x06  \x18\x12\00œ\x12\00¦5\0\b¨5\0\b¬5\0\b°5\0\b´5\0\bx\x04\00–5\0\bœ<\x06 ¥5\0\bJ"@\x10\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoÙ6\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoÙWŽüú´/\0\b\0ôJ#€\x11  €\x0f\x06 ø"J"\0\x10J#€\x14  €\x0f\x06 ä"J"\0\x10J#€\x11  €\x0f\x06 ä"J"À\x14J#@\x10  €\x0f\x06 ä"J"@\x17J#@\x10  €\x0f\x06 ä"J"\0\x11J#€\x11  €\x0f\x06 ä"áÅÏp\x06 ´= €\x01ÛÏp\x06 ¸=(\x19à\0@€Š%\x11\x12Ïp€\0 @`\x1a`\x03h\x1a \0Ïp$\0\0$l\x1a \0dØ \x1aà\0\x1c\x1a \0\x04Ø\x18\x1a \0\0Ø(\x19 \0\0Ø‘¸\x198\0à\x7fÁÅàxÏq\x06 ¸= \x1c\x19 \0à~àxÏq\x06 ¸= \x18\x19 \0à~àxÏq\x06 ¸= \x04\x19 \0à~àxÏp\x06 ´=\0€\0Ù(\x18`\0à~\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoá\x06\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoá&Žüú¨0\0\b\0ôÏp\x06 ´=\0€\x01Ù(\x18`\0à~Ïq\x06 ¸=@H\x12\x01\b  L\x12\x01\bà\x7f$¨àxñÀáÅ\buÏp\x06 ¸=\0€P\x10\0\b\x04 €\x0f\0€ÿ\0\0¥\x03† ý\x0fB(þ\x0eò\0" €\x0f\0 HA\0­©p" €\x0f\0 hA\x06ðÏp­Þï¾\0¥  €\x0f\x06 0\x18Ïq\x06 ¸= 8\x11\x01\b  \x03ˆ† ý\x0fà\x7fG¸ñÀáÅ\buÏp\x06 ¸=\0€\\x10\0\b\x04 €\x0f\0€ÿ\0\0¥\x03† ý\x0fB(þ\x0eò\0" €\x0f\0 HA\0­©p" €\x0f\0 hA\x06ðÏp­Þï¾\0¥  €\x0f\x06 0\x18Ïq\x06 ¸= D\x11\x01\b  \x03ˆ† ý\x0f\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoè×\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoèíŽüúœ1\0\b\0ôà\x7fG¸Ïp\x06 ¸=\0€\x01Ù(\x18`\0à~Ïq\x06 ¸=  \x19 \0à~àxÏp\x06 ´=\0€\x01Ù(\x18`\0Ïp\x06 ¸=\0€\x02Ù\x04\x18`\0à~àxÏt\0Ÿ\0\0\x04¸\x14xš` \x12\0\b&x \x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`(\x12\0\b&x(\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`(\x12\0\b\x05y(\x1a`\0à~Ïq\0Ÿ\0\0<\x11\0\bŒ¸<\x19 \0@\x11\0\bŒ¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¸Ž¸<\x19 \0@\x11\0\b­¸®¸@\x19 \0à~Ït\0Ÿ\0\0\x04¸\x14xš`0\x12\0\b&x0\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`0\x12\0\b\x05y0\x1a\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoð¦\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoð»Žüú2\0\b\0ô`\0à~Ït\0Ÿ\0\0\x04¸\x14xš`,\x12\0\b&x,\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`,\x12\0\b\x05y,\x1a`\0à~Ïq\0Ÿ,\0\x04¸\x14x0!\0€à~Ït\0Ÿ,\0\x04¸\x14xš`\0\x1a`\0à~àxÏp\0Ÿ\0\0\x10\x10\0\bà~Ïq\0Ÿ\0\0\x10\x19 \0à~Ït\0Ÿ\0\0\x04¸\x14xš`8\x12\0\b&x8\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`4\x12\0\b&x4\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`4\x12\0\b\x05y4\x1a`\0à~Ït\0Ÿ\0\0\x04¸\x14xš`8\x12\0\b\x05y8\x1a`\0à~Ïq\0Ÿ$\0\x04¸\x14x0!\0€à~Ït\0Ÿ\0\0\x04¸\x14xš` \x12\0\b\x05y \x1a\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýoøu\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýoøŠŽüú„3\0\b\0ô`\0à~Ïq\0Ÿ$\0\x04¸\x14x0!\0€à~Ïq\0Ÿ\0\0<\x11\0\bE @\x01<\x19 \0@\x11\0\b€¸@\x19 \0@\x11\0\b¢¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b„¸<\x19 \0@\x11\0\b¤¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¤¸<\x19 \0à~àxÏq\0Ÿ\0\0<\x11\0\b†¸<\x19 \0@\x11\0\b¦¸@\x19 \0à~Ïq\0Ÿ\0\0<\x11\0\b¦¸<\x19 \0à~àxÏq\0Ÿ\0\0<\x11\0\bޏ¸<\x19 \0@\x11\0\b®¸¯¸@\x19 \0à~Ït\0Ÿ \0\x04¸\x14xš`\0\x1a`\0à~àxÏt\0Ÿ\0\0\x04¸\x14xš`L\x12\0\b&xL\x1a \0à~Ït\0Ÿ\0\0\x04¸\x14xš`\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\0G\x0e\x04\x01Žü\0\0\0\0ý\0\0\0ý\0\0\0\x02\0\0\0\0\0áÇÌýp\0[Žüúx4\0\b\0ôL\x12\0\b\x05yL\x1a`\0à~Ïs\00\x04\0 \x13‚\0?‹\x05è\x1e‹8`X`\x02ðXaà\x7f"¸Ïp\0¼\0\0 \x10\0\bŒ Eà\x7fo \v\0Ïq\00„'\0€àÊ \x0f\0\0\0\x03
ò!\r\bE\0Ïp\0@¨\x04"x\x10xà~àx\0Ù\bt€$\x10\x10 ¤Š!\x10\0  €\x0f\x06 ,^[àxȸ\x0e ‚\x0f\0\0\0\x02PqÊ †\0à\x7fÊ E\0\0\0\0\x01\0\x02\0\x01\0ÿ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\b\x17\x0e\x04\x01Žü\0\0\0\0U\0\0\0U\0\0\0\x02\0\0\0\0\0áÇÌýp\b-ŽüRl5\0\b\0L\0\0\0\0\0\0\0\0\0\0\0\0>þ\x0eþ€þPþ>þ°ý€þòý\0\0\0\0\0\0\0\02\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\vþ\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌýp\f\x13Žü
\0\0\0@\0\x04\x02\x03\r\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\x0fæ\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌýp\x0fúŽü
\0\x01\0\b\0\x04\x02\x03\r.\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\x13Í\x0e\x04\x01Žü\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌýp\x13áŽü
\0\x04\00\0\x04\x14\x01\0\b\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\x17µ\x0e\x04\x01Žü\0\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0áÇÌýp\x17ÈŽü	\0\0\0@\0\x03\x02\x03\r\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp^[ž\x0e\x04\x01Žü\0\0\0\0S\0\0\0S\0\0\0\x02\0\0\0\0\0áÇÌýp^[²/üP\0\0\0\0\0\0\0\0\0-1\x01ÿþ\x0fþÛÿ{‡\x01@ú\x1a 
\a\x06\b\x05\a\a\a
\a\x06\x04\x06
¤	¸Ì
\x04\0\x01À\v\x14\b\0\r\0\x1e\0¸\vd\x19ȯ¨aÐ\a\x04\0\vZ††\x04C³|\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp\x1fy\x0f\x04\0\x01/ü\0\0\0\x04\0\0\0\x04\0\0\0\x03\0\0\0\0\0áÇÌýp#bÿ\x02\x19\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýp#w\x11ü\x02\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp'H\x0e\x04\x01\x11ü\0\0\0\0\x7f\0\0\0\x7f\0\0\0\x02\0\0\0\0\0áÇÌýp']`ü|\x01\x01\x01ߎßÚN\0\0\0\0«¿ÄÉÎÓØÝâçìñö\0\0\0ìîðòôöøúüþ\0\x02\x04\x06\b
\x03¸\v\0,\x012\x14\x1a\0\0 \0\x01\0\x03\0\x01\0\x02\0\0\x03\0 \0\x01\0\x03\0\x01\0\x05\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\x14\x01\0
\0\0\x03\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp+1\x0e\x04\x01`ü\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýp+K\x11ü\x02\0\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpaò\x0e\x04\x02\x11ü\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpb0\x03\f\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýp˜’\x0e\x04\x02\x03\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp˜¥\x03\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌýpœx\x0e\f\x01\x03\x10\0ÿþ\x0fþÛÿ{‡\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpœÅ\x01\x10\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌýp `\x0e\f\x01\x01\x10\0\x06\0\x05\x06\x02\0\0\x05\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp ¤	\x10\0\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌýp¤J\x0e
\x01	\x10\0Dz\aý‹\f\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp¤¨\x05\x10\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌýp¨3\x0e\v\x01\x05\x10\0ý\x03`\x05\0\x05\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp¨J#\f\0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌýp¬\x19\x0e\a\x02#\f\0\0\x1f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp¬)\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0áÇÌýp»½\x0eü\x01\x14\f\0Bluemoon Universal Bluetooth Host Controller\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp»Ù%\f\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌýp¿¯\x0e\x06\x01%\f\0`\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýp¿Á\x05\f\x01\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpÖ\x0e\x04\x01\x05\f\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýpÃ¥\x16\f\x02\0}\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpÇ~\x0e\x04\x01\x16\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpǍ^[\f\0\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0áÇÌýpËf\x0e\b\x02^[\f\0\0\b\x12\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpËtF\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýpÏM\x0e\x05\x02F\f\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpÏ[\x02 \0\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌýpÓ5\x0e\a\x01\x02 \0^[\0\a\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpÓC\x03 \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌýp×\x1e\x0e\f\x01\x03 \0\x01\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýp×,\a \0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýpÛ\x06\x0e\x05\x01\a \0	\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpÛ\x14\x0f \0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýpÞî\x0e\x05\x01\x0f \0 \0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpÞü\x1c \0\0\0\0\x0e\0\0\0\x0e\0\0\0\x03\0\0\0\0\0áÇÌýpâÖ\x0e\f\x01\x1c \0ÿÿÿ\x1f\0\0\0\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌýpâä\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpæ½\x0e\x04\x01\x01\f\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌýpæÊ\x01 \b\x1f\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpê§\x0e\x04\x01\x01 \0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpêµ\x02\x10\0\0\0\0F\0\0\0F\0\0\0\x03\0\0\0\0\0áÇÌýpòu\x0eD\x01\x02\x10\0ÿÿû\x03Îÿïÿÿ?ÿŸó\x0fèþ?÷ÿ\x1c\0\0\0a÷ÿÿ\x7f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0áÇÌýpòR\fñ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpö]\x0e\x04\x01R\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýpöjE\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýpúF\x0e\x04\x02E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýpúSX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýpþ.\x0e\x05\x01X\f\0
\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýpþ:\x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0áÇÌýq\x02\x15\x0e\x0e\x01\x04\x10\0\x01\0\0\0\0\0\0\0\0\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌýq\x024\x12\f\a\0\0\0\0\0\0\x01\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌýq\x05þ\x0e\x06\x01\x12\f\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýq\x06
\x0f\b\x02\a\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq	æ\x0e\x04\x01\x0f\b\0\0\0\0#\0\0\0#\0\0\0\x02\0\0\0\0\0áÇÌýq	ó\b  \x1f\x02\x01\b\x02
	\x18\bBluemoon Universal Blue\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq\rÍ\x0e\x04\x01\b \0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýq\x0e \x04\x10\x01\x01\0\0\0\x10\0\0\0\x10\0\0\0\x03\0\0\0\0\0áÇÌýq\x11«\x0e\x0e\x01\x04\x10\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýq\x11¸\x18\f\x02\0 \0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq\x15‘\x0e\x04\x02\x18\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌýq\x15\r\f\a\0\0\0\0\0\0\x01\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0áÇÌýq\x19x\x0e\b\x01\r\f\0\x05\0\0\0\0\0\0û\0\0\0û\0\0\0\x02\0\0\0\0\0áÇÌýq\x19‚\x13\føubuntu-desktop-0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq\x1da\x0e\x04\x01\x13\f\0\0\0\0\v\0\0\0\v\0\0\0\x02\0\0\0\0\0áÇÌýq˜\0\x01\f\bÿÿûÿ\aø¿=\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýqšc\x0e\x04\x01\x01\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýqšxV\f\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýqžM\x0e\x04\x01V\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýqžbE\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq¢2\x0e\x04\x02E\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýq¢CX\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýq¦\x1a\x0e\x05\x01X\f\0
\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌýq¦*\x0f\b\x02\a\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýqª
\x0e\x04\x01\x0f\b\0\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÌýqª&$\f\x03\0\x01n\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq­ï\x0e\x04\x02$\f\0\0\0\0\x04\0\0\0\x04\0\0\0\x02\0\0\0\0\0áÇÌýq®!\x1a\f\x01\x02\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýq±à\x0e\x04\x02\x1a\f\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýqº\x16\x14\f\0\0\0\0þ\0\0\0þ\0\0\0\x03\0\0\0\0\0áÇÌýqÉC\x0eü\x01\x14\f\0ubuntu-desktop-0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýqÉ\U\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýqÍ)\x0e\x05\x01U\f\0\x01\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌýqÍ;\x19\f\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌýqÑ\x11\x0e\x05\x02\x19\f\0\x02\0\0\0ô\0\0\0ô\0\0\0\x02\0\0\0\0\0áÇÌýqÑ R\fñ\0\x11	ubuntu-desktop-0\x02

\x13\x03-\x11\x12\x11\x1f\x11\x1e\x11
\x11\v\x11\f\x11\x0e\x11\x03\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌýqÔú\x0e\x04\x01R\f\0\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌþø\x0eD\x12\f\aß^\b¾÷x\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌþø\x13m\x0e\x06\x01\x12\f\0\0\0\0\0\0\b\0\0\0\b\0\0\0\x02\0\0\0\0\0áÇÌÿZ\x1e3\x01\x04\x053‹ž\b\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿZ ö\x0f\x04\0\x02\x01\x04\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿp\x126\x04
ß^\b¾÷x\x04\x04$\x01\0\0\0
\0\0\0
\0\0\0\x02\0\0\0\0\0áÇÌÿp\x12U	\x04\aß^\b¾÷x\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿp\x16\x19\x0f\x04\0\x01	\x04\0\0\0
\0\0\0
\0\0\0\x03\0\0\0\0\0áÇÌÿr‹\a\x12\b\0ß^\b¾÷x\0\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌÿs»¸\x03\v\0\0\x01ß^\b¾÷x\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÿs¼\x14^[\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿs¿Ž\x0f\x04\0\x01^[\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0áÇÌÿtà±^[\x03\0\x01\x05\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌÿvo\x1f\v\v\0\0\x01¿þþ›ÿy‡\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÌÿvo;\x1c\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿvs\x02\x0f\x04\0\x01\x1c\x04\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0áÇÌÿw—ÿ#\r\0\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÿw˜\x1c\x19\x04
ß^\b¾÷x\x02\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿw›à\x0f\x04\0\x01\x19\x04\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0áÇÌÿyõp\aÿ\0ß^\b¾÷xHM1700\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿ{hþ\0!\f\0\b\0\x01\0\x02\x02\x04\0\x01\0@\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0áÇÌÿ{i\x1f\0\x01\x10\0\f\0\x01\0\x03\x02\b\0@\0@\0\x01\0\0\0\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0áÇÌÿ{i%\0\x01
\0\x06\0\x01\0
\x01\x02\0\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ|/È\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿ|'\0!\x10\0\f\0\x01\0\v\x01\b\0\x02\0\0\0\0\x02\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ|0\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0áÇÌÿ|J\0\x01\x10\0\f\0\x01\0\x03\x02\b\0@\0@\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿ|O\0\x01\f\0\b\0\x01\0\x04\x02\x04\0@\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ}\x06ž\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿ}Ëä\0!\x10\0\f\0\x01\0\x04\x03\b\0@\0\0\0\x01\x02@\0\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿ}Ëþ\0\x01\x12\0\x0e\0\x01\0\x05\x03
\0@\0\0\0\0\0\x01\x02@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ}ÍÅ\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿ~-‡\0!\x0e\0
\0\x01\0\x05\x02\x06\0@\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ~/z\x13\x05\x01\0\x01\x01\0\0\0\0#\0\0\0#\0\0\0\x05\0\0\0\0\0áÇÌÿ~ð_\0!\x1f\0^[\0@\0\x06\0\0\0\x165\x03\x19\x11\x1f\005\f	\0\x01	\0\x04	\0		\x03\x11\0\0\0\0H\0\0\0H\0\0\0\x04\0\0\0\0\0áÇÌÿ~ñ$\0\x01D\0@\0@\0\a\0\0\0;\00515/	\0\x015\x06\x19\x11\x1f\x19\x12\x03	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\r	\0	5\b5\x06\x19\x11\x1e	\x01\x05	\x03\x11\b	psR0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ€\x17Ç\x13\x05\x01\0\x01\x01\0\0\0\0+\0\0\0+\0\0\0\x05\0\0\0\0\0áÇÌÿ€wy\0!'\0#\0@\0\x06\0\x01\0\x1e5\x03\x19\x11\x1f\005\f	\0\x01	\0\x04	\0		\x03\x11\b	psR0\0\0\0\0\0\0\x13\0\0\0\x13\0\0\0\x04\0\0\0\0\0áÇÌÿ€wÑ\0\x01\x0f\0\v\0@\0\a\0\x01\0\x06\0\x03	\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ€Û\x14\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿ:P\0!\f\0\b\0\x01\0\x06\x04\x04\0@\0@\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿ:q\0\x01\f\0\b\0\x01\0\a\x04\x04\0@\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ‚\x03ø\x13\x05\x01\0\x01\x01\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÿ‚u3\x17\x06ß^\b¾÷x\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0áÇÌÿ‚uò\f\x04\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿ‚y\x18\x0e
\x01\f\x04\0ß^\b¾÷x\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0áÇÌÿƒ82	ß^\b¾÷x\x03\0\x05\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÿƒ<r1\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0áÇÌÿƒ<¹+\x04	ß^\b¾÷x\x01\0\x05\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿƒ@X\x0e
\x01+\x04\0ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿŽwx3
ß^\b¾÷x[Û\a\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0áÇÌÿŽx\x04-\x04\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿŽ{N\x0e
\x01-\x04\0ß^\b¾÷x\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌÿ•]\x176\a\x05ß^\b¾÷x\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿ˜\f—\x05\x04\0\0\x01\x13\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0áÇÌÿž\aÒ/ÿ\x01ß^\b¾÷x\x01\0\x04\x04$æ!Å\a	HM1700\v\x03\b\x11\x1e\x11\v\x11\x0e\x11\x01\x11\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\x03\0\0\0\x02\0\0\0\0\0áÇÌÿ¼þ¼\x02\x04\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿ½\x05`\x0e\x04\x02\x02\x04\0\0\0\0\x10\0\0\0\x10\0\0\0\x02\0\0\0\0\0áÇÌÿ½\x10†\x05\x04\rß^\b¾÷x\x18Ì\x01\0æ¡\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿ½\x15\0\x0f\x04\0\x01\x05\x04\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌÿÆÙ\x12\x03\v\0\0\x01ß^\b¾÷x\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÿÆÙi^[\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿÆÜè\x0f\x04\0\x01^[\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0áÇÌÿÇ\x04\x05^[\x03\0\x01\x05\0\0\0\r\0\0\0\r\0\0\0\x03\0\0\0\0\0áÇÌÿÇ\x13¦\v\v\0\0\x01¿þþ›ÿy‡\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÌÿÇ\x13¼\x1c\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿÇ\x17‹\x0f\x04\0\x01\x1c\x04\0\0\0\x0f\0\0\0\x0f\0\0\0\x03\0\0\0\0\0áÇÌÿÇN0#\r\0\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\x02\0\0\0\0\0áÇÌÿÇNM\x19\x04
ß^\b¾÷x\x02\0\0\0\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿÇR\x18\x0f\x04\0\x01\x19\x04\0\0\x01\x01\0\0\x01\x01\0\0\0\x03\0\0\0\0\0áÇÌÿÇ«ü\aÿ\0ß^\b¾÷xHM1700\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0\0\0\x05\0\0\0\x02\0\0\0\0\0áÇÌÿǬ\x14\x11\x04\x02\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿǯä\x0f\x04\0\x01\x11\x04\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÿdzÍ\x17\x06ß^\b¾÷x\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0áÇÌÿÇ´\f\f\x04\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿÇ·´\x0e
\x01\f\x04\0ß^\b¾÷x\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÌÿÇ»œ1\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x02\0\0\0\0\0áÇÌÿÇ»É+\x04	ß^\b¾÷x\x01\0\x03\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿÇ¿„\x0e
\x01+\x04\0ß^\b¾÷x\0\0\0\v\0\0\0\v\0\0\0\x03\0\0\0\0\0áÇÌÿÇÏ\x182	ß^\b¾÷x\x03\0\x02\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿË£¢3
ß^\b¾÷x…P\x0e\0\0\0\0	\0\0\0	\0\0\0\x02\0\0\0\0\0áÇÌÿË·¿,\x04\x06ß^\b¾÷x\0\0\0\f\0\0\0\f\0\0\0\x03\0\0\0\0\0áÇÌÿË»\v\x0e
\x01,\x04\0ß^\b¾÷x\0\0\0	\0\0\0	\0\0\0\x03\0\0\0\0\0áÇÌÿÓ-R6\a\0ß^\b¾÷x\0\0\0\x19\0\0\0\x19\0\0\0\x03\0\0\0\0\0áÇÌÿÓo¹\x18\x17ß^\b¾÷x\x7fM4‹Ð„r\x13÷ÈÉmuæ˜Ù\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0áÇÌÿÓs\x06\x03\0\0\x01\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÌÿÓs¶\x13\x04\x03\0\x01\x01\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿÓwƒ\x0f\x04\0\x01\x13\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿÔ\x1f‚\b\x04\0\0\x01\x01\0\0\0\x0e\0\0\0\x0e\0\0\0\x04\0\0\0\0\0áÇÌÿÔ\x1f¦\0\x01
\0\x06\0\x01\0
\x01\x02\0\x02\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔ6í\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿÔ8Y\0!\x10\0\f\0\x01\0\v\x01\b\0\x02\0\0\0\0\x02\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿÔ8t\0\x01\f\0\b\0\x01\0\x02\x02\x04\0\x01\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔJi\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿÔKà\0!\x10\0\f\0\x01\0\x03\x02\b\0B\0@\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿÔKø\0\x01\f\0\b\0\x01\0\x04\x03\x04\0B\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿÔU³\0!\x10\0\f\0\x01\0\x04\x02\b\0@\0\0\0\x01\x02@\0\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿÔUÆ\0\x01\x12\0\x0e\0\x01\0\x05\x02
\0B\0\0\0\0\0\x01\x02@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔ]ý\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿÔ_r\0!\x0e\0
\0\x01\0\x05\x03\x06\0@\0\0\0\0\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0áÇÌÿÔ_­\0\x01\x18\0\x14\0B\0\x06\0\0\0\x0f5\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔeÌ\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔul\x13\x05\x01\0\x01\x01\0\0\0\0H\0\0\0H\0\0\0\x05\0\0\0\0\0áÇÌÿÔÙŒ\0!D\0@\0@\0\a\0\0\0;\066\x01\a6\0R	\0\0
\0\x01\0\x01	\0\x015	\x19\x11\b\x19\x111\x19\x12\x03	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x01	\0\x055\x03\x19\x10\x02	\x02\06\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿÔÙë\0\x01\x1a\0\x16\0B\0\x06\0\x01\0\x115\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x02\06\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÔê\x13\x05\x01\0\x01\x01\0\0\0\0H\0\0\0H\0\0\0\x05\0\0\0\0\0áÇÌÿÔí\f\0!D\0@\0@\0\a\0\x01\0;\06\0	5\b5\x06\x19\x11\b	\x01\x02	\x01\0%\fHSP service\0	\x03\x02(\x016\0P	\0\0
\0\x01\0\x02	\0\x015\x06\x19\x11\x1e\x19\x02\0l\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿÔí>\0\x01\x1a\0\x16\0B\0\x06\0\x02\0\x115\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x02\0l\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÕ\rº\x13\x05\x01\0\x01\x01\0\0\0\0H\0\0\0H\0\0\0\x05\0\0\0\0\0áÇÌÿÕ\x0f.\0!D\0@\0@\0\a\0\x02\0;\06\x12\x03	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x02	\0\x055\x03\x19\x10\x02	\0	5\b5\x06\x19\x11\x1e	\x01\x05	\x01\0%\fHFP servi\x02\0¢\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿÕ\x0fu\0\x01\x1a\0\x16\0B\0\x06\0\x03\0\x115\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x02\0¢\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÕ!R\x13\x05\x01\0\x01\x01\0\0\0\0H\0\0\0H\0\0\0\x05\0\0\0\0\0áÇÌÿÕ,y\0!D\0@\0@\0\a\0\x03\0;\06ce\0	\x03\x11	\0^[6\0\	\0\0
\0\x01\0\x03	\0\x015\x03\x19\x11\v	\0\x045\x105\x06\x19\x01\0	\0\x195\x06\x19\0\x19	\x01\x02	\0\x055\x03\x02\0Ø\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿÕ,É\0\x01\x1a\0\x16\0B\0\x06\0\x04\0\x115\x03\x19\x01\0ÿÿ5\x05
\0\0ÿÿ\x02\0Ø\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÕ<¤\x13\x05\x01\0\x01\x01\0\0\0\0B\0\0\0B\0\0\0\x05\0\0\0\0\0áÇÌÿÕ@\x0e\0!>\0:\0@\0\a\0\x04\05\02\x19\x10\x02	\0	5\b5\x06\x19\x11\r	\x01\x02	\x01\0%\x17Advanced audio service\0	\x03\x11	\0\x01\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0áÇÌÿÖ^l\0\x01\x18\0\x14\0B\0\x06\0\x05\0\x0f5\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÖmT\x13\x05\x01\0\x01\x01\0\0\0\0G\0\0\0G\0\0\0\x05\0\0\0\0\0áÇÌÿÖÚ=\0!C\0?\0@\0\a\0\x05\0:\055D6\0A	\0\0
\0\x01\0\0	\0\x015\x03\x19\x12\0	\0\x055\x03\x19\x10\x02	\x02\0	\x01\x03	\x02\x01	\0\x0f	\x02\x02	\0\0	\x02\x03	\0\0\x02\05\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿÖÚ›\0\x01\x1a\0\x16\0B\0\x06\0\x06\0\x115\x03\x19\x12\0ÿÿ5\x05
\0\0ÿÿ\x02\05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÖêW\x13\x05\x01\0\x01\x01\0\0\0\0!\0\0\0!\0\0\0\x05\0\0\0\0\0áÇÌÿÖñ§\0!\x1d\0\x19\0@\0\a\0\x06\0\x14\0\x11	\x02\x04(\x01	\x02\x05	\0\x01	€\x01	\0\x01\0\0\0\0\x1c\0\0\0\x1c\0\0\0\x04\0\0\0\0\0áÇÌÿØ\v\0\0\x01\x18\0\x14\0B\0\x06\0\a\0\x0f5\x03\x19\x11\x1eÿÿ5\x05
\0\0ÿÿ\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ\x1aü\x13\x05\x01\0\x01\x01\0\0\0\0G\0\0\0G\0\0\0\x05\0\0\0\0\0áÇÌÿØ\x1cp\0!C\0?\0@\0\a\0\a\0:\055S6\0P	\0\0
\0\x01\0\x02	\0\x015\x06\x19\x11\x1e\x19\x12\x03	\0\x045\f5\x03\x19\x01\05\x05\x19\0\x03\b\x02	\0\x055\x03\x19\x10\x02	\0	5\x02\05\0\0\0\x1e\0\0\0\x1e\0\0\0\x04\0\0\0\0\0áÇÌÿØ\x1c²\0\x01\x1a\0\x16\0B\0\x06\0\b\0\x115\x03\x19\x11\x1eÿÿ5\x05
\0\0ÿÿ\x02\05\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ.ƒ\x13\x05\x01\0\x01\x01\0\0\0\00\0\0\00\0\0\0\x05\0\0\0\0\0áÇÌÿØ/ø\0!,\0(\0@\0\a\0\b\0#\0 \b5\x06\x19\x11\x1e	\x01\x05	\x01\0%\fHFP service\0	\x03\x11	\0^[\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿØ1Z\0\x01\f\0\b\0\x01\0\x02\x04\x04\0\x03\0A\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØB
\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿØC€\0!\x10\0\f\0\x01\0\x03\x04\b\0C\0A\0\0\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0áÇÌÿØC•\0\x01\x10\0\f\0\x01\0\x04\x05\b\0C\0\0\0\x01\x02õ\x03\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿØHb\0!\x10\0\f\0\x01\0\x04\x03\b\0A\0\0\0\x01\x02\0\x04\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿØHy\0\x01\x12\0\x0e\0\x01\0\x05\x03
\0C\0\0\0\0\0\x01\x02\0\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØU”\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿØW\b\0!\x0e\0
\0\x01\0\x05\x05\x06\0A\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0\0\x04\0\0\0\0\0áÇÌÿØW/\0\x01\b\0\x04\0C\0\x03?\x01\x1c\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØYy\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØi^[\x13\x05\x01\0\x01\x01\0\0\0\0\f\0\0\0\f\0\0\0\x05\0\0\0\0\0áÇÌÿØj\0!\b\0\x04\0A\0\x03s\x01×\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿØj±\0\x01\x12\0\x0e\0C\0\x03ï\x15ƒ\x11\x04ð\a\0ð\x03\0\ap\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ|¡\x13\x05\x01\0\x01\x01\0\0\0\0\x16\0\0\0\x16\0\0\0\x05\0\0\0\0\0áÇÌÿØ‚\0\0!\x12\0\x0e\0A\0\x01ï\x15\x11\x04à\a\0ÿ\0\0\aª\0\0\0\f\0\0\0\f\0\0\0\x04\0\0\0\0\0áÇÌÿØ‚\x19\0\x01\b\0\x04\0C\0\x13?\x01–\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿؘ\x02\x13\x05\x01\0\x01\x01\0\0\0\0\f\0\0\0\f\0\0\0\x05\0\0\0\0\0áÇÌÿØšl\0!\b\0\x04\0A\0\x13s\x01]\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿØš \0\x01\f\0\b\0C\0\x03ï	ã\x05\x13p\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿت
\0!\f\0\b\0\x01\0\x02\x04\x04\0\x01\0D\0\0\0\0\x14\0\0\0\x14\0\0\0\x04\0\0\0\0\0áÇÌÿت*\0\x01\x10\0\f\0\x01\0\x03\x04\b\0B\0D\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿت0\0\x01\f\0\b\0\x01\0\x04\x06\x04\0D\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ«\x03\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ»,\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿؽœ\0!\f\0\b\0A\0\x01ï	á\x05\x13ª\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØ¿\x13\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿØÇV\0!\f\0\b\0A\0\x01ï	ã\x05\x13ª\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿØÇr\0\x01\f\0\b\0C\0\x03ï	á\x05\x13p\0\0\0\r\0\0\0\r\0\0\0\x04\0\0\0\0\0áÇÌÿØÇv\0\x01	\0\x05\0C\0\x13ÿ\x01!y\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿØÌB\0!\x10\0\f\0\x01\0\x04\x05\b\0B\0\0\0\x01\x02@\0\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿØÌQ\0\x01\x12\0\x0e\0\x01\0\x05\x05
\0D\0\0\0\0\0\x01\x02@\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿØÑ\x19\0!\x0e\0
\0\x01\0\x05\x06\x06\0B\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØÖ…\x13\x05\x01\0\x01\x01\0\0\0\0\x18\0\0\0\x18\0\0\0\x05\0\0\0\0\0áÇÌÿØßÊ\0!\x14\0\x10\0A\0\x11ÿ\x17	AT+BRSF=27\r£\0\0\0\x1a\0\0\0\x1a\0\0\0\x04\0\0\0\0\0áÇÌÿØà\r\0\x01\x16\0\x12\0C\0\x13ï\x1d
+BRSF: 352
e\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿØà\x15\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØâ;\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØæ"\x13\x05\x01\0\x01\x01\0\0\0\0 \0\0\0 \0\0\0\x05\0\0\0\0\0áÇÌÿØè”\0!\x1c\0\x18\0B\0\x06\0\0\0\x135\x03\x19\x11\x1f\005		\0\x01	\0		\x03\x11\0\0\0\02\0\0\02\0\0\0\x04\0\0\0\0\0áÇÌÿØé\x05\0\x01.\0*\0D\0\a\0\0\0%\0"5 5\x1e	\0\x015\x06\x19\x11\x1f\x19\x12\x03	\0	5\b5\x06\x19\x11\x1e	\x01\x05	\x03\x11	\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿØù­\x13\x05\x01\0\x01\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x05\0\0\0\0\0áÇÌÿÙ\x06Ñ\0!\x13\0\x0f\0A\0\x11ÿ\x15\x02AT+CIND=?\r£\0\0\0‘\0\0\0‘\0\0\0\x04\0\0\0\0\0áÇÌÿÙ\a1\0\x01\0‰\0C\0\x13ï\b\x01
+CIND: ("battchg",(0-5)),("signal",(0-5)),("service",(0,1)),("call",(0,1)),("callsetup",(0-3)),("callheld",(0-2)),("roam",(0,1))
e\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÙ\a9\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ\bÊ\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ\r*\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿÙ\x10’\0!\f\0\b\0\x01\0\x06\x06\x04\0B\0D\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿÙ\x10§\0\x01\f\0\b\0\x01\0\a\x06\x04\0B\0D\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ\x1cË\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ ¼\x13\x05\x01\0\x01\x01\0\0\0\0\x16\0\0\0\x16\0\0\0\x05\0\0\0\0\0áÇÌÿÙ(\x10\0!\x12\0\x0e\0A\0\x11ÿ\x13\x02AT+CIND?\r£\0\0\0$\0\0\0$\0\0\0\x04\0\0\0\0\0áÇÌÿÙ(|\0\x01 \0\x1c\0C\0\x13ï1
+CIND: 5,5,1,0,0,0,0
e\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÙ(…\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ,s\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ?û\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙGË\x13\x05\x01\0\x01\x01\0\0\0\0\x1d\0\0\0\x1d\0\0\0\x05\0\0\0\0\0áÇÌÿÙ§\a\0!\x19\0\x15\0A\0\x11ÿ!\x02AT+CMER=3,0,0,1\r£\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÙ§o\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÙ¹\f\x13\x05\x01\0\x01\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x05\0\0\0\0\0áÇÌÿÚ!^[\0!\x13\0\x0f\0A\0\x11ÿ\x15\x01AT+CCWA=1\r£\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÚ!{\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÚ2,\x13\x05\x01\0\x01\x01\0\0\0\0#\0\0\0#\0\0\0\x05\0\0\0\0\0áÇÌÿÚ4\0!\x1f\0^[\0A\0\x11ÿ-\x01AT+BIA=0,0,1,1,1,1,0,\r£\0\0\0\x15\0\0\0\x15\0\0\0\x04\0\0\0\0\0áÇÌÿÚ4ô\0\x01\x11\0\r\0C\0\x13ï\x13
ERROR
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÚE³\x13\x05\x01\0\x01\x01\0\0\0\0\x18\0\0\0\x18\0\0\0\x05\0\0\0\0\0áÇÌÿÚH$\0!\x14\0\x10\0A\0\x11ÿ\x17\x01AT+CBC=100\r£\0\0\0\x15\0\0\0\x15\0\0\0\x04\0\0\0\0\0áÇÌÿÚHg\0\x01\x11\0\r\0C\0\x13ï\x13
ERROR
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÚY1\x13\x05\x01\0\x01\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x05\0\0\0\0\0áÇÌÿÚ[ \0!\x13\0\x0f\0A\0\x11ÿ\x15\x01AT+VGS=15\r£\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÚ[Ú\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÚl¹\x13\x05\x01\0\x01\x01\0\0\0\0\x19\0\0\0\x19\0\0\0\x05\0\0\0\0\0áÇÌÿÚt\x11\0!\x15\0\x11\0A\0\x11ÿ\x19\x01AT+COPS=3,0\r£\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÚt¤\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÚŒ\b\x13\x05\x01\0\x01\x01\0\0\0\0\x17\0\0\0\x17\0\0\0\x05\0\0\0\0\0áÇÌÿÚéD\0!\x13\0\x0f\0A\0\x11ÿ\x15\x01AT+CMEE=1\r£\0\0\0\x12\0\0\0\x12\0\0\0\x04\0\0\0\0\0áÇÌÿÚéº\0\x01\x0e\0
\0C\0\x13ï
OK
e\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿÛ\x018\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿïm~\0\x01\f\0\b\0\x01\0\x02\a\x04\0\x19\0B\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿïƒ-\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿï„"\0!\x10\0\f\0\x01\0\x03\a\b\0E\0B\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿï„6\0\x01\f\0\b\0\x01\0\x04\b\x04\0E\0\0\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿ\0!\x10\0\f\0\x01\0\x04\a\b\0B\0\0\0\x01\x02 \x02\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿ\0\x01\x12\0\x0e\0\x01\0\x05\a
\0E\0\0\0\0\0\x01\x02 \x02\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿ\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿï þ\0!\x0e\0
\0\x01\0\x05\b\x06\0B\0\0\0\0\0\0\0\0
\0\0\0
\0\0\0\x04\0\0\0\0\0áÇÌÿï¡L\0\x01\x06\0\x02\0E\0\0\x01\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿï¡ì\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿï²\x15\x13\x05\x01\0\x01\x01\0\0\0\0\f\0\0\0\f\0\0\0\x05\0\0\0\0\0áÇÌÿï½Q\0!\b\0\x04\0B\0\x02\x01\x04\b\0\0\0\v\0\0\0\v\0\0\0\x04\0\0\0\0\0áÇÌÿh\0\x01\a\0\x03\0E\0\x10\x02\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿïÍo\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿïÑÒ\0!\x10\0\f\0B\0\x12\x02\x01\0\a\x06\0\0ÿÿ\x02Y\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿïÒ\x10\0\x01\x12\0\x0e\0E\0 \x03\x04\x04\x01\0\a\x06\0\0!\x15\x025\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿïô„\x13\x05\x01\0\x01\x01\0\0\0\0
\0\0\0
\0\0\0\x05\0\0\0\0\0áÇÌÿï÷è\0!\x06\0\x02\0B\0"\x03\0\0\0\v\0\0\0\v\0\0\0\x04\0\0\0\0\0áÇÌÿïø-\0\x01\a\0\x03\0E\00\x06\x04\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿð\b\x06\x13\x05\x01\0\x01\x01\0\0\0\0
\0\0\0
\0\0\0\x05\0\0\0\0\0áÇÌÿð\vo\0!\x06\0\x02\0B\02\x06\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿð\v¬\0\x01\f\0\b\0\x01\0\x02	\x04\0\x19\0C\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿð^[Œ\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x05\0\0\0\0\0áÇÌÿð\x1få\0!\x10\0\f\0\x01\0\x03	\b\0F\0C\0\0\0\0\0\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿð\x1fû\0\x01\f\0\b\0\x01\0\x04
\x04\0F\0\0\0\0\0\0\x18\0\0\0\x18\0\0\0\x05\0\0\0\0\0áÇÌÿð#Ù\0!\x14\0\x10\0\x01\0\x04\b\f\0C\0\0\0\x01\x02ð\x03\x02\x02È\0\0\0\0\x16\0\0\0\x16\0\0\0\x04\0\0\0\0\0áÇÌÿð#æ\0\x01\x12\0\x0e\0\x01\0\x05\b
\0F\0\0\0\0\0\x01\x02ð\x03\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿð/\x14\x13\x05\x01\0\x01\x01\0\0\0\0\x12\0\0\0\x12\0\0\0\x05\0\0\0\0\0áÇÌÿð3y\0!\x0e\0
\0\x01\0\x05
\x06\0C\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿð6Ú\x13\x05\x01\0\x01\x01\0\0\0\0\x14\0\0\0\x14\0\0\0\x02\0\0\0\0\0áÇÌÿðiÛ(\x04\x11\0\x01@\x1f\0\0@\x1f\0\0
\0`\0\x01€\x03\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÌÿðm‰\x0f\x04\0\x01(\x04\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0áÇÌÿð\x16^[\x03\0\x01\x01\0\0\0\x13\0\0\0\x13\0\0\0\x03\0\0\0\0\0áÇÌÿð¨#,\x11\0\x01\x01ß^\b¾÷x\x02\f\x02<\0<\0\x02\0\0\0\x17\0\0\0\x17\0\0\0\x04\0\0\0\0\0áÇÌÿð©¯\0\x01\x13\0\x0f\0C\0\x13ï\x17
+VGS=15
e\0\0\0\x17\0\0\0\x17\0\0\0\x04\0\0\0\0\0áÇÌÿð©»\0\x01\x13\0\x0f\0C\0\x13ï\x17
+VGM=15
e\0\0\03\0\0\03\0\0\0\x06\0\0\0\0\0áÇÌÿðÆÆ\x01\x010\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿðÇc\x13\x05\x01\0\x01\x01\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿðËK\x13\x05\x01\0\x01\x01\0\0\0\0\x05\0\0\0\x05\0\0\0\x03\0\0\0\0\0áÇÌÿðÏ2^[\x03\0\x01\x05\0\0\0\x10\0\0\0\x10\0\0\0\x04\0\0\0\0\0áÇÌÿþ«Ó\0\x01\f\0\b\0\x01\0\x06\v\x04\0B\0@\0\0\0\0\a\0\0\0\a\0\0\0\x03\0\0\0\0\0áÇÌÿþÁ\x13\x05\x01\0\x01\x01\0\0\0\0\x10\0\0\0\x10\0\0\0\x05\0\0\0\0\0áÇÌÿþÅò\0!\f\0\b\0\x01\0\a\v\x04\0B\0@\0\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÍ\01ÏÖ\x14\x06\0\0\x01\x02Œ\x01\0\0\0\x06\0\0\0\x06\0\0\0\x02\0\0\0\0\0áÇÍ\x01 \x04h\x06\x04\x03\x01\x01\x13\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÍ\x01 \b;\x0f\x04\0\x01\x06\x04\0\0\0\x06\0\0\0\x06\0\0\0\x03\0\0\0\0\0áÇÍ\x01#Š«\x05\x04\0\x01\x01\x16\0\0\0\b\0\0\0\b\0\0\0\x03\0\0\0\0\0áÇÍ\x01#¢+\x14\x06\0\0\x01\0\0\0

^ permalink raw reply

* Re: [PATCH BlueZ 1/2 v2] android/hid: Fetch record before attempting to connect
From: Johan Hedberg @ 2013-11-01  9:16 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
In-Reply-To: <1383296324-20355-1-git-send-email-luiz.dentz@gmail.com>

Hi Luiz,

On Fri, Nov 01, 2013, Luiz Augusto von Dentz wrote:
> From: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
> 
> This patch fetch HID record and store the information needed by uHID.
> ---
> v2: Fix including glib-helper.c twice

Both patches have been applied. Thanks.

Johan

^ permalink raw reply

* [PATCH BlueZ 2/2 v2] android/hid: Initial implementation for uHID
From: Luiz Augusto von Dentz @ 2013-11-01  8:58 UTC (permalink / raw)
  To: linux-bluetooth
In-Reply-To: <1383296324-20355-1-git-send-email-luiz.dentz@gmail.com>

From: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>

This patch reads data on interrupt channel and feeds into uHID.
Kernel will take care rest of the things and connects bt mouse
and keyboard:

[168988.557647] input: bluez-input-device as /devices/virtual/misc/uhid/input54
---
 android/hid.c | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 125 insertions(+), 4 deletions(-)

diff --git a/android/hid.c b/android/hid.c
index d64596d..f576548 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -37,6 +37,7 @@
 #include "src/shared/mgmt.h"
 #include "src/sdp-client.h"
 #include "src/glib-helper.h"
+#include "profiles/input/uhid_copy.h"
 
 #include "log.h"
 #include "hal-msg.h"
@@ -47,7 +48,7 @@
 
 #define L2CAP_PSM_HIDP_CTRL	0x11
 #define L2CAP_PSM_HIDP_INTR	0x13
-#define MAX_READ_BUFFER		4096
+#define UHID_DEVICE_FILE	"/dev/uhid"
 
 static GIOChannel *notification_io = NULL;
 static GIOChannel *ctrl_io = NULL;
@@ -67,6 +68,8 @@ struct hid_device {
 	GIOChannel	*intr_io;
 	guint		ctrl_watch;
 	guint		intr_watch;
+	int		uhid_fd;
+	guint		uhid_watch_id;
 };
 
 static int device_cmp(gconstpointer s, gconstpointer user_data)
@@ -77,6 +80,21 @@ static int device_cmp(gconstpointer s, gconstpointer user_data)
 	return bacmp(&hdev->dst, dst);
 }
 
+static void uhid_destroy(int fd)
+{
+	struct uhid_event ev;
+
+	/* destroy uHID device */
+	memset(&ev, 0, sizeof(ev));
+	ev.type = UHID_DESTROY;
+
+	if (write(fd, &ev, sizeof(ev)) < 0)
+		error("Failed to destroy uHID device: %s (%d)",
+						strerror(errno), errno);
+
+	close(fd);
+}
+
 static void hid_device_free(struct hid_device *hdev)
 {
 	if (hdev->ctrl_watch > 0)
@@ -91,17 +109,63 @@ static void hid_device_free(struct hid_device *hdev)
 	if (hdev->ctrl_io)
 		g_io_channel_unref(hdev->ctrl_io);
 
+	if (hdev->uhid_watch_id) {
+		g_source_remove(hdev->uhid_watch_id);
+		hdev->uhid_watch_id = 0;
+	}
+
+	if (hdev->uhid_fd > 0)
+		uhid_destroy(hdev->uhid_fd);
+
 	g_free(hdev->rd_data);
 
 	devices = g_slist_remove(devices, hdev);
 	g_free(hdev);
 }
 
+static gboolean uhid_event_cb(GIOChannel *io, GIOCondition cond,
+							gpointer user_data)
+{
+	struct hid_device *hdev = user_data;
+	struct uhid_event ev;
+	ssize_t bread;
+	int fd;
+
+	DBG("");
+
+	if (cond & (G_IO_ERR | G_IO_NVAL))
+		goto failed;
+
+	fd = g_io_channel_unix_get_fd(io);
+	memset(&ev, 0, sizeof(ev));
+
+	bread = read(fd, &ev, sizeof(ev));
+	if (bread < 0) {
+		DBG("read: %s (%d)", strerror(errno), errno);
+		goto failed;
+	}
+
+	DBG("uHID event type %d received", ev.type);
+	/* TODO Handle events */
+
+	return TRUE;
+
+failed:
+	hdev->uhid_watch_id = 0;
+	return FALSE;
+}
+
 static gboolean intr_io_watch_cb(GIOChannel *chan, gpointer data)
 {
-	char buf[MAX_READ_BUFFER];
+	struct hid_device *hdev = data;
+	uint8_t buf[UHID_DATA_MAX];
+	struct uhid_event ev;
 	int fd, bread;
 
+	/* Wait uHID if not ready */
+	if (hdev->uhid_fd < 0)
+		return TRUE;
+
 	fd = g_io_channel_unix_get_fd(chan);
 	bread = read(fd, buf, sizeof(buf));
 	if (bread < 0) {
@@ -109,7 +173,18 @@ static gboolean intr_io_watch_cb(GIOChannel *chan, gpointer data)
 		return TRUE;
 	}
 
-	DBG("bytes read %d", bread);
+	/* Discard non-data packets */
+	if (bread == 0 || buf[0] != 0xA1)
+		return TRUE;
+
+	/* send data to uHID device skipping HIDP header byte */
+	memset(&ev, 0, sizeof(ev));
+	ev.type = UHID_INPUT;
+	ev.u.input.size = bread - 1;
+	memcpy(ev.u.input.data, &buf[1], ev.u.input.size);
+
+	if (write(hdev->uhid_fd, &ev, sizeof(ev)) < 0)
+		DBG("write: %s (%d)", strerror(errno), errno);
 
 	return TRUE;
 }
@@ -185,6 +260,44 @@ static gboolean ctrl_watch_cb(GIOChannel *chan, GIOCondition cond,
 	return FALSE;
 }
 
+static int uhid_create(struct hid_device *hdev)
+{
+	GIOCondition cond = G_IO_IN | G_IO_ERR | G_IO_NVAL;
+	GIOChannel *io;
+	struct uhid_event ev;
+
+	hdev->uhid_fd = open(UHID_DEVICE_FILE, O_RDWR | O_CLOEXEC);
+	if (hdev->uhid_fd < 0) {
+		error("Failed to open uHID device: %s", strerror(errno));
+		return -errno;
+	}
+
+	memset(&ev, 0, sizeof(ev));
+	ev.type = UHID_CREATE;
+	strcpy((char *) ev.u.create.name, "bluez-input-device");
+	ev.u.create.bus = BUS_BLUETOOTH;
+	ev.u.create.vendor = hdev->vendor;
+	ev.u.create.product = hdev->product;
+	ev.u.create.version = hdev->vendor;
+	ev.u.create.country = hdev->country;
+	ev.u.create.rd_size = hdev->rd_size;
+	ev.u.create.rd_data = hdev->rd_data;
+
+	if (write(hdev->uhid_fd, &ev, sizeof(ev)) < 0) {
+		error("Failed to create uHID device: %s", strerror(errno));
+		close(hdev->uhid_fd);
+		hdev->uhid_fd = -1;
+		return -errno;
+	}
+
+	io = g_io_channel_unix_new(hdev->uhid_fd);
+	g_io_channel_set_encoding(io, NULL, NULL);
+	hdev->uhid_watch_id = g_io_add_watch(io, cond, uhid_event_cb, hdev);
+	g_io_channel_unref(io);
+
+	return 0;
+}
+
 static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 							gpointer user_data)
 {
@@ -195,6 +308,9 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 	if (conn_err)
 		goto failed;
 
+	if (uhid_create(hdev) < 0)
+		goto failed;
+
 	hdev->intr_watch = g_io_add_watch(hdev->intr_io,
 				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
 				intr_watch_cb, hdev);
@@ -321,8 +437,11 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
 		}
 	}
 
-	if (hdev->ctrl_io)
+	if (hdev->ctrl_io) {
+		if (uhid_create(hdev) < 0)
+			goto fail;
 		return;
+	}
 
 	hdev->ctrl_io = bt_io_connect(control_connect_cb, hdev, NULL, &gerr,
 					BT_IO_OPT_SOURCE_BDADDR, src,
@@ -365,6 +484,7 @@ static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 
 	hdev = g_new0(struct hid_device, 1);
 	bacpy(&hdev->dst, &dst);
+	hdev->uhid_fd = -1;
 
 	ba2str(&hdev->dst, addr);
 	DBG("connecting to %s", addr);
@@ -472,6 +592,7 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 		hdev = g_new0(struct hid_device, 1);
 		bacpy(&hdev->dst, &dst);
 		hdev->ctrl_io = g_io_channel_ref(chan);
+		hdev->uhid_fd = -1;
 
 		bt_string2uuid(&uuid, HID_UUID);
 		if (bt_search_service(src, &hdev->dst, &uuid,
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH BlueZ 1/2 v2] android/hid: Fetch record before attempting to connect
From: Luiz Augusto von Dentz @ 2013-11-01  8:58 UTC (permalink / raw)
  To: linux-bluetooth

From: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>

This patch fetch HID record and store the information needed by uHID.
---
v2: Fix including glib-helper.c twice

 android/Android.mk  |   3 +-
 android/Makefile.am |   3 +-
 android/hid.c       | 134 +++++++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 120 insertions(+), 20 deletions(-)

diff --git a/android/Android.mk b/android/Android.mk
index b953554..443ac7a 100644
--- a/android/Android.mk
+++ b/android/Android.mk
@@ -37,7 +37,8 @@ LOCAL_SRC_FILES := \
 	../lib/sdp.c \
 	../lib/bluetooth.c \
 	../lib/hci.c \
-	../btio/btio.c
+	../btio/btio.c \
+	../src/sdp-client.c \
 
 LOCAL_C_INCLUDES := \
 	$(call include-path-for, glib) \
diff --git a/android/Makefile.am b/android/Makefile.am
index 771d5b2..5eb8f01 100644
--- a/android/Makefile.am
+++ b/android/Makefile.am
@@ -20,7 +20,8 @@ android_bluetoothd_SOURCES = android/main.c \
 				android/hid.h android/hid.c \
 				android/ipc.h android/ipc.c \
 				android/socket.h android/socket.c \
-				btio/btio.h btio/btio.c
+				btio/btio.h btio/btio.c \
+				src/sdp-client.h src/sdp-client.c
 
 android_bluetoothd_LDADD = lib/libbluetooth-internal.la @GLIB_LIBS@
 
diff --git a/android/hid.c b/android/hid.c
index 2bc8c06..d64596d 100644
--- a/android/hid.c
+++ b/android/hid.c
@@ -31,7 +31,12 @@
 
 #include "btio/btio.h"
 #include "lib/bluetooth.h"
+#include "lib/sdp.h"
+#include "lib/sdp_lib.h"
+#include "lib/uuid.h"
 #include "src/shared/mgmt.h"
+#include "src/sdp-client.h"
+#include "src/glib-helper.h"
 
 #include "log.h"
 #include "hal-msg.h"
@@ -52,6 +57,12 @@ static GSList *devices = NULL;
 struct hid_device {
 	bdaddr_t	dst;
 	uint8_t		state;
+	uint16_t	vendor;
+	uint16_t	product;
+	uint16_t	version;
+	uint8_t		country;
+	int		rd_size;
+	void		*rd_data;
 	GIOChannel	*ctrl_io;
 	GIOChannel	*intr_io;
 	guint		ctrl_watch;
@@ -80,6 +91,8 @@ static void hid_device_free(struct hid_device *hdev)
 	if (hdev->ctrl_io)
 		g_io_channel_unref(hdev->ctrl_io);
 
+	g_free(hdev->rd_data);
+
 	devices = g_slist_remove(devices, hdev);
 	g_free(hdev);
 }
@@ -98,10 +111,6 @@ static gboolean intr_io_watch_cb(GIOChannel *chan, gpointer data)
 
 	DBG("bytes read %d", bread);
 
-	/* TODO: At this moment only baseband is connected, i.e. mouse
-	 * movements keyboard events doesn't effect on UI. Have to send
-	 * this data to uhid fd for profile connection. */
-
 	return TRUE;
 }
 
@@ -186,8 +195,6 @@ static void interrupt_connect_cb(GIOChannel *chan, GError *conn_err,
 	if (conn_err)
 		goto failed;
 
-	/*TODO: Get device details through SDP and create UHID fd and start
-	 * listening on uhid events */
 	hdev->intr_watch = g_io_add_watch(hdev->intr_io,
 				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
 				intr_watch_cb, hdev);
@@ -250,14 +257,100 @@ failed:
 	hid_device_free(hdev);
 }
 
+static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
+{
+	struct hid_device *hdev = data;
+	sdp_list_t *list;
+	GError *gerr = NULL;
+	const bdaddr_t *src = bt_adapter_get_address();
+
+	DBG("");
+
+	if (err < 0) {
+		error("Unable to get SDP record: %s", strerror(-err));
+		goto fail;
+	}
+
+	if (!recs || !recs->data) {
+		error("No SDP records found");
+		goto fail;
+	}
+
+	for (list = recs; list != NULL; list = list->next) {
+		sdp_record_t *rec = list->data;
+		sdp_data_t *data;
+
+		data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
+		if (data)
+			hdev->vendor = data->val.uint16;
+
+		data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
+		if (data)
+			hdev->product = data->val.uint16;
+
+		data = sdp_data_get(rec, SDP_ATTR_VERSION);
+		if (data)
+			hdev->version = data->val.uint16;
+
+		data = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
+		if (data)
+			hdev->country = data->val.uint8;
+
+		data = sdp_data_get(rec, SDP_ATTR_HID_DESCRIPTOR_LIST);
+		if (data) {
+			if (!SDP_IS_SEQ(data->dtd))
+				goto fail;
+
+			/* First HIDDescriptor */
+			data = data->val.dataseq;
+			if (!SDP_IS_SEQ(data->dtd))
+				goto fail;
+
+			/* ClassDescriptorType */
+			data = data->val.dataseq;
+			if (data->dtd != SDP_UINT8)
+				goto fail;
+
+			/* ClassDescriptorData */
+			data = data->next;
+			if (!data || !SDP_IS_TEXT_STR(data->dtd))
+				goto fail;
+
+			hdev->rd_size = data->unitSize;
+			hdev->rd_data = g_memdup(data->val.str, data->unitSize);
+		}
+	}
+
+	if (hdev->ctrl_io)
+		return;
+
+	hdev->ctrl_io = bt_io_connect(control_connect_cb, hdev, NULL, &gerr,
+					BT_IO_OPT_SOURCE_BDADDR, src,
+					BT_IO_OPT_DEST_BDADDR, &hdev->dst,
+					BT_IO_OPT_PSM, L2CAP_PSM_HIDP_CTRL,
+					BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
+					BT_IO_OPT_INVALID);
+	if (gerr) {
+		error("%s", gerr->message);
+		g_error_free(gerr);
+		goto fail;
+	}
+
+	return;
+
+fail:
+	bt_hid_set_state(hdev, HAL_HID_STATE_DISCONNECTED);
+	hid_device_free(hdev);
+}
+
 static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 {
 	struct hid_device *hdev;
 	char addr[18];
 	bdaddr_t dst;
 	GSList *l;
-	GError *err = NULL;
 	const bdaddr_t *src = bt_adapter_get_address();
+	uuid_t uuid;
 
 	DBG("");
 
@@ -271,20 +364,15 @@ static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)
 		return HAL_STATUS_FAILED;
 
 	hdev = g_new0(struct hid_device, 1);
-	android2bdaddr(&cmd->bdaddr, &hdev->dst);
-	ba2str(&hdev->dst, addr);
+	bacpy(&hdev->dst, &dst);
 
+	ba2str(&hdev->dst, addr);
 	DBG("connecting to %s", addr);
 
-	hdev->ctrl_io = bt_io_connect(control_connect_cb, hdev, NULL, &err,
-					BT_IO_OPT_SOURCE_BDADDR, src,
-					BT_IO_OPT_DEST_BDADDR, &hdev->dst,
-					BT_IO_OPT_PSM, L2CAP_PSM_HIDP_CTRL,
-					BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
-					BT_IO_OPT_INVALID);
-	if (err) {
-		error("%s", err->message);
-		g_error_free(err);
+	bt_string2uuid(&uuid, HID_UUID);
+	if (bt_search_service(src, &hdev->dst, &uuid, hid_sdp_search_cb, hdev,
+								NULL) < 0) {
+		error("Failed to search sdp details");
 		hid_device_free(hdev);
 		return HAL_STATUS_FAILED;
 	}
@@ -354,6 +442,8 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 	uint16_t psm;
 	GError *gerr = NULL;
 	GSList *l;
+	const bdaddr_t *src = bt_adapter_get_address();
+	uuid_t uuid;
 
 	if (err) {
 		error("%s", err->message);
@@ -383,6 +473,14 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
 		bacpy(&hdev->dst, &dst);
 		hdev->ctrl_io = g_io_channel_ref(chan);
 
+		bt_string2uuid(&uuid, HID_UUID);
+		if (bt_search_service(src, &hdev->dst, &uuid,
+					hid_sdp_search_cb, hdev, NULL) < 0) {
+			error("failed to search sdp details");
+			hid_device_free(hdev);
+			return;
+		}
+
 		devices = g_slist_append(devices, hdev);
 
 		hdev->ctrl_watch = g_io_add_watch(hdev->ctrl_io,
-- 
1.8.3.1


^ permalink raw reply related

* Re: [BUG] Crash during disconnecting and removing bond from remote device
From: Johan Hedberg @ 2013-11-01  7:57 UTC (permalink / raw)
  To: Seung-Woo Kim; +Cc: linux-bluetooth, s.syam
In-Reply-To: <526E5C98.8020407@samsung.com>

Hi Seung-Woo Kim,

On Mon, Oct 28, 2013, Seung-Woo Kim wrote:
> I used 3.10.14 with RFCOMM tty patches in 3.12-rc, and I tested
> disconnecting and removing a bond from remote device. and I got
> following crash.

This looks like a potentially valid issue, but you'd need to dress up
the fix as a proper patch (i.e. git format-patch + git send-email). It'd
also be good if you could confirm that the issue is reproducable with
the latest bluetooth-next kernel.

Johan

^ permalink raw reply

* Re: Intel 7260 bluetooth malfunction when it is connected to EHCI bus
From: Marcel Holtmann @ 2013-11-01  7:49 UTC (permalink / raw)
  To: Hui Wang
  Cc: Tedd An, Johan Hedberg, xiong.y.zhang, Gustavo F. Padovan,
	linux-bluetooth@vger.kernel.org development, Kun Yang,
	Anthony Wong
In-Reply-To: <5273147E.4040004@canonical.com>

Hi Hui,

>>>>>>> The problem is:
>>>>>>> On the machine which has Intel 7260 BT module, i use it to connect a bluetooth headset,
>>>>>>> it can successfully scan and connect to the headset, when i play sound to the bt headset,
>>>>>>> the problem comes, if the bt module is connected to the XHCI, it can work very well.
>>>>>>> 
>>>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>>>> 1-7:1.0: No such file or directory
>>>>>>> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>>>> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>>>>    |__ Port 6: Dev 8, If 0, Class=HID, Driver=usbhid, 1.5M
>>>>>>>    |__ Port 7: Dev 2, If 0, Class=vend., Driver=, 12M
>>>>>>>    |__ Port 11: Dev 3, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>    |__ Port 11: Dev 3, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>> 
>>>>>>> But if the bt module is connected to the EHCI, it always fails to play sound.
>>>>>>> 
>>>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>>>> /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>>>> /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>>>> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
>>>>>>>    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
>>>>>>> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/3p, 480M
>>>>>>>    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
>>>>>>>        |__ Port 5: Dev 3, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>        |__ Port 5: Dev 3, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>>>        |__ Port 6: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
>>>>>>>        |__ Port 6: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
>>>>>> can you paste /sys/kernel/debug/usb/devices here.
>>>>>> 
>>>>>> If the uvcvideo driver is also using ISOC URBs, we might have just exhausted the bandwidth of the USB bus here or these two devices just do not play nice with each other.
>>>>>> 
>>>>>> Try to unload the uvcvideo driver and try it again.
>>>>> Thanks for your reply, follow your instruction, i totally disabled the camera from the BIOS, then the usb tree like this,
>>>>> u@u-Lenovo-B4400:~$ lsusb -t
>>>>> 1-1.3:1.0: No such file or directory
>>>>> /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
>>>>> /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
>>>>> /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
>>>>>    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/8p, 480M
>>>>> /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
>>>>>    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
>>>>>        |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M
>>>>>        |__ Port 3: Dev 4, If 0, Class=vend., Driver=, 12M
>>>>>        |__ Port 5: Dev 5, If 0, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>>        |__ Port 5: Dev 5, If 1, Class='bInterfaceClass 0xe0 not yet handled', Driver=btusb, 12M
>>>>> u@u-Lenovo-B4400:~$ uname -a
>>>>> Linux u-Lenovo-B4400 3.12.0-031200rc6-generic #201310191635 SMP Sat Oct 19 20:36:43 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>>>>> 
>>>>> I re-did the test, the result is same as before, after the headset is connected and i play audio, no sound is heard from the headset.
>>>>> And hciconfig output shows still no SCO packets received by BT driver.
>>>>> u@u-Lenovo-B4400:~$ hciconfig
>>>>> hci0:    Type: BR/EDR  Bus: USB
>>>>>    BD Address: 00:15:00:CC:2D:D2  ACL MTU: 1021:5  SCO MTU: 96:5
>>>>>    UP RUNNING PSCAN
>>>>>    RX bytes:5853 acl:61 sco:0 events:298 errors:0
>>>>>    TX bytes:19212 acl:68 sco:1 commands:179 errors:0
>>>> this is strange. The only reason I can think of is that you do not have the firmware installed and or it is not loaded correctly. Does dmesg give any indication that something failed here.
>>> I can confirm the firmware file is the /lib/firmware/intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq, and it is in the filesystem. And from the dmesg, the firmware was successfully loaded.
>>> 
>>> [    8.600217] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
>>> [    8.653635] kvm: disabled by bios
>>> [    8.672981] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd00123/0x840300/0x126c00
>>> [    8.707034] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input13
>>> [    8.717725] Registered led device: phy0-led
>>> [    8.722730] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
>>> [    8.752626] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated
>>> 
>>>> Since this is a 3.12 kernel it should have native support for Intel specific setup routing. Any chance you can run btmon -w <file> before plugging the device into the bus. Maybe something goes wrong with the setup routine on EHCI.
>>> Do you mean the hcidump file i just sent in my previous email.
>> I do not get this. I specifically asked to run “btmon -w <file>” before plugging in the device. I want to see the early setup process here. What would I do with a hcidump trace.
> 
> The attachment is the logfile generated by "btmon -w <file>". And the logfile was generated by below steps,
> 
> 1) boot up the system into the ubuntu desktop
> 2) open a terminal and run "sudo btmon -w ~/lenovo-m4400s-btmon.log"
> 3) open bluetooth applet and click adding a new device, the bluetooth begin to scan devices
> 4) power up the bt headset
> 5) laptop bt module find the headset and connect it successfully
> 6) open the sound applet, choose bt headset as output device, play sound, but no sound can be heard from bt headset
> 7) Ctrl+C to terminate the "btmon -w <file>"
> 
> In case you can't receive the attachment, i decode the logfile and paste the content here.

what I need is to see the 7260 controller init. So you need to start btmon -w <file> before the 7260 gets attached to the USB bus or before btusb.ko driver gets loaded.

Regards

Marcel


^ permalink raw reply

* Re: [RFC] hidhost: Shutdown HID L2CAP sockets on unregister
From: Johan Hedberg @ 2013-11-01  7:46 UTC (permalink / raw)
  To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1383233418-14757-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>

Hi Andrei,

On Thu, Oct 31, 2013, Andrei Emeltchenko wrote:
> Fixes address already in use issue if we reenable HID.
> ...
> bluetoothd[2894]: Failed to listen on ctrl channel:
> 	l2cap_bind: Address already in use (98)
> ...
> ---
>  android/hid.c |   14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)

Applied (after fixing up the subject prefix). Thanks.

Johan

^ permalink raw reply

* Re: [PATCH BlueZ 2/2] android/hid: Initial implementation for uHID
From: Johan Hedberg @ 2013-11-01  7:44 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: linux-bluetooth
In-Reply-To: <1383235026-12247-2-git-send-email-luiz.dentz@gmail.com>

Hi Luiz/Ravi,

On Thu, Oct 31, 2013, Luiz Augusto von Dentz wrote:
> From: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
> 
> This patch reads data on interrupt channel and feeds into uHID.
> Kernel will take care rest of the things and connects bt mouse
> and keyboard:
> 
> [168988.557647] input: bluez-input-device as /devices/virtual/misc/uhid/input54
> ---
>  android/hid.c | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 125 insertions(+), 4 deletions(-)

After applying these two patches the tree stops compiling for me (even
after rerunning ./bootstrap-configure):

src/glib-helper.o: In function `bt_modalias':
/home/jh/src/bluez/src/glib-helper.c:42: multiple definition of `bt_modalias'
src/glib-helper.o:/home/jh/src/bluez/src/glib-helper.c:42: first defined here
src/glib-helper.o: In function `bt_uuid2string':
/home/jh/src/bluez/src/glib-helper.c:55: multiple definition of `bt_uuid2string'
src/glib-helper.o:/home/jh/src/bluez/src/glib-helper.c:55: first defined here
src/glib-helper.o: In function `bt_name2string':
/home/jh/src/bluez/src/glib-helper.c:172: multiple definition of `bt_name2string'
src/glib-helper.o:/home/jh/src/bluez/src/glib-helper.c:172: first defined here
src/glib-helper.o: In function `bt_string2uuid':
/home/jh/src/bluez/src/glib-helper.c:202: multiple definition of `bt_string2uuid'
src/glib-helper.o:/home/jh/src/bluez/src/glib-helper.c:202: first defined here
collect2: error: ld returned 1 exit status
make[1]: *** [android/bluetoothd] Error 1

Johan

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox