114047|language.references.spot|27|1389021149|lutondatta at gmail dot com|VGhpcyBpcyB2ZXJ5IHVzZWZ1bCBpbiBwYXNzaW5nIGxhcmdlIGFycmF5cy4gSWYgeW91IGRvIG5vdCBwYXNzIHRoZSBhcnJheSBieSByZWZlcmVuY2UsIHlvdSBhcmUgY3JlYXRpbmcgYW5vdGhlciBjb3B5IG9mIHRoZSBhcnJheSBpbiBtZW1vcnkuIAo8P3BocAovL1BhcnQgMQoJCSR4ID0gNDA7CgkJJHkgPSAkeDsKCQkkeiA9JiAkeDsKCQllY2hvICckeCBpcyAnIC4gJHggLiAnPGJyIC8+JzsgLy9TaG93IDQwCgkJZWNobyAnJHkgaXMgJyAuICR5IC4gJzxiciAvPic7IC8vU2hvdyA0MAoJCWVjaG8gJyR6IGlzICcgLiAkeiAuICc8YnIgLz4nOyAvL1Nob3cgNDAKLy9QYXJ0IDIKCQkkeCA9IDUwOwoJCWVjaG8gJyR4IGlzICcgLiAkeCAuICc8YnIgLz4nOyAvL1Nob3cgNTAKCQllY2hvICckeSBpcyAnIC4gJHkgLiAnPGJyIC8+JzsgLy9TaG93IDQwCgkJZWNobyAnJHogaXMgJyAuICR6IC4gJzxiciAvPic7IC8vU2hvdyA1MAo/PgpJbiBwYXJ0IDIgdmFsdWUgb2YgJHogd2lsbCBjaGFuZ2VzIGFjY29yZGluZyB0byAkeC4=|3|8 105203|language.references.spot|50|1312292281|CodeWorX.ch|aGVyZSBpcyBhbiB1bmNvbnZlbnRpb25hbCAoYW5kIG5vdCB2ZXJ5IGZhc3QpIHdheSBvZiBkZXRlY3RpbmcgcmVmZXJlbmNlcyB3aXRoaW4gYXJyYXlzOgoKPD9waHAKCglmdW5jdGlvbiBpc19hcnJheV9yZWZlcmVuY2UgKCRhcnIsICRrZXkpIHsKCQkkaXNSZWYgPSBmYWxzZTsKCQlvYl9zdGFydCgpOwoJCXZhcl9kdW1wKCRhcnIpOwoJCWlmIChzdHJwb3MocHJlZ19yZXBsYWNlKCIvWyBcblxyXSovaSIsICIiLCBwcmVnX3JlcGxhY2UoIi8oICl7NCx9LiooXG5ccikqL2kiLCAiIiwgb2JfZ2V0X2NvbnRlbnRzKCkpKSwgIlsiIC4gJGtleSAuICJdPT4mIikgIT09IGZhbHNlKQoJCQkkaXNSZWYgPSB0cnVlOwoJCW9iX2VuZF9jbGVhbigpOwoJCXJldHVybiAkaXNSZWY7Cgl9Cgo/Pg==|5|5 103660|language.references.spot|42|1303818944|Abimael Rodrguez Coln|VGhpcyBpcyBvbmUgd2F5IHRvIGNoZWNrIGlmIGlzIGEgcmVmZXJlbmNlCjw/cGhwCiRhID0gMTsKJGIgPSYgJGE7CiRjID0gMjsKJGQgPSAzOwokZSA9IGFycmF5KCRhKTsKZnVuY3Rpb24gaXNfcmVmZXJlbmNlKCR2YXIpewoJJHZhbCA9ICRHTE9CQUxTWyR2YXJdOwoJJHRtcEFycmF5ID0gYXJyYXkoKTsKCS8qKgoJICogQWRkIGtleXMvdmFsdWVzIHdpdGhvdXQgcmVmZXJlbmNlCgkgKi8KCWZvcmVhY2goJEdMT0JBTFMgYXMgJGsgPT4gJHYpewoJCWlmKCFpc19hcnJheSgkdikpewoJCQkkdG1wQXJyYXlbJGtdID0gJHY7CgkJfQoJfQoKCS8qKgoJICogQ2hhbmdlIHZhbHVlIG9mIHJlc3QgdmFyaWFibGVzCgkgKi8KCWZvcmVhY2goJEdMT0JBTFMgYXMgJGsgPT4gJHYpewoJCWlmKCRrICE9ICdHTE9CQUxTJwoJCQkmJiAkayAhPSAnX1BPU1QnCgkJCSYmICRrICE9ICdfR0VUJwoJCQkmJiAkayAhPSAnX0NPT0tJRScKCQkJJiYgJGsgIT0gJ19GSUxFUycKCQkJJiYgJGsgIT0gJHZhcgoJCQkmJiAhaXNfYXJyYXkoJHYpCgkJKXsKCQkJdXNsZWVwKDEpOwoJCQkkR0xPQkFMU1ska10gPSBtZDUobWljcm90aW1lKCkpOwoJCX0KCX0KCgkkYm9vbCA9ICR2YWwgIT0gJEdMT0JBTFNbJHZhcl07CgoJLyoqCgkgKiBSZXN0b3JlIGRlZmF1bHRzIHZhbHVlcwoJICovCglmb3JlYWNoKCR0bXBBcnJheSBhcyAkayA9PiAkdil7CgkJJEdMT0JBTFNbJGtdID0gJHY7Cgl9CgoJcmV0dXJuICRib29sOwp9CnZhcl9kdW1wKGlzX3JlZmVyZW5jZSgnYScpKTsKdmFyX2R1bXAoaXNfcmVmZXJlbmNlKCdiJykpOwp2YXJfZHVtcChpc19yZWZlcmVuY2UoJ2MnKSk7CnZhcl9kdW1wKGlzX3JlZmVyZW5jZSgnZCcpKTsKPz4KClRoaXMgd29uJ3QgY2hlY2sgaWYgcmVmZXJlbmNlIGlzIGluc2lkZSBhIGFycmF5Lg==|5|7 72203|language.references.spot|73|1168169865|BenBE at omorphia dot de|SGksCgpJZiB5b3Ugd2FudCB0byBjaGVjayBpZiB0d28gdmFyaWFibGVzIGFyZSByZWZlcmVuY2luZyBlYWNoIG90aGVyIChpLmUuIHBvaW50IHRvIHRoZSBzYW1lIG1lbW9yeSkgeW91IGNhbiB1c2UgYSBmdW5jdGlvbiBsaWtlIHRoaXM6Cgo8P3BocAoKZnVuY3Rpb24gc2FtZV90eXBlKCYkdmFyMSwgJiR2YXIyKXsKCXJldHVybiBnZXR0eXBlKCR2YXIxKSA9PT0gZ2V0dHlwZSgkdmFyMik7Cn0KCmZ1bmN0aW9uIGlzX3JlZigmJHZhcjEsICYkdmFyMikgewoJLy9JZiBhIHJlZmVyZW5jZSBleGlzdHMsIHRoZSB0eXBlIElTIHRoZSBzYW1lCglpZighc2FtZV90eXBlKCR2YXIxLCAkdmFyMikpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJJHNhbWUgPSBmYWxzZTsKCgkvL1dlIG5vdyBvbmx5IG5lZWQgdG8gYXNrIGZvciB2YXIxIHRvIGJlIGFuIGFycmF5IDstKQoJaWYoaXNfYXJyYXkoJHZhcjEpKSB7CgkJLy9Mb29rIGZvciBhbiB1bnVzZWQgaW5kZXggaW4gJHZhcjEKCQlkbyB7CgkJCSRrZXkgPSB1bmlxaWQoImlzX3JlZl8iLCB0cnVlKTsKCQl9IHdoaWxlKGFycmF5X2tleV9leGlzdHMoJGtleSwgJHZhcjEpKTsKCgkJLy9UaGUgdHdvIHZhcmlhYmxlcyBkaWZmZXIgaW4gY29udGVudCAuLi4gVGhleSBjYW4ndCBiZSB0aGUgc2FtZQoJCWlmKGFycmF5X2tleV9leGlzdHMoJGtleSwgJHZhcjIpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCS8vVGhlIGFycmF5cyBwb2ludCB0byB0aGUgc2FtZSBkYXRhIGlmIGNoYW5nZXMgYXJlIHJlZmxlY3RlZCBpbiAkdmFyMgoJCSRkYXRhID0gdW5pcWlkKCJpc19yZWZfZGF0YV8iLCB0cnVlKTsKCQkkdmFyMVska2V5XSA9JiAkZGF0YTsKCQkvL1RoZXJlIHNlZW1zIHRvIGJlIGEgbW9kaWZpY2F0aW9uIC4uLgoJCWlmKGFycmF5X2tleV9leGlzdHMoJGtleSwgJHZhcjIpKSB7CgkJCWlmKCR2YXIyWyRrZXldID09PSAkZGF0YSkgewoJCQkJJHNhbWUgPSB0cnVlOwoJCQl9CgkJfQoKCQkvL1VuZG8gb3VyIGNoYW5nZXMgLi4uCgkJdW5zZXQoJHZhcjFbJGtleV0pOwoJfSBlbHNlaWYoaXNfb2JqZWN0KCR2YXIxKSkgewoJCS8vVGhlIHNhbWUgb2JqZWN0cyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBlcXVhbCBjbGFzcyBuYW1lcyA7LSkKCQlpZihnZXRfY2xhc3MoJHZhcjEpICE9PSBnZXRfY2xhc3MoJHZhcjIpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCSRvYmoxID0gYXJyYXlfa2V5cyhnZXRfb2JqZWN0X3ZhcnMoJHZhcjEpKTsKCQkkb2JqMiA9IGFycmF5X2tleXMoZ2V0X29iamVjdF92YXJzKCR2YXIyKSk7CgoJCS8vTG9vayBmb3IgYW4gdW51c2VkIGluZGV4IGluICR2YXIxCgkJZG8gewoJCQkka2V5ID0gdW5pcWlkKCJpc19yZWZfIiwgdHJ1ZSk7CgkJfSB3aGlsZShpbl9hcnJheSgka2V5LCAkb2JqMSkpOwoKCQkvL1RoZSB0d28gdmFyaWFibGVzIGRpZmZlciBpbiBjb250ZW50IC4uLiBUaGV5IGNhbid0IGJlIHRoZSBzYW1lCgkJaWYoaW5fYXJyYXkoJGtleSwgJG9iajIpKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCS8vVGhlIGFycmF5cyBwb2ludCB0byB0aGUgc2FtZSBkYXRhIGlmIGNoYW5nZXMgYXJlIHJlZmxlY3RlZCBpbiAkdmFyMgoJCSRkYXRhID0gdW5pcWlkKCJpc19yZWZfZGF0YV8iLCB0cnVlKTsKCQkkdmFyMS0+JGtleSA9JiAkZGF0YTsKCQkvL1RoZXJlIHNlZW1zIHRvIGJlIGEgbW9kaWZpY2F0aW9uIC4uLgoJCWlmKGlzc2V0KCR2YXIyLT4ka2V5KSkgewoJCQlpZigkdmFyMlska2V5XSA9PT0gJGRhdGEpIHsKCQkJCSRzYW1lID0gdHJ1ZTsKCQkJfQoJCX0KCgkJLy9VbmRvIG91ciBjaGFuZ2VzIC4uLgoJCXVuc2V0KCR2YXIxLT4ka2V5KTsKCX0gZWxzZWlmIChpc19yZXNvdXJjZSgkdmFyMSkpIHsKCQlpZihnZXRfcmVzb3VyY2VfdHlwZSgkdmFyMSkgIT09IGdldF9yZXNvdXJjZV90eXBlKCR2YXIyKSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlyZXR1cm4gKChzdHJpbmcpICR2YXIxKSA9PT0gKChzdHJpbmcpICR2YXIyKTsKCX0gZWxzZSB7CgkJLy9TaW1wbGUgdmFyaWFibGVzIC4uLgoJCWlmKCR2YXIxIT09JHZhcjIpIHsKCQkJLy9EYXRhIG1pc21hdGNoIC4uLiBUaGV5IGNhbid0IGJlIHRoZSBzYW1lIC4uLgoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQkvL1RvIGNoZWNrIGZvciBhIHJlZmVyZW5jZSBvZiBhIHZhcmlhYmxlIHdpdGggc2ltcGxlIHR5cGUKCQkvL3NpbXBseSBzdG9yZSBpdHMgb2xkIHZhbHVlIGFuZCBjaGVjayBhZ2FpbnN0IG1vZGlmaWNhdGlvbnMgb2YgdGhlIHNlY29uZCB2YXJpYWJsZSA7LSkKCgkJZG8gewoJCQkka2V5ID0gdW5pcWlkKCJpc19yZWZfIiwgdHJ1ZSk7CgkJfSB3aGlsZSgka2V5ID09PSAkdmFyMSk7CgoJCSR0bXAgPSAkdmFyMTsgLy9XRSBORUVEIEEgQ09QWSBIRVJFISEhCgkJJHZhcjEgPSAka2V5OyAvL1NldCB2YXIxIHRvIHRoZSB2YWx1ZSBvZiAka2V5IChjb3B5KQoJCSRzYW1lID0gJHZhcjEgPT09ICR2YXIyOyAvL0NoZWNrIGlmICR2YXIyIHdhcyBtb2RpZmllZCB0b28gLi4uCgkJJHZhcjEgPSAkdG1wOyAvL1VuZG8gb3VyIGNoYW5nZXMgLi4uCgl9CgoJcmV0dXJuICRzYW1lOwp9Cgo/PgoKQWx0aG91Z2ggdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBxdWl0ZSBjb21wbGV0ZSwgaXQgY2FuJ3QgaGFuZGxlIGZ1bmN0aW9uIHJlZmVyZW5jZXMgYW5kIHNvbWUgb3RoZXIgbWlub3Igc3R1ZmYgQVRNLgpUaGlzIGZ1bmN0aW9uIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGlmIHlvdSB3YW50IHRvIHNlcmlhbGl6ZSBhIHJlY3Vyc2l2ZSBhcnJheSBieSBoYW5kLgoKVGhlIHVzYWdlIGlzIHNvbWV0aGluZyBsaWtlOgo8P3BocAokYSA9IDU7CiRiID0gNTsKdmFyX2R1bXAoaXNfcmVmKCRhLCAkYikpOyAvL2ZhbHNlCgokYSA9IDU7CiRiID0gJGE7CnZhcl9kdW1wKGlzX3JlZigkYSwgJGIpKTsgLy9mYWxzZQoKJGEgPSA1OwokYiA9JiAkYTsKdmFyX2R1bXAoaXNfcmVmKCRhLCAkYikpOyAvL3RydWUKZWNobyAiLS0tXG4iOwoKJGEgPSBhcnJheSgpOwp2YXJfZHVtcChpc19yZWYoJGEsICRhKSk7IC8vdHJ1ZQoKJGFbXSA9JiAkYTsKdmFyX2R1bXAoaXNfcmVmKCRhLCAkYVswXSkpOyAvLyB0cnVlCmVjaG8gIi0tLVxuIjsKCiRiID0gYXJyYXkoYXJyYXkoKSk7CnZhcl9kdW1wKGlzX3JlZigkYiwgJGIpKTsgLy90cnVlCnZhcl9kdW1wKGlzX3JlZigkYiwgJGJbMF0pKTsgLy9mYWxzZQplY2hvICItLS1cbiI7CgokYiA9IGFycmF5KCk7CiRiW10gPSAkYjsKdmFyX2R1bXAoaXNfcmVmKCRiLCAkYikpOyAvL3RydWUKdmFyX2R1bXAoaXNfcmVmKCRiLCAkYlswXSkpOyAvL2ZhbHNlCnZhcl9kdW1wKGlzX3JlZigkYlswXSwgJGJbMF1bMF0pKTsgLy90cnVlKgplY2hvICItLS1cbiI7Cgp2YXJfZHVtcCgkYSk7CnZhcl9kdW1wKCRiKTsKCj8+CgoqIFBsZWFzZSBub3RlIHRoZSBpbnRlcm5hbCBiZWhhdmlvdXIgb2YgUEhQIHRoYXQgc2VlbXMgdG8gZG8gdGhlIHJlZmVyZW5jZSBhc3NpZ25tZW50IEJFRk9SRSBhY3R1YWxseSBjb3B5aW5nIHRoZSB2YXJpYWJsZSEhISBUaHVzIHlvdSBnZXQgYW4gYXJyYXkgY29udGFpbmluZyBhIChkaWZmZXJlbnQpIHJlY3Vyc2l2ZSBhcnJheSBmb3IgdGhlIGxhc3QgdGVzdGNhc2UsIGluc3RlYWQgb2YgYW4gYXJyYXkgY29udGFpbmluZyBhbiBlbXB0eSBhcnJheSBhcyB5b3UgY291bGQgZXhwZWN0LgoKQmVuQkUu|36|13 62405|language.references.spot|83|1141054614|ludvig dot ericson at gmail dot com|Rm9yIHRoZSBzYWtlIG9mIGNsYXJpdHk6CgokdGhpcyBpcyBhIFBTRVVETyBWQVJJQUJMRSAtIHRodXMgbm90IGEgcmVhbCB2YXJpYWJsZS4gWkUgdHJlYXRzIGlzIGluIG90aGVyIHdheXMgdGhlbiBub3JtYWwgdmFyaWFibGVzLCBhbmQgdGhhdCBtZWFucyB0aGF0IHNvbWUgYWR2YW5jZWQgdmFyaWFibGUtdGhpbmdzIHdvbid0IHdvcmsgb24gaXQgKGZvciBvYnZpb3VzIHJlYXNvbnMpOgoKPD9waHAKY2xhc3MgVGVzdCB7CiAgICB2YXIgJG1vbmtleXMgPSAwOwogICAgCiAgICBmdW5jdGlvbiBkb0Zvb2JhcigpIHsKICAgICAgICAkdmFyID0gInRoaXMiOwogICAgICAgICQkdmFyLT5tb25rZXlzKys7IC8vIFdpbGwgZmFpbCBvbiB0aGlzIGxpbmUuCiAgICB9Cn0KCiRvYmogPSBuZXcgVGVzdDsKJG9iai0+ZG9Gb29iYXIoKTsgLy8gV2lsbCBmYWlsIGluIHRoaXMgY2FsbC4KdmFyX2R1bXAoJG9iai0+bW9ua2V5cyk7IC8vIFdpbGwgcmV0dXJuIGludCgwKSBpZiBpdCBldmVuIHJlYWNoZXMgaGVyZS4KPz4=|10|2 61744|language.references.spot|71|1139562160|ksamvel at gmail dot com|T25lIG1heSBjaGVjayByZWZlcmVuY2UgdG8gYW55IG9iamVjdCBieSBzaW1wbGUgb3BlcmF0b3I9PSggb2JqZWN0KS4gRXhhbXBsZToNCg0KPD9waHANCiAgY2xhc3MgQSB7fQ0KDQogICRvQTEgPSBuZXcgQSgpOw0KDQogICRyb0EgPSAmICRvQTE7DQoNCiAgZWNobyAicm9BIGFuZCBvQTEgYXJlICIgLiAoICRyb0EgPT0gJG9BMSA/ICJzYW1lIiA6ICJub3Qgc2FtZSIpIC4gIjxicj4iOw0KDQogICRvQTIgPSBuZXcgQSgpOw0KICAkcm9BID0gJiAkcm9BMjsNCg0KICBlY2hvICJyb0EgYW5kIG9BMSBhcmUgIiAuICggJHJvQSA9PSAkb0ExID8gInNhbWUiIDogIm5vdCBzYW1lIikgLiAiPGJyPiI7DQo/Pg0KDQpPdXRwdXQ6DQoNCnJvQSBhbmQgb0ExIGFyZSBzYW1lDQpyb0EgYW5kIG9BMSBhcmUgbm90IHNhbWUNCg0KQ3VycmVudCB0ZWNobmlxdWUgbWlnaHQgYmUgdXNlZnVsIGZvciBjYWNoaW5nIGluIG9iamVjdHMgd2hlbiBpbmhlcml0YW5jZSBpcyB1c2VkIGFuZCBvbmx5IGJhc2UgcGFydCBvZiBleHRlbmRlZCBjbGFzcyBzaG91bGQgYmUgY29waWVkIChhbmFsb2cgb2YgQysrOiBvQiA9IG9BKToNCg0KPD9waHANCmNsYXNzIEEgeyANCiAgLyogQW55IGZ1bmN0aW9uIGNoYW5naW5nIHN0YXRlIG9mIEEgc2hvdWxkIHNldCAkYkNoYW5nZWQgdG8gdHJ1ZSAqLw0KICBwdWJsaWMgZnVuY3Rpb24gaXNDaGFuZ2VkKCkgeyByZXR1cm4gJHRoaXMtPmJDaGFuZ2VkOyB9DQogIHByaXZhdGUgJGJDaGFuZ2VkOw0KICAvLy4uLg0KfQ0KDQpjbGFzcyBCIGV4dGVuZHMgQSB7DQovLyAuLi4NCiAgcHVibGljIGZ1bmN0aW9uIHNldCggJiRyb09iaikgew0KICAgIGlmKCAkcm9PYmogaW5zdGFuY2VvZiBBKSB7DQogICAgICBpZiggJHRoaXMtPnJvQU9iaiA9PSAkcm9PYmogJiYNCiAgICAgICAgICAkcm9PYmotPmlzQ2hhbmdlZCgpKSB7DQogICAgICAgIC8qIE9iamVjdCB3YXMgbm90IGNoYW5nZWQgZG8gbm90IG5lZWQgdG8gY29weSBBIHBhcnQgb2YgQiAqLw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgLyogQ29weSBBIHBhcnQgb2YgQiAqLw0KICAgICAgICAkdGhpcy0+cm9BT2JqID0gJiRyb09iajsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBwcml2YXRlICRyb0FPYmo7DQp9DQo/Pg==|5|2 59820|language.references.spot|50|1134722489|Sergio Santana: ssantana at tlaloc dot imta dot mx|KioqIFdBUk5JTkcgYWJvdXQgT0JKRUNUUyBUUklDS1kgUkVGRVJFTkNFUyAqKioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhlIHVzZSBvZiByZWZlcmVuY2VzIGluIHRoZSBjb250ZXh0IG9mIGNsYXNzZXMKYW5kIG9iamVjdHMsIHRob3VnaCB3ZWxsIGRlZmluZWQgaW4gdGhlIGRvY3VtZW50YXRpb24sCmlzIHNvbWVob3cgdHJpY2t5LCBzbyBvbmUgbXVzdCBiZSB2ZXJ5IGNhcmVmdWwgd2hlbgp1c2luZyBvYmplY3RzLiBMZXQncyBleGFtaW5lIHRoZSBmb2xsb3dpbmcgdHdvCmV4YW1wbGVzOgoKPD9waHAKICBjbGFzcyB5IHsKICAgIHB1YmxpYyAkZDsKICB9CiAgCiAgJEEgPSBuZXcgeTsKICAkQS0+ZCA9IDE4OwogIGVjaG8gIk9iamVjdCBcJEEgYmVmb3JlIG9wZXJhdGlvbjpcbiI7CiAgdmFyX2R1bXAoJEEpOwogIAogICRCID0gJEE7IC8vIFRoaXMgaXMgbm90IGFuIGV4cGxpY2l0ICg9JikgcmVmZXJlbmNlIGFzc2lnbm1lbnQsCiAgICAgICAgICAgLy8gaG93ZXZlciwgJEEgYW5kICRCIHJlZmVyIHRvIHRoZSBzYW1lIGluc3RhbmNlIAogICAgICAgICAgIC8vIHRob3VnaCB0aGV5IGFyZSBub3QgZXF1aXZhbGVudCBuYW1lcwogICRDID0mICRBOyAvLyBFeHBsaWNpdCByZWZlcmVuY2UgYXNzaWdubWVudCwgJEEgYW5kICRDIHJlZmVyIHRvIAogICAgICAgICAgICAvLyB0aGUgc2FtZSBpbnN0YW5jZSBhbmQgdGhleSBoYXZlIGJlY29tZSBlcXVpdmFsZW50CiAgICAgICAgICAgIC8vIG5hbWVzIG9mIHRoZSBzYW1lIGluc3RhbmNlCiAgCiAgJEItPmQgPSAxMjM0OwogCiAgZWNobyAiXG5PYmplY3QgXCRCIGFmdGVyIG9wZXJhdGlvbjpcbiI7CiAgdmFyX2R1bXAoJEIpOwogIGVjaG8gIlxuT2JqZWN0IFwkQSBpbXBsaWNpdGx5IG1vZGlmaWVkIGFmdGVyIG9wZXJhdGlvbjpcbiI7CiAgdmFyX2R1bXAoJEEpOyAKICBlY2hvICJcbk9iamVjdCBcJEMgaW1wbGljaXRseSBtb2RpZmllZCBhZnRlciBvcGVyYXRpb246XG4iOwogIHZhcl9kdW1wKCRDKTsgCiAgCiAgLy8gTGV0J3MgbWFrZSAkQSByZWZlciB0byBhbm90aGVyIGluc3RhbmNlCiAgJEEgPSBuZXcgeTsKICAkQS0+ZCA9IDI1MjAwOwogIGVjaG8gIlxuT2JqZWN0IFwkQiBhZnRlciBcJEEgbW9kaWZpY2F0aW9uOlxuIjsKICB2YXJfZHVtcCgkQik7IC8vICRCIGRvZXNuJ3QgY2hhbmdlCiAgZWNobyAiXG5PYmplY3QgXCRBIGFmdGVyIFwkQSBtb2RpZmljYXRpb246XG4iOwogIHZhcl9kdW1wKCRBKTsgCiAgZWNobyAiXG5PYmplY3QgXCRDIGltcGxpY2l0bHkgbW9kaWZpZWQgYWZ0ZXIgXCRBIG1vZGlmaWNhdGlvbjpcbiI7CiAgdmFyX2R1bXAoJEMpOyAvLyAkQyBjaGFuZ2VzIGFzICRBIGNoYW5nZXMKPz4KClRodXMsIG5vdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhc3NpZ25tZW50cyAkWCA9ICRZIGFuZCAkWCA9JiAkWS4KV2hlbiAkWSBpcyBhbnl0aGluZyBidXQgYW4gb2JqZWN0IGluc3RhbmNlLCB0aGUgZmlyc3QgYXNzaWdubWVudCBtZWFucwp0aGF0ICRYIHdpbGwgaG9sZCBhbiBpbmRlcGVuZGVudCBjb3B5IG9mICRZLCBhbmQgdGhlIHNlY29uZCwgbWVhbnMgdGhhdAokWCBhbmQgJFkgd2lsbCByZWZlciB0byB0aGUgc2FtZSB0aGluZywgc28gdGhleSBhcmUgdGlnaHQgdG9nZXRoZXIgdW50aWwgCmVpdGhlciAkWCBvciAkWSBpcyBmb3JjZWQgdG8gcmVmZXIgdG8gYW5vdGhlciB0aGluZy4gSG93ZXZlciwgd2hlbiAkWSAKaGFwcGVucyB0byBiZSBhbiBvYmplY3QgaW5zdGFuY2UsIHRoZSBzZW1hbnRpYyBvZiAkWCA9ICRZIGNoYW5nZXMgYW5kIApiZWNvbWVzIG9ubHkgc2xpZ2h0bHkgZGlmZmVyZW50IHRvIHRoYXQgb2YgJFggPSYgJFksIHNpbmNlIGluIGJvdGgKY2FzZXMgJFggYW5kICRZIGJlY29tZSByZWZlcmVuY2VzIHRvIHRoZSBzYW1lIG9iamVjdC4gU2VlIHdoYXQgdGhpcwpleGFtcGxlIG91dHB1dHM6CgpPYmplY3QgJEEgYmVmb3JlIG9wZXJhdGlvbjoKb2JqZWN0KHkpIzEgKDEpIHsKICBbImQiXT0+CiAgaW50KDE4KQp9CgpPYmplY3QgJEIgYWZ0ZXIgb3BlcmF0aW9uOgpvYmplY3QoeSkjMSAoMSkgewogIFsiZCJdPT4KICBpbnQoMTIzNCkKfQoKT2JqZWN0ICRBIGltcGxpY2l0bHkgbW9kaWZpZWQgYWZ0ZXIgb3BlcmF0aW9uOgpvYmplY3QoeSkjMSAoMSkgewogIFsiZCJdPT4KICBpbnQoMTIzNCkKfQoKT2JqZWN0ICRDIGltcGxpY2l0bHkgbW9kaWZpZWQgYWZ0ZXIgb3BlcmF0aW9uOgpvYmplY3QoeSkjMSAoMSkgewogIFsiZCJdPT4KICBpbnQoMTIzNCkKfQoKT2JqZWN0ICRCIGFmdGVyICRBIG1vZGlmaWNhdGlvbjoKb2JqZWN0KHkpIzEgKDEpIHsKICBbImQiXT0+CiAgaW50KDEyMzQpCn0KCk9iamVjdCAkQSBhZnRlciAkQSBtb2RpZmljYXRpb246Cm9iamVjdCh5KSMyICgxKSB7CiAgWyJkIl09PgogIGludCgyNTIwMCkKfQoKT2JqZWN0ICRDIGltcGxpY2l0bHkgbW9kaWZpZWQgYWZ0ZXIgJEEgbW9kaWZpY2F0aW9uOgpvYmplY3QoeSkjMiAoMSkgewogIFsiZCJdPT4KICBpbnQoMjUyMDApCn0KCkxldCdzIHJldmlldyBhIFNFQ09ORCBFWEFNUExFOgo8P3BocAogIGNsYXNzIHl5IHsKICAgIHB1YmxpYyAkZDsKICAgIGZ1bmN0aW9uIHl5KCR4KSB7CiAgICAgICR0aGlzLT5kID0gJHg7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBtb2RpZnkoJHYpCiAgewogICAgICR2LT5kID0gMTIyNTsKICB9CgogICRBID0gbmV3IHl5KDMpOwogIHZhcl9kdW1wKCRBKTsgCiAgbW9kaWZ5KCRBKTsKICB2YXJfZHVtcCgkQSk7Cj8+CgpBbHRob3VnaCwgaW4gZ2VuZXJhbCwgYSBmb3JtYWwgYXJndW1lbnQgZGVjbGFyZWQgCmFzICR2IGluIHRoZSBmdW5jdGlvbiAnbW9kaWZ5JyBzaG93biBhYm92ZSwgaW1wbGllcwp0aGF0IHRoZSBhY3R1YWwgYXJndW1lbnQgJEEsIHBhc3NlZCB3aGVuIGNhbGxpbmcgCnRoZSBmdW5jdGlvbiwgaXMgbm90IG1vZGlmaWVkLCB0aGlzIGlzIG5vdCB0aGUgCmNhc2Ugd2hlbiAkQSBpcyBhbiBvYmplY3QgaW5zdGFuY2UuIFNlZSB3aGF0IHRoZQpleGFtcGxlIGNvZGUgb3V0cHV0cyB3aGVuIGV4ZWN1dGVkOgoKb2JqZWN0KHl5KSMzICgxKSB7CiAgWyJkIl09PgogIGludCgzKQp9Cm9iamVjdCh5eSkjMyAoMSkgewogIFsiZCJdPT4KICBpbnQoMTIyNSkKfQ==|4|4 55689|language.references.spot|60|1123666228|Sergio Santana: ssantana at tlaloc dot imta dot mx|U29tZXRpbWVzIGFuIG9iamVjdCdzIG1ldGhvZCByZXR1cm5pbmcgYSByZWZlcmVuY2UgdG8gaXRzZWxmIGlzIHJlcXVpcmVkLiBIZXJlIGlzIGEgd2F5IHRvIGNvZGUgaXQ6Cgo8P3BocApjbGFzcyBNeUNsYXNzIHsKICBwdWJsaWMgJGRhdHVtOwogIHB1YmxpYyAkb3RoZXI7CiAgCiAgZnVuY3Rpb24gJk15UmVmKCRkKSB7IC8vIHRoZSBtZXRob2QKICAgICR0aGlzLT5kYXR1bSA9ICRkOwogICAgcmV0dXJuICR0aGlzOyAvLyByZXR1cm5zIHRoZSByZWZlcmVuY2UKICB9Cn0KCiRhID0gbmV3IE15Q2xhc3M7CiRiID0gJGEtPk15UmVmKDI1KTsgLy8gY3JlYXRlcyB0aGUgcmVmZXJlbmNlCgplY2hvICJUaGlzIGlzIG9iamVjdCBcJGE6IFxuIjsKcHJpbnRfcigkYSk7CmVjaG8gIlRoaXMgaXMgb2JqZWN0IFwkYjogXG4iOwpwcmludF9yKCRiKTsKCiRiLT5vdGhlciA9IDUwOwoKZWNobyAiVGhpcyBpcyBvYmplY3QgXCRhLCBtb2RpZmllZCIgLgogICAgICIgaW5kaXJlY3RseSBieSBtb2RpZnlpbmcgcmVmIFwkYjogXG4iOwpwcmludF9yKCRhKTsKPz4KClRoaXMgY29kZSBvdXRwdXRzOgpUaGlzIGlzIG9iamVjdCAkYToKTXlDbGFzcyBPYmplY3QKKAogICAgW2RhdHVtXSA9PiAyNQogICAgW290aGVyXSA9PgopClRoaXMgaXMgb2JqZWN0ICRiOgpNeUNsYXNzIE9iamVjdAooCiAgICBbZGF0dW1dID0+IDI1CiAgICBbb3RoZXJdID0+CikKVGhpcyBpcyBvYmplY3QgJGEsIG1vZGlmaWVkIGluZGlyZWN0bHkgYnkgbW9kaWZ5aW5nIHJlZiAkYjoKTXlDbGFzcyBPYmplY3QKKAogICAgW2RhdHVtXSA9PiAyNQogICAgW290aGVyXSA9PiA1MAop|6|4