LyoKICogSFRNTCBIZWxwIHJlc291cmNlcwogKiBSdXNzaWEgTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwOCBWaXRhbGl5IE1hcmdvbGVuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUlVTU0lBTiwgU1VCTEFOR19ERUZBVUxUCgpTVFJJTkdUQUJMRQpCRUdJTgogICAgSURTX0NPTlRFTlRTICAgICAiJtHu5OXw5uDt6OUiCiAgICBJRFNfSU5ERVggICAgICAgICImzuPr4OLr5e3o5SIKICAgIElEU19TRUFSQ0ggICAgICAgIibP7ujx6iIKICAgIElEU19GQVZPUklURVMgICAgIibI5+Hw4O3t7uUiCkVORAoKU1RSSU5HVEFCTEUKQkVHSU4KICAgIElEVEJfRVhQQU5EICAgICAgIs/u6uDn4PL8IgogICAgSURUQl9DT05UUkFDVCAgICAi0e/w//Lg8vwiCiAgICBJRFRCX1NUT1AgICAgICAgICLO8fLg7e7i6PL8IgogICAgSURUQl9SRUZSRVNIICAgICAizuHt7uLo8vwiCiAgICBJRFRCX0JBQ0sgICAgICAgICLN4Ofg5CIKICAgIElEVEJfSE9NRSAgICAgICAgIsIg7eD34OvuIgogICAgSURUQl9TWU5DICAgICAgICAi0ejt9fDu7ejn6PDu4uDy/CIKICAgIElEVEJfUFJJTlQgICAgICAgIs/l9+Dy/CIKICAgIElEVEJfT1BUSU9OUyAgICAgIs3g8fLw7unq6CIKICAgIElEVEJfRk9SV0FSRCAgICAgIsLv5fC45CIKICAgIElEVEJfTk9URVMgICAgICAgIsfg7+jx6ugiCiAgICBJRFRCX0JST1dTRV9GV0QgICLP8O7x7O7y8CDi7+XwuOQiCiAgICBJRFRCX0JST1dTRV9CQUNLICLP8O7x7O7y8CDt4Ofg5CIKICAgIElEVEJfQ09OVEVOVFMgICAgItHu5OXw5uDt6OUiCiAgICBJRFRCX0lOREVYICAgICAgICLO4+vg4uvl7ejlIgogICAgSURUQl9TRUFSQ0ggICAgICAiz+7o8eoiCiAgICBJRFRCX0hJU1RPUlkgICAgICLI8fLu8Oj/IgogICAgSURUQl9GQVZPUklURVMgICAiyOfh8ODt7e7lIgogICAgSURUQl9KVU1QMSAgICAgICAiz+Xw5fXu5CAxIgogICAgSURUQl9KVU1QMiAgICAgICAiz+Xw5fXu5CAyIgogICAgSURUQl9DVVNUT01JWkUgICAiz+Xw8e7t4Ovo5+7i4PL8IgogICAgSURUQl9aT09NICAgICAgICAizODx+PLg4SIKICAgIElEVEJfVE9DX05FWFQgICAgItHr5eTz/vng/yDj6+Di4CIKICAgIElEVEJfVE9DX1BSRVYgICAgIs/w5eT75PP54P8g4+vg4uAiCkVORAo=