7
     h      i8042 KBD port
      355_I|Mjq؂ <o c    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
  9   	lm_J2R P-7yLZ70am_J2R P-7yLZ7  	   0     h      2
  )   Z٫{-i[D<o_I|Mjq؂            mn0D|!sjAKK,Tbx)ZINf& dv}9ydu{l[1H/Hs
5xBnL:;nV˞;T噶IWUcv_͡lH)wh?<K\"P>HRBc{M<    	   0  #   li~mJi@;p"bѿ ?     # Copyright (C) 2007 Collabora Ltd. <http://www.collabora.co.uk/>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation
# files (the "Software"), to deal in the Software without
# restriction, including without limitation the rights to use, copy,
# modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.

__all__ = ('Connection', 'SignalMatch')
__docformat__ = 'reStructuredText'

import logging
import threading
import weakref

from _dbus_bindings import (
    Connection as _Connection, LOCAL_IFACE, LOCAL_PATH, validate_bus_name,
    validate_interface_name, validate_member_name, validate_object_path)
from dbus.exceptions import DBusException
from dbus.lowlevel import (
    ErrorMessage, HANDLER_RESULT_NOT_YET_HANDLED, MethodCallMessage,
    MethodReturnMessage, SignalMessage)
from dbus.proxies import ProxyObject
from dbus._compat import is_py2, is_py3

if is_py3:
    from _dbus_bindings import String
else:
    from _dbus_bindings import UTF8String


_logger = logging.getLogger('dbus.connection')


def _noop(*args, **kwargs):
    pass


class SignalMatch(object):
    _slots = ['_sender_name_owner', '_member', '_interface', '_sender',
              '_path', '_handler', '_args_match', '_rule',
              '_byte_arrays', '_conn_weakref',
              '_destination_keyword', '_interface_keyword',
              '_message_keyword', '_member_keyword',
              '_sender_keyword', '_path_keyword', '_int_args_match']
    if is_py2:
        _slots.append('_utf8_strings')

    __slots__ = tuple(_slots)

    def __init__(self, conn, sender, object_path, dbus_interface,
                 member, handler, byte_arrays=False,
                 sender_keyword=None, path_keyword=None,
                 interface_keyword=None, member_keyword=None,
                 message_keyword=None, destination_keyword=None,
                 **kwargs):
        if member is not None:
            validate_member_name(member)
        if dbus_interface is not None:
            validate_interface_name(dbus_interface)
        if sender is not None:
            validate_bus_name(sender)
        if object_path is not None:
            validate_object_path(object_path)

        self._rule = None
        self._conn_weakref = weakref.ref(conn)
        self._sender = sender
        self._interface = dbus_interface
        self._member = member
        self._path