[sane-devel] CanoScan5000F backend project beginning soon...

m. allan noah anoah@pfeiffer.edu
Thu, 24 Jun 2004 16:01:31 -0400 (EDT)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1386611826-263747728-1088107291=:13997
Content-Type: TEXT/PLAIN; charset=US-ASCII

asking for help on this list, and posting your sniffer logs up on the web 
usually will get some helpful pointers, but you are going to have to do 
most of the work, since you own the scanner.

the script that henning may have mentioned is called spike. you cant look 
for it online. however, it only works with certain older versions of 
usbsnoopy.

i have written a replacement for it, called spike4, which is attached to 
this mail. spike4 understands benoit's usb sniffer (which i highly 
recommend) logs. it is availible after a little googling as well.

allan

On Thu, 24 Jun 2004, Thibault North wrote:

> Good afternoon,
> As I said it some time ago, I am going to try and make the scanner Canon 
> canoscan5000F work... This will begin probably beginning of July, as 
> soon as my exams are done. I have then time to work with a friend which 
> knows more C than I do :)
> I wanted to know if some of you where interested in helping us (if you 
> have this scanner) or be available to answer our questions (using IRC ?) 
> : we have never done a project like that and it is a little frightening :)
> 
> If it is the case, please answer here of @ tnorth@bluewin.ch.
> An adress used to communicate : http://gna.org/projects/canoscan5000F
> 
> Thanks !
> 
> Thibault North
> 
> P.S to Henning Meier-Geinitz : could you please send me the Perl script 
> we spoke about which is able to filter the log file from SniffUSB ?
> Thank you very much,
> 
> Here is the sane-find-scanner -v -v :
> 
> 
> searching for SCSI scanners:
> checking /dev/scanner... failed to open (Invalid argument)
> checking /dev/sg0... failed to open (Invalid argument)
> checking /dev/sg1... failed to open (Access to resource has been denied)
> checking /dev/sg2... failed to open (Access to resource has been denied)
> checking /dev/sg3... failed to open (Access to resource has been denied)
> checking /dev/sg4... failed to open (Access to resource has been denied)
> checking /dev/sg5... failed to open (Access to resource has been denied)
> checking /dev/sg6... failed to open (Access to resource has been denied)
> checking /dev/sg7... failed to open (Access to resource has been denied)
> checking /dev/sg8... failed to open (Access to resource has been denied)
> checking /dev/sg9... failed to open (Access to resource has been denied)
> checking /dev/sga... failed to open (Invalid argument)
> checking /dev/sgb... failed to open (Access to resource has been denied)
> checking /dev/sgc... failed to open (Access to resource has been denied)
> checking /dev/sgd... failed to open (Access to resource has been denied)
> checking /dev/sge... failed to open (Access to resource has been denied)
> checking /dev/sgf... failed to open (Access to resource has been denied)
> checking /dev/sgg... failed to open (Access to resource has been denied)
> checking /dev/sgh... failed to open (Access to resource has been denied)
> checking /dev/sgi... failed to open (Access to resource has been denied)
> checking /dev/sgj... failed to open (Access to resource has been denied)
> checking /dev/sgk... failed to open (Access to resource has been denied)
> checking /dev/sgl... failed to open (Access to resource has been denied)
> checking /dev/sgm... failed to open (Access to resource has been denied)
> checking /dev/sgn... failed to open (Access to resource has been denied)
> checking /dev/sgo... failed to open (Access to resource has been denied)
> checking /dev/sgp... failed to open (Access to resource has been denied)
> checking /dev/sgq... failed to open (Invalid argument)
> checking /dev/sgr... failed to open (Invalid argument)
> checking /dev/sgs... failed to open (Invalid argument)
> checking /dev/sgt... failed to open (Invalid argument)
> checking /dev/sgu... failed to open (Invalid argument)
> checking /dev/sgv... failed to open (Invalid argument)
> checking /dev/sgw... failed to open (Invalid argument)
> checking /dev/sgx... failed to open (Invalid argument)
> checking /dev/sgy... failed to open (Invalid argument)
> checking /dev/sgz... failed to open (Invalid argument)
>   # No SCSI scanners found. If you expected something different, make 
> sure that
>   # you have loaded a SCSI driver for your SCSI adapter.
> 
> searching for USB scanners:
> checking /dev/usb/scanner... failed to open (Invalid argument)
> checking /dev/usb/scanner0... failed to open (Invalid argument)
> checking /dev/usb/scanner1... failed to open (Invalid argument)
> checking /dev/usb/scanner2... failed to open (Invalid argument)
> checking /dev/usb/scanner3... failed to open (Invalid argument)
> checking /dev/usb/scanner4... failed to open (Invalid argument)
> checking /dev/usb/scanner5... failed to open (Invalid argument)
> checking /dev/usb/scanner5... failed to open (Invalid argument)
> checking /dev/usb/scanner7... failed to open (Invalid argument)
> checking /dev/usb/scanner8... failed to open (Invalid argument)
> checking /dev/usb/scanner9... failed to open (Invalid argument)
> checking /dev/usb/scanner10... failed to open (Invalid argument)
> checking /dev/usb/scanner11... failed to open (Invalid argument)
> checking /dev/usb/scanner12... failed to open (Invalid argument)
> checking /dev/usb/scanner13... failed to open (Invalid argument)
> checking /dev/usb/scanner14... failed to open (Invalid argument)
> checking /dev/usb/scanner15... failed to open (Invalid argument)
> checking /dev/usbscanner... failed to open (Invalid argument)
> checking /dev/usbscanner0... failed to open (Invalid argument)
> checking /dev/usbscanner1... failed to open (Invalid argument)
> checking /dev/usbscanner2... failed to open (Invalid argument)
> checking /dev/usbscanner3... failed to open (Invalid argument)
> checking /dev/usbscanner4... failed to open (Invalid argument)
> checking /dev/usbscanner5... failed to open (Invalid argument)
> checking /dev/usbscanner6... failed to open (Invalid argument)
> checking /dev/usbscanner7... failed to open (Invalid argument)
> checking /dev/usbscanner8... failed to open (Invalid argument)
> checking /dev/usbscanner9... failed to open (Invalid argument)
> checking /dev/usbscanner10... failed to open (Invalid argument)
> checking /dev/usbscanner11... failed to open (Invalid argument)
> checking /dev/usbscanner12... failed to open (Invalid argument)
> checking /dev/usbscanner13... failed to open (Invalid argument)
> checking /dev/usbscanner14... failed to open (Invalid argument)
> checking /dev/usbscanner15... failed to open (Invalid argument)
> trying libusb:
> 
> <device descriptor of 0x0000/0x0000 at 004:001>
> bLength               18
> bDescriptorType       1
> bcdUSB                2.00
> bDeviceClass          9
> bDeviceSubClass       0
> bDeviceProtocol       1
> bMaxPacketSize0       8
> idVendor              0x0000
> idProduct             0x0000
> bcdDevice             2.04
> iManufacturer         3 ((null))
> iProduct              2 ((null))
> iSerialNumber         1 ((null))
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         25
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         64 (Self-powered)
>  MaxPower             0 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      1
>    bInterfaceClass    9
>    bInterfaceSubClass 0
>    bInterfaceProtocol 0
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    2
>     bInterval         12 ms
>     bRefresh          0
>     bSynchAddress     0
> 
> <device descriptor of 0x04a9/0x2212 at 004:002>
> bLength               18
> bDescriptorType       1
> bcdUSB                2.00
> bDeviceClass          255
> bDeviceSubClass       255
> bDeviceProtocol       255
> bMaxPacketSize0       64
> idVendor              0x04A9
> idProduct             0x2212
> bcdDevice             3.03
> iManufacturer         2 ((null))
> iProduct              3 ((null))
> iSerialNumber         1 ((null))
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         39
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         192 (Self-powered)
>  MaxPower             10 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      3
>    bInterfaceClass    0
>    bInterfaceSubClass 0
>    bInterfaceProtocol 0
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      2 (bulk)
>     wMaxPacketSize    512
>     bInterval         0 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x02 (out 0x02)
>     bmAttributes      2 (bulk)
>     wMaxPacketSize    512
>     bInterval         0 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 2>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    1
>     bInterval         8 ms
>     bRefresh          0
>     bSynchAddress     0
> found USB scanner (vendor=0x04a9, product=0x2212) at libusb:004:002
> 
> <device descriptor of 0x0000/0x0000 at 003:001>
> bLength               18
> bDescriptorType       1
> bcdUSB                1.00
> bDeviceClass          9
> bDeviceSubClass       0
> bDeviceProtocol       0
> bMaxPacketSize0       8
> idVendor              0x0000
> idProduct             0x0000
> bcdDevice             0.00
> iManufacturer         0 ()
> iProduct              2 ((null))
> iSerialNumber         1 ((null))
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         25
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         64 (Self-powered)
>  MaxPower             0 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      1
>    bInterfaceClass    9
>    bInterfaceSubClass 0
>    bInterfaceProtocol 0
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    8
>     bInterval         255 ms
>     bRefresh          0
>     bSynchAddress     0
> 
> <device descriptor of 0x0000/0x0000 at 002:001>
> bLength               18
> bDescriptorType       1
> bcdUSB                1.00
> bDeviceClass          9
> bDeviceSubClass       0
> bDeviceProtocol       0
> bMaxPacketSize0       8
> idVendor              0x0000
> idProduct             0x0000
> bcdDevice             0.00
> iManufacturer         0 ()
> iProduct              2 ((null))
> iSerialNumber         1 ((null))
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         25
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         64 (Self-powered)
>  MaxPower             0 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      1
>    bInterfaceClass    9
>    bInterfaceSubClass 0
>    bInterfaceProtocol 0
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    8
>     bInterval         255 ms
>     bRefresh          0
>     bSynchAddress     0
> 
> <device descriptor of 0x0000/0x0000 at 001:001>
> bLength               18
> bDescriptorType       1
> bcdUSB                1.00
> bDeviceClass          9
> bDeviceSubClass       0
> bDeviceProtocol       0
> bMaxPacketSize0       8
> idVendor              0x0000
> idProduct             0x0000
> bcdDevice             0.00
> iManufacturer         0 ()
> iProduct              2 ((null))
> iSerialNumber         1 ((null))
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         25
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         64 (Self-powered)
>  MaxPower             0 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      1
>    bInterfaceClass    9
>    bInterfaceSubClass 0
>    bInterfaceProtocol 0
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    8
>     bInterval         255 ms
>     bRefresh          0
>     bSynchAddress     0
> 
> <device descriptor of 0x046d/0xc00e at 001:002>
> bLength               18
> bDescriptorType       1
> bcdUSB                2.00
> bDeviceClass          0
> bDeviceSubClass       0
> bDeviceProtocol       0
> bMaxPacketSize0       8
> idVendor              0x046D
> idProduct             0xC00E
> bcdDevice             17.10
> iManufacturer         1 ((null))
> iProduct              2 ((null))
> iSerialNumber         0 ()
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         34
>  bNumInterfaces       1
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         160 (Remote Wakeup)
>  MaxPower             98 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      1
>    bInterfaceClass    3
>    bInterfaceSubClass 1
>    bInterfaceProtocol 2
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    4
>     bInterval         10 ms
>     bRefresh          0
>     bSynchAddress     0
> 
> <device descriptor of 0x413c/0x8000 at 001:003>
> bLength               18
> bDescriptorType       1
> bcdUSB                1.10
> bDeviceClass          224
> bDeviceSubClass       1
> bDeviceProtocol       1
> bMaxPacketSize0       64
> idVendor              0x413C
> idProduct             0x8000
> bcdDevice             5.65
> iManufacturer         0 ()
> iProduct              0 ()
> iSerialNumber         0 ()
> bNumConfigurations    1
>  <configuration 0>
>  bLength              9
>  bDescriptorType      2
>  wTotalLength         193
>  bNumInterfaces       3
>  bConfigurationValue  1
>  iConfiguration       0 ()
>  bmAttributes         224 (Self-poweredRemote Wakeup)
>  MaxPower             0 mA
>   <interface 0>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   0
>    bAlternateSetting  0
>    bNumEndpoints      3
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x81 (in 0x01)
>     bmAttributes      3 (interrupt)
>     wMaxPacketSize    16
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x02 (out 0x02)
>     bmAttributes      2 (bulk)
>     wMaxPacketSize    64
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 2>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x82 (in 0x02)
>     bmAttributes      2 (bulk)
>     wMaxPacketSize    64
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>   <interface 1>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>    <altsetting 1>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>    <altsetting 2>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>    <altsetting 3>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>    <altsetting 4>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>    <altsetting 5>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   1
>    bAlternateSetting  0
>    bNumEndpoints      2
>    bInterfaceClass    224
>    bInterfaceSubClass 1
>    bInterfaceProtocol 1
>    iInterface         0 ()
>     <endpoint 0>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x03 (out 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>     <endpoint 1>
>     bLength           7
>     bDescriptorType   5
>     bEndpointAddress  0x83 (in 0x03)
>     bmAttributes      1 (isochronous)
>     wMaxPacketSize    0
>     bInterval         1 ms
>     bRefresh          0
>     bSynchAddress     0
>   <interface 2>
>    <altsetting 0>
>    bLength            9
>    bDescriptorType    4
>    bInterfaceNumber   2
>    bAlternateSetting  0
>    bNumEndpoints      0
>    bInterfaceClass    254
>    bInterfaceSubClass 1
>    bInterfaceProtocol 0
>    iInterface         0 ()
>   # Your USB scanner was (probably) detected. It may or may not be 
> supported by
>   # SANE. Try scanimage -L and read the backend's manpage.
> 
>   # Scanners connected to the parallel port or other proprietary ports 
> can't be
>   # detected by this program.
> 
>   # You may want to run this program as root to find all devices. Once you
>   # found the scanner devices, be sure to adjust access permissions as
>   # necessary.
> done
> 
> 
> 

-- 
"so don't tell us it can't be done, putting down what you don't know.
money isn't our god, integrity will free our souls" - Max Cavalera
--1386611826-263747728-1088107291=:13997
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="spike4.pl"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58.0406241601310.13997@thanatos.pfeiffer.edu>
Content-Description: 
Content-Disposition: attachment; filename="spike4.pl"

IyEgL3Vzci9iaW4vcGVybA0KDQojIHNpbXBsZSBsb2cgcmVmb3JtYXR0ZXIg
Zm9yIGJlbm9pdCdzIHNuaWZmdXNiLmV4ZQ0KIyBwdWJsaWMgZG9tYWluLiBi
eSBhbm9haEBwZmVpZmZlci5lZHUNCg0KdXNlIHN0cmljdDsNCg0KbXkgJGNv
dW50PTA7DQpteSAkbGFzdFVyYkxUaW1lPTA7DQpteSBAYnVmZmVyOw0KDQp3
aGlsZSAobXkgJGxpbmUgPSA8U1RESU4+KSB7DQoNCiAgICAgICAgaWYgKCAk
bGluZSA9fiBtLz4+Pi8gKSB7DQogICAgICAgICAgICBkdW1wZXIoQGJ1ZmZl
cikgaWYgJGNvdW50Ow0KICAgICAgICAgICAgQGJ1ZmZlciA9ICgpOw0KICAg
ICAgICAgICAgJGNvdW50Kys7DQogICAgICAgIH0NCiAgICAgICAgaWYgKCAk
bGluZSA9fiBtL1VzYlNub29wLyApe25leHQ7fQ0KICAgICAgICBwdXNoKEBi
dWZmZXIsJGxpbmUpOw0KDQp9DQpkdW1wZXIoQGJ1ZmZlcikgaWYgJGNvdW50
Ow0KDQpzdWIgZHVtcGVyIHsNCg0KICAgIG15ICRkaXI9J291dCc7DQogICAg
bXkgJHR5cGU9J0MnOw0KICAgIG15ICRkYXRhPSgpOw0KICAgIG15ICR1cmI9
MDsNCiAgICBteSAkZXA9Jyc7DQogICAgbXkgJGZUaW1lPTA7DQogICAgbXkg
JGxUaW1lPTA7DQoNCiAgICBmb3JlYWNoIG15ICRsaW5lIChAXykgew0KDQog
ICAgICAgIGlmKCRsaW5lID1+IG0vXFsoXGQrKSBtc1xdIC4qIFVSQiAoXGQr
KSBnb2luZyBkb3duLyl7DQogICAgICAgICAgJGZUaW1lPSQxOw0KICAgICAg
ICAgICR1cmI9JDI7DQogICAgICAgICAgcHJpbnQgIlxucGF1c2UgIiAuICgk
ZlRpbWUtJGxhc3RVcmJMVGltZSkgLiAiIG1zXG5cbiI7DQogICAgICAgIH0N
CiAgICAgICAgZWxzaWYgKCAkbGluZSA9fiBtL1VTQkRfVFJBTlNGRVJfRElS
RUNUSU9OX0lOLyApIHsNCiAgICAgICAgICAkZGlyPSdpbic7DQogICAgICAg
ICAgJGRhdGE9KCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzaWYgKCAkbGlu
ZSA9fiBtLy0tIFVSQl9GVU5DVElPTl9CVUxLX09SX0lOVEVSUlVQVF9UUkFO
U0ZFUi8gKSB7DQogICAgICAgICAgJHR5cGU9J0InOw0KICAgICAgICB9DQog
ICAgICAgIGVsc2lmKCAkbGluZSA9fiBtL1BpcGVIYW5kbGUuKmVuZHBvaW50
ICgweFxkKykvKXsNCiAgICAgICAgICAkZXA9JDE7DQogICAgICAgIH0NCiAg
ICAgICAgZWxzaWYgKCAkbGluZSA9fiBtIC8gIChbMC05YS1mXXs4fTogKShb
MC05YS1mIF0qKS8gKSB7DQogICAgICAgICAgcHVzaChAeyRkYXRhfSwgJDEg
LiAkMik7DQogICAgICAgIH0NCg0KICAgICAgICBpZiAoICRsaW5lID1+IG0v
XFsoXGQrKSBtc1xdLyApew0KICAgICAgICAgICRsVGltZT0kMTsNCiAgICAg
ICAgfQ0KDQogICAgICAgICRlcD1+cy9eMHgwKy8vOw0KICAgIH0NCg0KICAg
IGlmKCRkaXIgZXEgJ2luJyl7DQogICAgICAgIHByaW50ICJVcmIgJHVyYiAo
JHR5cGUpIGVwPSRlcCAocmVhZCkgIjsNCiAgICB9DQogICAgZWxzZXsNCiAg
ICAgICAgcHJpbnQgIlVyYiAkdXJiICgkdHlwZSkgZXA9JGVwICh3cml0ZSkg
IjsNCiAgICB9DQogICAgcHJpbnQgJGxUaW1lLSRmVGltZSAuICIgbXNcbiI7
DQoNCiAgICBmb3JlYWNoIG15ICRsaW5lIChAeyRkYXRhfSkgew0KICAgICAg
ICAgICAgcHJpbnRmKCIgJXMiLCAkbGluZSk7DQogICAgICAgICAgICBwcmlu
dCAiXG4iOw0KICAgIH0NCg0KICAgICRsYXN0VXJiTFRpbWU9JGxUaW1lOw0K
DQp9DQoNCmV4aXQgMDsNCg==

--1386611826-263747728-1088107291=:13997--