T3V0bG9vayBFeHByZXNzIFBhc3N3b3JkIFJlY292ZXJ5IGlzIGEgcGFzc3dvcmQgcmVjb3Zlcnkgc29sdXRpb24uIE91dGxvb2sgUGFzc3dvcmQgUmVjb3ZlcnkgU29mdHdhcmUgc3BlY2lhbGx5IGRlc2lnbmVkIGZvciB0aGUgcmVjb3Zlcnkgb2YgT3V0bG9vayBFeHByZXNzIEVtYWlsIHBhc3N3b3JkcyBhbmQgY2FuIHVzZSBpdC