rjson/0000755000176200001440000000000014166453531011415 5ustar liggesusersrjson/NAMESPACE0000644000176200001440000000004713646044300012625 0ustar liggesusersexport(toJSON, newJSONParser, fromJSON)rjson/man/0000755000176200001440000000000013646044300012160 5ustar liggesusersrjson/man/newJSONParser.Rd0000644000176200001440000000245113646044300015111 0ustar liggesusers\name{newJSONParser} \alias{newJSONParser} \title{Convert buffered JSON objects To R } \description{ Convert a collection of JSON objects into R objects. } \usage{newJSONParser(method = "R")} \arguments{ \item{method}{use the \code{C} implementation, or the slower original \code{R} implementation} } \value{A list of functions used for parsing objects} \seealso{ \code{\link{toJSON}} } \examples{ sample_json <- ' { "breakfast" : [ "milk", "fruit loops", "juice" ], "lunch" : [ "left over sushi" ] } ' parser <- newJSONParser() parser$addData( sample_json ) food <- parser$getObject() print( food ) #This is equivalent to using FromJSON( sample_json ) #However, sample_json can be split into several parts: ### EXAMPLE 2: part_1 <- '{ "breakfast" : [ "milk", "fruit loops", "juice" ], ' part_2 <- '"lunch" : [ "left over sushi" ]' # close off the first object, and create a 2nd JSON object, which is simply an # array part_3 <- '} [1,2,3,4,5]' parser <- newJSONParser() parser$addData( part_1 ) parser$getObject() #returns NULL - since part_1 isn't complete parser$addData( part_2 ) parser$getObject() #returns NULL - since part_2 still isn't complete parser$addData( part_3 ) parser$getObject() #returns the first food object parser$getObject() #returns the second array } \keyword{interface} rjson/man/toJSON.Rd0000644000176200001440000000231313646044300013562 0ustar liggesusers\name{toJSON} \alias{toJSON} \title{Convert R To JSON} \description{ Convert an R object into a corresponding JSON object. ***Lists with unnamed components are not currently supported*** } \usage{toJSON( x, indent=0, method="C" )} \arguments{ \item{x}{a vector or list to convert into a JSON object} \item{indent}{an integer specifying how much indentation to use when formatting the JSON object; if 0, no pretty-formatting is used} \item{method}{use the \code{C} implementation, or the older slower (and one day to be depricated) \code{R} implementation} } \value{a string containing the JSON object} \seealso{ \code{\link{fromJSON}} } \examples{ x <- list( alpha = 1:5, beta = "Bravo", gamma = list(a=1:3, b=NULL), delta = c(TRUE, FALSE) ) json <- toJSON( x ) fromJSON( json ) #named vectors are treated as JSON objects (lists) toJSON(islands[1:4]) #data.frames must be converted into a list before converting into JSON plot(cars, pch=2) json_cars <- toJSON(as.list(cars)) points( data.frame( fromJSON( json_cars ) ), col="red", pch=3 ) #special R types are encoded as strings testString <- c(1,2,3,4,NA,NaN,Inf,8,9); toJSON(testString); } %TODO find better keyword \keyword{interface} rjson/man/fromJSON.Rd0000644000176200001440000000272513646044300014112 0ustar liggesusers\name{fromJSON} \alias{fromJSON} \title{Convert JSON To R} \description{ Convert a JSON object into an R object. } \usage{fromJSON( json_str, file, method = "C", unexpected.escape = "error", simplify = TRUE )} \arguments{ \item{json_str}{a JSON object to convert} \item{file}{the name of a file to read the json_str from; this can also be a URL. Only one of json_str or file must be supplied.} \item{method}{use the \code{C} implementation, or the older slower (and one day to be depricated) \code{R} implementation} \item{unexpected.escape}{changed handling of unexpected escaped characters. Handling value should be one of "error", "skip", or "keep"; on unexpected characters issue an \code{error}, \code{skip} the character, or \code{keep} the character} \item{simplify}{If TRUE, attempt to convert json-encoded lists into vectors where appropriate. If FALSE, all json-encoded lists will be wrapped in a list even if they are all of the same data type. } } \value{R object that corresponds to the JSON object} \seealso{ \code{\link{toJSON}} } \examples{ fromJSON('[1,2,3]', simplify=TRUE) # returns c(1,2,3) fromJSON('[1,2,3]', simplify=FALSE) # returns list(1,2,3) #As a result, this will output "1" toJSON(fromJSON('[1]', simplify=TRUE)) #Compared with this which will output "[1]" as expected toJSON(fromJSON('[1]', simplify=FALSE)) #R vs C execution time x <- toJSON( iris ) system.time( y <- fromJSON(x) ) system.time( y2 <- fromJSON(x,method = "R") ) } \keyword{interface} rjson/man/rjson.Rd0000644000176200001440000000054513646044300013606 0ustar liggesusers\name{rjson} \docType{package} \alias{rjson} \alias{rjson-package} \title{JSON for R} \description{ JSON (JavaScript Object Notation) is a lightweight data-interchange format. This package converts JSON objects into R objects and vice-versa. See json.org for an overview of JSON. Unicode is unfortunately not supported at the moment. } \keyword{package} rjson/DESCRIPTION0000644000176200001440000000064614166453531013131 0ustar liggesusersPackage: rjson Version: 0.2.21 Date: 2022-01-06 Title: JSON for R Author: Alex Couture-Beil Maintainer: Alex Couture-Beil Depends: R (>= 4.0.0) Description: Converts R object into JSON objects and vice-versa. URL: https://github.com/alexcb/rjson License: GPL-2 Repository: CRAN Date/Publication: 2022-01-09 03:32:41 UTC Packaged: 2022-01-08 19:22:39 UTC; root NeedsCompilation: yes rjson/build/0000755000176200001440000000000014166362177012521 5ustar liggesusersrjson/build/vignette.rds0000644000176200001440000000032414166362177015057 0ustar liggesusersb```b`adb`b2 1# '*ϋ/*H/N-*K- +GS"Q_DȜ44% q `aBgKM-FZ]?4-ީE0=(jؠjX2sRad9.nP&c0Gq?gQ~ 6@btr$$ b rjson/src/0000755000176200001440000000000014166362177012211 5ustar liggesusersrjson/src/funcs.h0000644000176200001440000000016413646044300013464 0ustar liggesusersSEXP fromJSON( SEXP str_in, SEXP unexpected_escape_behavior, SEXP simplify ); SEXP toJSON( SEXP obj, SEXP indent ); rjson/src/dump.cpp0000644000176200001440000001440213646044300013646 0ustar liggesusers#include #include #include #include //must include these after STL files due to length macro in Rinternals being seen by a STL on OSX. #include #include extern "C" { #include "funcs.h" } std::string escapeString( const char *s ) { std::ostringstream oss; oss << '"'; while( *s ) { switch( *s ) { case '"': oss << "\\\""; break; case '\\': oss << "\\\\"; break; case '\n': oss << "\\n"; break; case '\r': oss << "\\r"; break; case '\t': oss << "\\t"; break; default: unsigned char ch = static_cast(*s); if (( ch <= 0x1F ) || (ch == 0x7F)) { unsigned short val = ch; oss << "\\u" << std::setfill('0') << std::setw(4) << std::hex << val << std::dec; } else if( ch < 0x80 ) { // 0xxxxxxx oss << *s; } else if( (ch & 0xE0) == 0xC0 && s[1] ) { // 110xxxxx 10xxxxxx unsigned short val = (s[1] & 0x3F) + ((s[0] & 0x1F) << 6); oss << "\\u" << std::setfill('0') << std::setw(4) << std::hex << val << std::dec; s += 1; } else if( (ch & 0xF0) == 0xE0 && s[1] && s[2] ) { // 1110xxxx 10xxxxxx 10xxxxxx unsigned short val = (s[2] & 0x3F) + ((s[1] & 0x3F) << 6) + ((s[0] & 0x0F) << 12); oss << "\\u" << std::setfill('0') << std::setw(4) << std::hex << val << std::dec; s += 2; } else if( (ch & 0xF8) == 0xF0 && s[1] && s[2] && s[3] ) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx unsigned long val = (s[3] & 0x3F) + ((s[2] & 0x3F) << 6) + ((s[1] & 0x3F) << 12) + ((s[0] & 0x07) << 18); // Per JSON spec, encode as UTF-16 https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF // Could probably do directly from UTF-8 for improved performance unsigned long U = val - 0x10000; unsigned short hi = (U >> 10) + 0xD800; unsigned short lo = (U & 0x3FF) + 0xDC00; oss << "\\u" << std::setfill('0') << std::setw(4) << std::hex << hi << std::dec; oss << "\\u" << std::setfill('0') << std::setw(4) << std::hex << lo << std::dec; s += 3; } else { error("unable to escape string. String is not utf8\n"); } } s++; } oss << '"'; return oss.str(); } #define NO_CONTAINER 0 #define ARRAY_CONTAINER 1 #define OBJECT_CONTAINER 2 std::string toJSON2( SEXP x, int indent, int indent_amount ) { if( x == R_NilValue ) return "null"; int i = 0; int n = length(x); SEXP names; PROTECT( names = GET_NAMES(x) ); //int container = NO_CONTAINER; std::string container_closer; std::ostringstream oss; if( names != NULL_USER_OBJECT ) { oss << "{"; container_closer = "}"; if( indent_amount > 0 ) { oss << "\n"; } indent += indent_amount; if( length(names) != n ) error("number of names does not match number of elements\n"); } else if( n != 1 || TYPEOF(x) == VECSXP ) { oss << "["; container_closer = "]"; indent += indent_amount; if( indent_amount > 0 ) { oss << "\n"; } } SEXP levels; PROTECT( levels = GET_LEVELS(x)); switch( TYPEOF(x) ) { case LGLSXP: for( i = 0; i < n; i++ ) { if( i > 0 ) { oss << ","; if( indent_amount > 0 ) { oss << "\n"; } } oss << std::setw(indent) << ""; if( names != NULL_USER_OBJECT ) oss << escapeString(CHAR(STRING_ELT(names, i))) << ":"; if( LOGICAL(x)[i] == NA_INTEGER ) oss << "\"NA\""; else if( ISNAN( LOGICAL(x)[i] ) ) oss << "\"NaN\""; else if( LOGICAL(x)[i] ) oss << "true"; else oss << "false"; } break; case INTSXP: for( i = 0; i < n; i++ ) { if( i > 0 ) { oss << ","; if( indent_amount > 0 ) { oss << "\n"; } } oss << std::setw(indent) << ""; if( names != NULL_USER_OBJECT ) oss << escapeString(CHAR(STRING_ELT(names, i))) << ":"; if( INTEGER(x)[i] == NA_INTEGER ) oss << "\"NA\""; else if( ISNAN( INTEGER(x)[i] ) ) oss << "\"NaN\""; else if( levels != NULL_USER_OBJECT ) oss << escapeString(CHAR(STRING_ELT(levels, INTEGER(x)[i] - 1 ))); else oss << INTEGER(x)[i]; } break; case REALSXP: for( i = 0; i < n; i++ ) { if( i > 0 ) { oss << ","; if( indent_amount > 0 ) { oss << "\n"; } } oss << std::setw(indent) << ""; if( names != NULL_USER_OBJECT ) { oss << escapeString(CHAR(STRING_ELT(names, i))) << ":"; } if( ISNA(REAL(x)[i]) ) { oss << "\"NA\""; } else if( ISNAN(REAL(x)[i]) ) { oss << "\"NaN\""; } else if( R_FINITE(REAL(x)[i]) ) { oss << std::setprecision( std::numeric_limits::digits10 ) << REAL(x)[i]; } else { oss << (REAL(x)[i] > 0 ? "\"Inf\"" : "\"-Inf\""); } } break; case CPLXSXP: { SEXP p, p_names; PROTECT( p = allocVector( REALSXP, 2 ) ); PROTECT( p_names = allocVector( STRSXP, 2 ) ); SET_STRING_ELT( p_names, 0, mkChar("real") ); REAL(p)[0] = COMPLEX(x)[i].r; SET_STRING_ELT( p_names, 1, mkChar("imaginary") ); REAL(p)[1] = COMPLEX(x)[i].i; setAttrib( p, R_NamesSymbol, p_names ); oss << toJSON2(p, indent, indent_amount); UNPROTECT(2); } break; case STRSXP: for( i = 0; i < n; i++ ) { if( i > 0 ) { oss << ","; if( indent_amount > 0 ) { oss << "\n"; } } if( names != NULL_USER_OBJECT ) oss << escapeString(CHAR(STRING_ELT(names, i))) << ":"; if( STRING_ELT(x,i) == NA_STRING ) oss << "\"NA\""; else oss << escapeString(CHAR(STRING_ELT(x,i))); } break; case VECSXP: for( i = 0; i < n; i++ ) { if( i > 0 ) { oss << ","; if( indent_amount > 0 ) { oss << "\n"; } } oss << std::setw(indent) << ""; if( names != NULL_USER_OBJECT ) oss << escapeString(CHAR(STRING_ELT(names, i))) << ":"; oss << toJSON2( VECTOR_ELT(x,i), indent, indent_amount ); } break; default: error("unable to convert R type %i to JSON\n", TYPEOF(x)); } UNPROTECT(2); if( !container_closer.empty() ) { indent -= indent_amount; if( indent_amount > 0 ) { oss << "\n"; } oss << std::setw(indent) << ""; oss << container_closer; } return oss.str(); } extern "C" { SEXP toJSON( SEXP obj, SEXP indent ) { int indent_amount = INTEGER(indent)[0]; std::string buf = toJSON2( obj, 0, indent_amount ); SEXP p; PROTECT(p=allocVector(STRSXP, 1)); SET_STRING_ELT(p, 0, mkCharCE( buf.c_str(), CE_UTF8 )); UNPROTECT( 1 ); return p; } } rjson/src/register.c0000644000176200001440000000103213646044300014160 0ustar liggesusers#include #include #include #include #include "funcs.h" static const R_CMethodDef cMethods[] = { {"fromJSON", (DL_FUNC)&fromJSON, 3}, {"toJSON", (DL_FUNC)&toJSON, 1}, {NULL, NULL, 0}}; void R_init_rjson( DllInfo* info ) { R_registerRoutines( info, cMethods, NULL, NULL, NULL ); // TODO this should be changed to FALSE to disable // as per note on https://www.r-project.org/nosvn/R.check/r-devel-linux-x86_64-debian-clang/rjson-00check.html R_useDynamicSymbols( info, TRUE ); } rjson/src/parser.c0000644000176200001440000005273313646044300013646 0ustar liggesusers#include #include #define DEFAULT_VECTOR_START_SIZE \ 10 /* allocate vectors this size to start with, then grow them as needed */ #define MAX_NUMBER_BUF 256 #define UNEXPECTED_ESCAPE_ERROR 1 /* issue an error and stop */ #define UNEXPECTED_ESCAPE_SKIP 2 /* skip the unexpected char and move to the next character */ #define UNEXPECTED_ESCAPE_KEEP 3 /* include the unexpected char as a regular char and continue */ #define MASKBITS 0x3F #define MASKBYTE 0x80 #define MASK2BYTES 0xC0 #define MASK3BYTES 0xE0 #define MASK4BYTES 0xF0 typedef struct ParseOptions { int unexpected_escape_behavior; int simplify_lists; } ParseOptions; SEXP parseValue( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseNull( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseTrue( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseFalse( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseString( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseNumber( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseArray( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP parseList( const char* s, const char** next_ch, const ParseOptions* parse_options ); SEXP mkError( const char* format, ... ); int getUnexpectedEscapeHandlingCode( const char* s ); #define TRYERROR_CLASS "try-error" SEXP mkError( const char* format, ... ) { SEXP p, classp; char buf[256]; va_list args; va_start( args, format ); vsnprintf( buf, 256, format, args ); va_end( args ); PROTECT( p = allocVector( STRSXP, 1 ) ); SET_STRING_ELT( p, 0, mkCharCE( buf, CE_UTF8 ) ); PROTECT( classp = allocVector( STRSXP, 1 ) ); SET_STRING_ELT( classp, 0, mkChar( TRYERROR_CLASS ) ); SET_CLASS( p, classp ); UNPROTECT( 2 ); return p; } #define INCOMPLETE_CLASS "incomplete" SEXP addClass( SEXP p, const char* class ) { SEXP class_p; PROTECT( class_p = GET_CLASS( p ) ); unsigned int size = GET_LENGTH( class_p ); PROTECT( SET_LENGTH( class_p, size + 1 ) ); SET_STRING_ELT( class_p, size, mkChar( class ) ); SET_CLASS( p, class_p ); UNPROTECT( 2 ); return p; } // mkErrorWithClass only exists to work around rcheck enforcing PROTECT/UNPROTECT calls around all functions // which prevents one from doing: // return addClass( mkError( "no data to parse\n" ), INCOMPLETE_CLASS ); // which instead would become: // SEXP err = PROTECT(mkError( "no data to parse\n" )); // SEXP err_classed = addClass(err , INCOMPLETE_CLASS ); // UNPROTECT(1); // return err_classed; // to make matters worse, it's not possiblt to pass a va_list from this func onwards to mkError. SEXP mkErrorWithClass( const char* class, const char* format, ... ) { SEXP p, classp; char buf[256]; va_list args; va_start( args, format ); vsnprintf( buf, 256, format, args ); va_end( args ); PROTECT( p = allocVector( STRSXP, 2 ) ); SET_STRING_ELT( p, 0, mkCharCE( buf, CE_UTF8 ) ); PROTECT( classp = allocVector( STRSXP, 1 ) ); SET_STRING_ELT( classp, 0, mkChar( TRYERROR_CLASS ) ); SET_STRING_ELT( classp, 1, mkChar( class ) ); SET_CLASS( p, classp ); UNPROTECT( 2 ); return p; } int hasClass( SEXP p, const char* class ) { unsigned int i; SEXP class_p; PROTECT( class_p = GET_CLASS( p ) ); unsigned int size = GET_LENGTH( class_p ); for( i = 0; i < size; i++ ) { const char* s = CHAR( STRING_ELT( class_p, i ) ); if( strcmp( s, class ) == 0 ) { UNPROTECT( 1 ); return TRUE; } } UNPROTECT( 1 ); return FALSE; } int UTF8EncodeUnicode( unsigned long input, char* s ) { /* 0xxxxxxx */ if( input < 0x80 ) { s[0] = input; return 1; } /* 110xxxxx 10xxxxxx */ else if( input < 0x800 ) { s[0] = ( MASK2BYTES | ( input >> 6 ) ); s[1] = ( MASKBYTE | ( input & MASKBITS ) ); return 2; } /* 1110xxxx 10xxxxxx 10xxxxxx */ else if( input < 0x10000 ) { s[0] = ( MASK3BYTES | ( input >> 12 ) ); s[1] = ( MASKBYTE | ( ( input >> 6 ) & MASKBITS ) ); s[2] = ( MASKBYTE | ( input & MASKBITS ) ); return 3; } /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ else { s[0] = ( MASK4BYTES | ( input >> 18 ) ); s[1] = ( MASKBYTE | ( ( input >> 12 ) & MASKBITS ) ); s[2] = ( MASKBYTE | ( ( input >> 6 ) & MASKBITS ) ); s[3] = ( MASKBYTE | ( input & MASKBITS ) ); return 4; } } int readSequence( const char* s, int i, unsigned short* unicode ) { for( int j = 1; j <= 4; j++ ) if( ( ( s[i + j] >= 'a' && s[i + j] <= 'f' ) || ( s[i + j] >= 'A' && s[i + j] <= 'F' ) || ( s[i + j] >= '0' && s[i + j] <= '9' ) ) == FALSE ) { return j - 1; } char unicode_buf[5]; /* to hold 4 digit hex (to prevent scanning a 5th digit accidentally */ strncpy( unicode_buf, s + i + 1, 5 ); unicode_buf[4] = '\0'; sscanf( unicode_buf, "%hx", unicode ); return 4; } /* Attempts to parse a javascript escaped UTF-16 sequence into a unicode codepoint from a buffer. If the sequence is invalid no unicode value will be set. The function will return the number of read bytes as an indicator of whether input was successfully parsed */ int parseUTF16Sequence( const char* s, int i, unsigned long* unicode ) { int read_bytes = 0; unsigned short high; read_bytes += readSequence( s, i, &high ); if( read_bytes != 4 ) return read_bytes; /* check if this is a UTF-16 surrogate pair */ if( ( high >= 0xD800 && high <= 0xDBFF ) && ( s[i + read_bytes + 1] == '\\' && s[i + read_bytes + 2] == 'u' ) ) { read_bytes += 2; i += read_bytes; /* parse the next UTF-16 sequence, we are now pointing at the next 'u' */ unsigned short low; read_bytes += readSequence( s, i, &low ); if( read_bytes != 10 ) return read_bytes; *unicode = ( (unsigned long)( high - 0xD800 ) ) * 0x400 + ( low - 0xDC00 ) + 0x10000; /* Decode the surrogate pair into a unicode codepoint */ } else *unicode = high; return read_bytes; } int getUnexpectedEscapeHandlingCode( const char* s ) { if( s != NULL ) { if( strcmp( s, "skip" ) == 0 ) { return UNEXPECTED_ESCAPE_SKIP; } else if( strcmp( s, "keep" ) == 0 ) { return UNEXPECTED_ESCAPE_KEEP; } } /* in all other cases, just use the standard original error */ return UNEXPECTED_ESCAPE_ERROR; } SEXP fromJSON( SEXP str_in, SEXP unexpected_escape_behavior, SEXP simplify ) { const char* s = CHAR( STRING_ELT( str_in, 0 ) ); const char* next_ch = s; SEXP p, next_i, list; ParseOptions parse_options; parse_options.unexpected_escape_behavior = getUnexpectedEscapeHandlingCode( CHAR( STRING_ELT( unexpected_escape_behavior, 0 ) ) ); parse_options.simplify_lists = LOGICAL( simplify )[0]; PROTECT( p = parseValue( s, &next_ch, &parse_options ) ); PROTECT( list = allocVector( VECSXP, 2 ) ); PROTECT( next_i = allocVector( INTSXP, 1 ) ); SET_VECTOR_ELT( list, 0, p ); INTEGER( next_i )[0] = next_ch - s; SET_VECTOR_ELT( list, 1, next_i ); UNPROTECT( 3 ); return list; } SEXP parseValue( const char* s, const char** next_ch, const ParseOptions* parse_options ) { /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '{' ) { return parseList( s, next_ch, parse_options ); } if( *s == '[' ) { return parseArray( s, next_ch, parse_options ); } if( *s == '\"' ) { return parseString( s, next_ch, parse_options ); } if( ( *s >= '0' && *s <= '9' ) || *s == '-' ) { return parseNumber( s, next_ch, parse_options ); } if( *s == 't' ) { return parseTrue( s, next_ch, parse_options ); } if( *s == 'f' ) { return parseFalse( s, next_ch, parse_options ); } if( *s == 'n' ) { return parseNull( s, next_ch, parse_options ); } if( *s == '\0' ) { return mkErrorWithClass( INCOMPLETE_CLASS, "no data to parse\n" ); } return mkError( "unexpected character '%c'\n", *s ); } SEXP parseNull( const char* s, const char** next_ch, const ParseOptions* parse_options ) { if( strncmp( s, "null", 4 ) == 0 ) { *next_ch = s + 4; return R_NilValue; } /* TODO should really look at subset of "null" (e.g. "nul", "nu" ), so that "not" fails before reaching 4 digits */ if( strlen( s ) < 4 ) { return mkErrorWithClass( INCOMPLETE_CLASS, "parseNull: expected to see 'null' - likely an unquoted string " "starting with 'n', or truncated null.\n" ); } return mkError( "parseNull: expected to see 'null' - likely an unquoted string starting with 'n'.\n" ); } SEXP parseTrue( const char* s, const char** next_ch, const ParseOptions* parse_options ) { SEXP p; if( strncmp( s, "true", 4 ) == 0 ) { *next_ch = s + 4; PROTECT( p = NEW_LOGICAL( 1 ) ); LOGICAL( p )[0] = TRUE; UNPROTECT( 1 ); return p; } if( strlen( s ) < 4 ) { return mkErrorWithClass( INCOMPLETE_CLASS, "parseTrue: expected to see 'true' - likely an unquoted string " "starting with 't', or truncated true.\n" ); } return mkError( "parseTrue: expected to see 'true' - likely an unquoted string starting with 't'.\n" ); } SEXP parseFalse( const char* s, const char** next_ch, const ParseOptions* parse_options ) { SEXP p; if( strncmp( s, "false", 5 ) == 0 ) { *next_ch = s + 5; PROTECT( p = NEW_LOGICAL( 1 ) ); LOGICAL( p )[0] = FALSE; UNPROTECT( 1 ); return p; } if( strlen( s ) < 5 ) { return mkErrorWithClass( INCOMPLETE_CLASS, "parseFalse: expected to see 'false' - likely an unquoted string " "starting with 'f', or truncated false.\n" ); } return mkError( "parseFalse: expected to see 'false' - likely an unquoted string starting with 'f'.\n" ); } SEXP parseString( const char* s, const char** next_ch, const ParseOptions* parse_options ) { SEXP p, error_p; /* assert( s[ 0 ] == '"' ); */ int i = 1; /* skip the start quote */ int buf_size = 256; char* buf = (char*)malloc( buf_size ); buf[0] = '\0'; int buf_i = 0; if( buf == NULL ) { error_p = mkError( "error allocating memory in parseString" ); goto error; } if( sizeof( char ) != 1 ) { error_p = mkError( "parseString sizeof(char) != 1" ); goto error; } int copy_start = i; int bytes_to_copy; while( 1 ) { while( s[i] != '\\' && s[i] != '"' && s[i] != '\0' ) i++; if( s[i] == '\0' ) { error_p = mkErrorWithClass( INCOMPLETE_CLASS, "unclosed string\n" ); goto error; } if( s[i] == '\\' ) { if( s[i + 1] == '\0' ) { error_p = mkErrorWithClass( INCOMPLETE_CLASS, "unclosed string\n" ); goto error; } /* TODO couldn't this be caught above (where s[ i ] == '\0') */ if( s[i + 2] == '\0' ) { error_p = mkErrorWithClass( INCOMPLETE_CLASS, "unclosed string\n" ); goto error; } /* grow memory */ if( buf_size - 1 <= i ) { buf_size = 2 * ( buf_size + i ); buf = realloc( buf, buf_size ); if( buf == NULL ) { error_p = mkError( "error allocating memory in parseString" ); goto error; } } /* save string chunk from copy_start to i-1 */ bytes_to_copy = i - copy_start; if( bytes_to_copy > 0 ) { memcpy( buf + buf_i, s + copy_start, bytes_to_copy ); buf_i += bytes_to_copy; } i++; /* save s[i] */ switch( s[i] ) { case '"': case '\\': case '/': buf[buf_i] = s[i]; break; case 'b': buf[buf_i] = '\b'; break; case 'f': buf[buf_i] = '\f'; break; case 'n': buf[buf_i] = '\n'; break; case 'r': buf[buf_i] = '\r'; break; case 't': buf[buf_i] = '\t'; break; case 'u': ; /* semi-colon required to prevent windows-compile warning related to var declaration inside case statement */ unsigned long unicode; int read_bytes = parseUTF16Sequence( s, i, &unicode ); if( read_bytes != 4 && read_bytes != 10 ) { /* In case of surrogate pairs read_bytes will be 10 */ error_p = mkError( "unexpected unicode escaped char '%c'; 4 hex digits should " "follow the \\u (found %i valid digits)", s[i + read_bytes + 1], read_bytes ); goto error; } i += read_bytes; /* skip the UTF16 sequence(s) - actually point to last digit, which is then incremented outside of switch */ buf_i += UTF8EncodeUnicode( unicode, buf + buf_i ) - 1; /* -1 due to buf_i++ out of loop */ break; default: if( parse_options->unexpected_escape_behavior == UNEXPECTED_ESCAPE_SKIP ) { /* skip the character (by decreasing the buffer index as it will be increased below. in actuality we dont want it to change). */ buf_i--; Rf_warning( "unexpected escaped character '\\%c' at pos %i. Skipping value.", s[i], i ); } else if( parse_options->unexpected_escape_behavior == UNEXPECTED_ESCAPE_KEEP ) { /* treat a "\y" as simply 'y' */ buf[buf_i] = s[i]; Rf_warning( "unexpected escaped character '\\%c' at pos %i. Keeping value.", s[i], i ); } else { /* case of UNEXPECTED_ESCAPE_ERROR, or any other bad enum values */ error_p = mkError( "unexpected escaped character '\\%c' at pos %i", s[i], i ); goto error; } break; } i++; /* move to next char */ copy_start = i; buf_i++; } else { /* must be a quote that caused us the exit the loop, first, save remaining string data */ if( buf_size - 1 <= i ) { /* grow memory */ buf_size = 2 * ( buf_size + i ); buf = realloc( buf, buf_size ); if( buf == NULL ) { error_p = mkError( "error allocating memory in parseString" ); goto error; } } bytes_to_copy = i - copy_start; if( bytes_to_copy > 0 ) { memcpy( buf + buf_i, s + copy_start, bytes_to_copy ); buf_i += bytes_to_copy; } buf[buf_i] = '\0'; break; /* exit the loop */ } } *next_ch = s + i + 1; PROTECT( p = allocVector( STRSXP, 1 ) ); SET_STRING_ELT( p, 0, mkCharCE( buf, CE_UTF8 ) ); free( buf ); UNPROTECT( 1 ); return p; error: if( buf ) { free( buf ); } return error_p; } void setArrayElement( SEXP array, int unsigned i, SEXP val ) { if( IS_LOGICAL( array ) ) LOGICAL( array )[i] = LOGICAL( val )[0]; else if( IS_INTEGER( array ) ) INTEGER( array )[i] = INTEGER( val )[0]; else if( IS_NUMERIC( array ) ) REAL( array )[i] = REAL( val )[0]; else if( IS_CHARACTER( array ) ) SET_STRING_ELT( array, i, STRING_ELT( val, 0 ) ); /* TODO fixme val must be a single char, not vector */ /* else if( IS_COMPLEX( array ) ) COMPLEX( array [ i ] = COMPLEX( val )[ 0 ]; */ else Rprintf( "unsupported SEXPTYPE: %i\n", TYPEOF( array ) ); } SEXP parseArray( const char* s, const char** next_ch, const ParseOptions* parse_options ) { PROTECT_INDEX array_index = -1; SEXP p = NULL, array = NULL; /* assert( *s == '[' ) */ s++; /* move past '[' */ int is_list = FALSE; SEXPTYPE p_type = -1; unsigned int array_i = 0; int trailing_comma = 0; PROTECT_WITH_INDEX( array = R_NilValue, &array_index ); while( 1 ) { /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '\0' ) { UNPROTECT( 1 ); /* array */ return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete array\n" ); } if( *s == ']' ) { if( trailing_comma ) { UNPROTECT( 1 ); /* array */ return mkErrorWithClass( INCOMPLETE_CLASS, "trailing comma found in array\n" ); } *next_ch = s + 1; UNPROTECT( 1 ); /* array */ return allocVector( VECSXP, 0 ); } trailing_comma = 0; PROTECT( p = parseValue( s, next_ch, parse_options ) ); s = *next_ch; /* check p for errors */ if( hasClass( p, TRYERROR_CLASS ) == TRUE ) { UNPROTECT( 2 ); /* p, array */ return p; } if( array == R_NilValue ) { if( !parse_options->simplify_lists ) { p_type = VECSXP; is_list = TRUE; } else if( GET_LENGTH( p ) != 1 ) { p_type = VECSXP; is_list = TRUE; } else if( TYPEOF( p ) == VECSXP ) { p_type = VECSXP; is_list = TRUE; } else { p_type = TYPEOF( p ); is_list = FALSE; } REPROTECT( array = allocVector( p_type, DEFAULT_VECTOR_START_SIZE ), array_index ); } /* check array type matches */ if( is_list == FALSE && ( TYPEOF( p ) != TYPEOF( array ) || GET_LENGTH( p ) != 1 ) ) { REPROTECT( array = coerceVector( array, VECSXP ), array_index ); is_list = TRUE; } /* checksize */ unsigned int array_size = GET_LENGTH( array ); if( array_i >= array_size ) { REPROTECT( SET_LENGTH( array, array_size * 2 ), array_index ); } /* save element */ if( is_list == TRUE ) SET_VECTOR_ELT( array, array_i, p ); else setArrayElement( array, array_i, p ); UNPROTECT( 1 ); /* p */ p = NULL; array_i++; /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '\0' ) { UNPROTECT( 1 ); /* array */ return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete array\n" ); } /* end of array */ if( *s == ']' ) { break; } /* more elements to come */ if( *s == ',' ) { s++; trailing_comma = 1; } else if( *s == '\0' ) { UNPROTECT( 1 ); /* array */ return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete array\n" ); } else { UNPROTECT( 1 ); /* array */ return mkError( "unexpected character: %c\n", *s ); } } /* trim to the correct size - no need to protect here */ SET_LENGTH( array, array_i ); *next_ch = s + 1; UNPROTECT( 1 ); /* array */ return array; } SEXP parseList( const char* s, const char** next_ch, const ParseOptions* parse_options ) { PROTECT_INDEX list_index, list_names_index; SEXP key = NULL, val = NULL, list, list_names; /* assert( *s == '{' ) */ s++; /* move past '{' */ unsigned int list_i = 0; PROTECT_WITH_INDEX( list = allocVector( VECSXP, DEFAULT_VECTOR_START_SIZE ), &list_index ); PROTECT_WITH_INDEX( list_names = allocVector( STRSXP, DEFAULT_VECTOR_START_SIZE ), &list_names_index ); while( 1 ) { /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '\0' ) { UNPROTECT( 2 ); return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete list\n" ); } if( *s == '}' && list_i == 0 ) { UNPROTECT( 2 ); *next_ch = s + 1; return allocVector( VECSXP, 0 ); } /* get key */ if( *s != '\"' ) { UNPROTECT( 2 ); return mkError( "unexpected character \"%c\"; expecting opening string quote (\") for key value\n", *s ); } PROTECT( key = parseString( s, next_ch, parse_options ) ); s = *next_ch; /* check key for errors */ if( hasClass( key, TRYERROR_CLASS ) == TRUE ) { UNPROTECT( 3 ); return key; } if( IS_CHARACTER( key ) == FALSE ) { UNPROTECT( 3 ); return mkError( "list keys must be strings\n" ); } /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s != ':' ) { UNPROTECT( 3 ); if( *s == '\0' ) return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete list - missing :\n" ); return mkError( "incomplete list - missing :\n" ); } s++; /* move past ':' */ /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '\0' ) { UNPROTECT( 3 ); return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete list\n" ); } /* get value */ PROTECT( val = parseValue( s, next_ch, parse_options ) ); s = *next_ch; /* check val for errors */ if( hasClass( val, TRYERROR_CLASS ) == TRUE ) { UNPROTECT( 4 ); return val; } /* checksize */ unsigned int list_size = GET_LENGTH( list ); if( list_i >= list_size ) { REPROTECT( SET_LENGTH( list, list_size * 2 ), list_index ); REPROTECT( SET_LENGTH( list_names, list_size * 2 ), list_names_index ); } /* save key and value */ SET_STRING_ELT( list_names, list_i, STRING_ELT( key, 0 ) ); SET_VECTOR_ELT( list, list_i, val ); UNPROTECT( 2 ); /* key, val */ key = NULL; val = NULL; list_i++; /* ignore whitespace */ while( *s == ' ' || *s == '\t' || *s == '\n' || *s == '\r' ) s++; if( *s == '\0' ) { UNPROTECT( 2 ); return mkErrorWithClass( INCOMPLETE_CLASS, "incomplete list\n" ); } /* end of list */ if( *s == '}' ) { break; } /* more elements to come */ if( *s == ',' ) { s++; } else { UNPROTECT( 2 ); return mkError( "unexpected character: %c\n", *s ); } } /* trim to the correct size */ REPROTECT( SET_LENGTH( list, list_i ), list_index ); REPROTECT( SET_LENGTH( list_names, list_i ), list_names_index ); /* set names */ setAttrib( list, R_NamesSymbol, list_names ); *next_ch = s + 1; UNPROTECT( 2 ); return list; } SEXP parseNumber( const char* s, const char** next_ch, const ParseOptions* parse_options ) { SEXP p; const char* start = s; char buf[MAX_NUMBER_BUF]; int digits_before_period = 0; int exponent_digits = 0; if( *s == '-' ) { s++; } if( *s == '\0' ) { return mkErrorWithClass( INCOMPLETE_CLASS, "parseNumer error\n" ); } if( *s == '0' ) { digits_before_period++; s++; if( ( *s >= '0' && *s <= '9' ) || *s == 'x' ) { return mkError( "hex or octal is not valid json\n" ); } } while( *s >= '0' && *s <= '9' ) { digits_before_period++; s++; } if( *s == '.' ) { if( digits_before_period == 0 ) { return mkError( "numbers must start with a digit\n" ); } s++; while( *s >= '0' && *s <= '9' ) { s++; } } /* exponential */ if( *s == 'e' || *s == 'E' ) { s++; if( *s == '+' || *s == '-' ) { s++; } while( *s >= '0' && *s <= '9' ) { s++; exponent_digits++; } if( exponent_digits == 0 ) { return mkError( "missing exponent\n" ); } } unsigned int len = s - start; if( len >= MAX_NUMBER_BUF ) { return mkError( "buffer issue parsing number: increase MAX_NUMBER_BUF (in parser.c) " "current value is %i\n", MAX_NUMBER_BUF ); } /* copy to buf, which is used with atof */ strncpy( buf, start, len ); buf[len] = '\0'; *next_ch = s; PROTECT( p = allocVector( REALSXP, 1 ) ); REAL( p )[0] = atof( buf ); UNPROTECT( 1 ); return p; } rjson/vignettes/0000755000176200001440000000000014166362177013432 5ustar liggesusersrjson/vignettes/json_rpc_server.Rnw0000644000176200001440000000262713646044300017317 0ustar liggesusers\documentclass[letter]{article} %\VignetteIndexEntry{JSON RPC server for R} %\VignettePackage{rjson} \begin{document} \title{JSON RPC server for R} \author{Alex Couture-Beil} \maketitle \section{Introduction} Remote proceedure calls (RPC) provide inter-process communication which allow programs to call other program's subroutines. JSON-RPC is a RPC protocol built on top of JSON. JSON-RPC provides a nice way to interface different languages. Sample code for creating an JSON-RPC server for R is supplied with the rjson library. For this example, a client wishing to execute R code will first execute a new instance of R, and will communicate over standard IO (stdin/stdout). After the client executes any number of calls, it will terminate the R session with an end of file (ctrl-D). \section{Sample Code} Sample code can be found in the {\it ..../library/rjson/rpc\_server} directory. The server is started with {\it ./start\_server} (unix), or with {\it start\_server.bat} (windows). An optional paramater specifies a user supplied source file to be loaded by the server, thus allowing the client to execute some user supplied functions. Note that this code posses serious security risks if the client accecpts input from anyone. (i.e. the client redirects IO from some tcp port to the R json-rpc interface). If this is the case, you'll likely want to avoid allowing anyone to pass anything to eval. \end{document} rjson/R/0000755000176200001440000000000013646044300011606 5ustar liggesusersrjson/R/zzz.R0000644000176200001440000000010313646044300012560 0ustar liggesusers.onLoad <- function(lib, pkg) { library.dynam("rjson", pkg, lib) }rjson/R/json.R0000644000176200001440000002553213646044300012711 0ustar liggesuserstoJSON <- function( x, indent = 0, method = "C" ) { if( method == "C" ) { return( .Call("toJSON", x, as.integer(indent), PACKAGE="rjson")[[ 1 ]] ) } else if( method != "R" ) { stop("bad method - only R or C" ) } #convert factors to characters if( is.factor( x ) == TRUE ) { tmp_names <- names( x ) x = as.character( x ) names( x ) <- tmp_names } if( !is.vector(x) && !is.null(x) && !is.list(x) ) { x <- as.list( x ) warning("JSON only supports vectors and lists - But I'll try anyways") } if( is.null(x) ) return( "null" ) #treat named vectors as lists if( is.null( names( x ) ) == FALSE ) { x <- as.list( x ) } #named lists only if( is.list(x) && !is.null(names(x)) ) { if( any(duplicated(names(x))) ) stop( "A JSON list must have unique names" ); str = "{" first_elem = TRUE for( n in names(x) ) { if( first_elem ) first_elem = FALSE else str = paste(str, ',', sep="") str = paste(str, deparse(n), ":", toJSON(x[[n]], "R"), sep="") } str = paste( str, "}", sep="" ) return( str ) } #treat lists without names as JSON array if( length(x) != 1 || is.list(x) ) { if( !is.null(names(x)) ) return( toJSON(as.list(x), "R") ) #vector with names - treat as JSON list str = "[" first_elem = TRUE for( val in x ) { if( first_elem ) first_elem = FALSE else str = paste(str, ',', sep="") str = paste(str, toJSON(val, "R"), sep="") } str = paste( str, "]", sep="" ) return( str ) } if( is.nan(x) ) return( "\"NaN\"" ) if( is.na(x) ) return( "\"NA\"" ) if( is.infinite(x) ) return( ifelse( x == Inf, "\"Inf\"", "\"-Inf\"" ) ) if( is.logical(x) ) return( ifelse(x, "true", "false") ) if( is.character(x) ) return( gsub("\\/", "\\\\/", deparse(x)) ) if( is.numeric(x) ) return( as.character(x) ) stop( "shouldnt make it here - unhandled type not caught" ) } #create an object, which can be used to parse JSON data spanning multiple buffers #it will be able to pull out multiple objects.. e.g: "[5][2,1]" is two different JSON objects - it can be called twice to get both items newJSONParser <- function( method = "R" ) { if( method == "R" ) { buffer <- c() return( list( "addData" = function( buf ) { chars = strsplit(buf, "")[[1]] for( ch in chars ) buffer[ length(buffer) + 1 ] <<- ch }, "getObject" = function() { tmp <- .parseValue( buffer, 1) if( is.null( tmp$incomplete ) == FALSE ) return( NULL ) if( tmp$size > length(buffer) ) buffer <<- c() else buffer <<- buffer[ tmp$size : length(buffer) ] return( tmp$val ) } ) ) } else if( method == "C" ) { buffer <- "" return( list( "addData" = function( buf ) { buffer <<- paste( buffer, buf, sep="" ) }, "getObject" = function() { tmp <- .Call("fromJSON", buffer, PACKAGE="rjson") if( any( class( tmp[[ 1 ]] ) == "incomplete" ) ) return( NULL ) size <- tmp[[ 2 ]] + 1 buffer <<- substring( buffer, size, nchar( buffer ) ) return( tmp[[ 1 ]] ) } ) ) } stop("bad method - only R or C" ) } fromJSON <- function( json_str, file, method = "C", unexpected.escape = "error", simplify = TRUE ) { if( missing( json_str ) ) { if( missing( file ) ) stop( "either json_str or file must be supplied to fromJSON") json_str <- paste(readLines( file, warn=FALSE ),collapse="") } else { if( missing( file ) == FALSE ) { stop( "only one of json_str or file must be supplied to fromJSON") } } if( !is.character(json_str) ) stop( "json_str must be a character string" ) if( length(json_str) != 1 ) stop( "json_str can only contain a single element" ) json_str <- trimws( json_str ) if( method == "R" ) return( .fromJSON_R( json_str ) ) if( method != "C" ) stop( "only R or C method allowed" ) tmp <- .Call("fromJSON", json_str, unexpected.escape, simplify, PACKAGE="rjson") size <- tmp[[ 2 ]] if( size != nchar( json_str, type = "bytes" ) ) { stop( sprintf("not all data was parsed (%d chars were parsed out of a total of %d chars)", size, nchar( json_str, type = "bytes" ) ) ) } x <- tmp[[ 1 ]] if( any( class(x) == "try-error" ) ) stop( x ) return( x ) } .fromJSON_R <- function( json_str ) { if( !is.character(json_str) ) stop( "JSON objects must be a character string" ) chars = strsplit(json_str, "")[[1]] tmp <- .parseValue( chars, 1) if( is.null( tmp$incomplete ) ) return( tmp$val ) else return( NULL ) } .parseValue <- function( chars, i ) { if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } ch = chars[i] if( ch == "{" ) { return( .parseObj( chars, i ) ) } if( ch == "[" ) { return( .parseArray( chars, i ) ) } if( ch == "\"" ) { return( .parseString( chars, i ) ) } if( any(grep("[0-9\\-]", ch)) ) { return( .parseNumber( chars, i ) ) } if( ch == "t" ) { return( .parseTrue( chars, i ) ) } if( ch == "f" ) { return( .parseFalse( chars, i ) ) } if( ch == "n" ) { return( .parseNull( chars, i ) ) } #stop("shouldnt reach end of parseValue") err <- paste( "unexpected data:", paste( chars[ i:length(chars)], collapse = "" ) ) stop( err ) } .parseObj <- function( chars, i ) { obj <- list() if( chars[i] != "{" ) stop("error - no openning tag") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) first_pass <- TRUE while( TRUE ) { #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } #look out for empty lists if( chars[i] == "}" && first_pass == TRUE ) { i = i + 1 break } first_pass <- FALSE #get key str = .parseString( chars, i ) if( is.null( str$incomplete ) == FALSE ) return( str ) key = str$val i = str$size if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } #verify seperater if( chars[i] != ":" ) stop("error - no seperator") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } #get value val = .parseValue( chars, i ) if( is.null( val$incomplete ) == FALSE ) return( val ) obj[key] <- list(val$val) i = val$size if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } if( chars[i] == "}" ) { i = i + 1 break } if( chars[i] != "," ) stop("error - no closing tag") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } return( list(val=obj, size=i) ) } .parseArray <- function( chars, i ) { useVect <- TRUE arr <- list() if( chars[i] != "[" ) stop("error - no openning tag") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) while( TRUE ) { #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } #look out for empty arrays if( chars[i] == "]" ) { i = i + 1 useVect <- FALSE #force an empty list instead of NULL (i.e. value = vector("list",0)) break } #get value val = .parseValue( chars, i ) if( is.null( val$incomplete ) == FALSE ) return( val ) arr[length(arr)+1] <- list(val$val) if( is.list(val$val) || length(val$val) > 1 || is.null(val$val) ) useVect <- FALSE i = val$size if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) #ignore whitespace while( chars[i] == " " || chars[i] == "\t" || chars[i] == "\n" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } if( chars[i] == "]" ) { i = i + 1 break } if( chars[i] != "," ) stop("error - no closing tag") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } if( useVect ) arr <- unlist(arr) return( list(val=arr, size=i) ) } .parseString <- function( chars, i ) { str_start = i if( chars[i] != "\"") stop("error") i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) while( TRUE ) { while( chars[i] != "\\" && chars[i] != "\"" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } if( chars[i] == "\\" ) { i = i + 2 #skip the next char if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } else break } str_end = i i = i + 1 return(list( val=eval(parse( text=paste(chars[str_start:str_end], collapse="") )), size=i )) } .parseNumber <- function( chars, i ) { str_start = i if( chars[i] == "-" ) i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) if( chars[i] == "0" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) if( any(grep("[1-9]", chars[i])) ) stop("JSON specs don't allow a number like \"012\"") } else if( any(grep("[1-9]", chars[i])) ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) while( any(grep("[0-9]", chars[i])) ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } } else { stop( "doesn't look like a valid JSON number" ) } if( chars[i] == "." ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) while( any(grep("[0-9]", chars[i])) ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } } if( chars[i] == "e" || chars[i] == "E" ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) if( chars[i] == "-" || chars[i] == "+" ) i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) while( any(grep("[0-9]", chars[i])) ) { i = i + 1 if( i > length( chars ) ) return( list( "incomplete" = TRUE ) ) } } str_end = i-1 return(list( val=eval(parse( text=paste(chars[str_start:str_end], collapse="") )), size=i )) } .parseTrue <- function( chars, i ) { if( paste(chars[i:(i+3)], collapse="") == "true" ) return( list(val=TRUE,size=i+4) ) stop("error parsing true value (maybe the word starts with t but isnt true)") } .parseFalse <- function( chars, i ) { if( paste(chars[i:(i+4)], collapse="") == "false" ) return( list(val=FALSE,size=i+5) ) stop("error parsing false value (maybe the word starts with f but isnt false)") } .parseNull <- function( chars, i ) { if( paste(chars[i:(i+3)], collapse="") == "null" ) return( list(val=NULL,size=i+4) ) stop("error parsing null value (maybe the word starts with n but isnt null)") } rjson/MD50000644000176200001440000000351214166453531011726 0ustar liggesusersf64c32b281a27a55e24b2b76e47778ba *DESCRIPTION 34551522533d48d0a968454bea1b4d30 *NAMESPACE 920bfe228e7e39254acf58be1769b632 *R/json.R 0489b313250de174ca1d68cbf67f9000 *R/zzz.R d3a7b09a750075fbdeb90929c22d9793 *build/vignette.rds 4ed09b8481d72e96ce34417910575cba *inst/changelog.txt 475d7413bdebc23bc88ca5e2176721d5 *inst/doc/json_rpc_server.Rnw 292b48130f928c6c014902fa97de62c6 *inst/doc/json_rpc_server.pdf cee224c8dc417dece605178406f9b2d5 *inst/rpc_server/server.r ce0131b40a9fe6dbd17ac5e623c438e9 *inst/rpc_server/some_script.r e29f8f1f26f017f214682f36e42db7e6 *inst/rpc_server/start_server 73af6807a8fbffa9294a857fbe1e9142 *inst/rpc_server/start_server.bat d6a2d5044743f5f4235bdd72e4d87cd7 *inst/unittests/runtests.r 53d51f59838c16022f293e07e700d08b *inst/unittests/test.array.r c1a9ccb854491a312e8afde84e3e8cf4 *inst/unittests/test.big.r c92420b04cca34c2cbef8dfa7af0995f *inst/unittests/test.crash.r d9da76109062c8e9b65807c53053e784 *inst/unittests/test.factors.r fb9314c5a9bb386a497fb6bf942302d9 *inst/unittests/test.largedata.r 32416767cfe1768135f47529976f691d *inst/unittests/test.list.r 9bbd49e1b8d8d9a446a7b5caaae8e751 *inst/unittests/test.number.r 3ba186f308594cf58f9257b54d0d36d8 *inst/unittests/test.strings.r f5bc8385d4462948bd04504b5be58ac1 *inst/unittests/test.tojson.r c5f5cfe0694454ace3e4dc27bf36441e *inst/unittests/test.twitter.r e33c13542af5bfcee0bc29bf206a8b1b *inst/unittests/test.unicode.r 0db00ecbdf2e1416756fb75af074a9be *man/fromJSON.Rd b84795a61a8fa36f040a15e5e164e64c *man/newJSONParser.Rd 3125920a7f681fd8670e16a21ccead94 *man/rjson.Rd ff2f8e8ab06f34554d18135ce45d172b *man/toJSON.Rd f8a8dfb8874b94a79716172ce5563a7a *src/dump.cpp 153eaf540a186337afb167fae3aab570 *src/funcs.h 6b58a6ea3f99c06da6f2432f722a827b *src/parser.c a2b3707ed77dc4020a3518df3c23c1ca *src/register.c 475d7413bdebc23bc88ca5e2176721d5 *vignettes/json_rpc_server.Rnw rjson/inst/0000755000176200001440000000000014166362177012377 5ustar liggesusersrjson/inst/changelog.txt0000644000176200001440000000576113646044300015063 0ustar liggesusers0.2.20: Jan 6, 2022 fixed crash on parsing invalid escapped characters added support for 4-byte utf8 characters simplified PROTECT/UNPROTECT logic to appease rchk warnings 0.2.17: Jun 25, 2017 Fixed examples that refferenced True/False instead of TRUE/FALSE 0.2.16: Nov 30, 2014 Added simplify=TRUE option to fromJSON, when True, lists are simplified into vectors (default is backwards compatible); when set to False, all json-encoded lists are kept as R lists. 0.2.15: Nov 2, 2014 bugfix: toJSON was not escaping control characters 0-0x1f, and 0x7f. (Thanks to Early Ehlinger for patch) 0.2.14: June 10, 2014 Fixed bug where fromJSON("{\"a\": 0,}") returned a list() rather than raising an error regarding the trailing comma. (Thanks Stavros Macrakis for the report) 0.2.12: Jan 14, 2013 Added unexpected.escape to the "C" fromJSON method. This allows users to parse invalid json containing bad escaped data. Defaults to raising an error as the old version did. Also added position to error/warning messages 0.2.11: Nov 29, 2012 Fixed toJSON bug where factors were saved as integers rather than strings 0.2.10: Sep 30, 2012 Fixed precission issue in toJSON's C implementation where doubles only had 6 digits (as the std::iostream default specified). Now it should be the full precission. (Thanks Michael) Fixed issue where toJSON(..., "R") never passed the "R" value on recursive calls (so it ended up calling the (potentially buggy) C version 0.2.9: July 22, 2012 Fixed vector toJSON bug where toJSON(numeric(0)) would return "" instead of "[]" (thanks Diego Forteza) 0.2.8: Mar 18, 2012 Changed ordering of includes in dump.cpp to fix compilation issue on OSX (thanks Rob) 0.2.7: Mar 12, 2012 rewrote toJSON to use a C implementation which is much faster. Thanks to Simon for the reminder. 0.2.6: Oct 17, 2011 bufix: fromJSON('["A",["B","C"]]') incorrectly returned "A" "B" (thanks Brad Friedman for reporting it) bufix: fromJSON('["A", null]', method="R") was using NA rather than NULL (missed case from version 0.1.6) 0.2.4: June 26, 2011 bugfix: too hasty with the previous release, and introduced a bug for characters greater than 512 bytes (was blindly doubling the buffer size when sometimes it needed more) 0.2.4: June 25, 2011 bugfix: memory issue when parsing strings with mostly (or only) escaped characters greater than 256bytes 0.2.3: Dec 12, 2010 bugfix: allow '\r' to b whitespace rather than just use '\n' 0.2.2: Nov 29, 2010 bugfix: protection stack overflow - now uses PROTECT_WITH_INDEX() rather pushing far too many protects on to the stack bugfix: added missing protects to SET_LENGTH calls 0.2.1: unknown (missing entry) 0.2.0: unknown (missing entry) introduced a C based parser for reading JSON 0.1.7: August 28, 2009 fixed toJSON bug: named vectors are now treated as json lists 0.1.6: August 23, 2009 fixed toJSON bug: NA, NaN, Inf, -Inf are not converted to strings fromJSON: null used to be returned as NA, but now is returned as NULL (but will still have the associated key displayed in the list) rjson/inst/doc/0000755000176200001440000000000014166362177013144 5ustar liggesusersrjson/inst/doc/json_rpc_server.Rnw0000644000176200001440000000262713646044300017031 0ustar liggesusers\documentclass[letter]{article} %\VignetteIndexEntry{JSON RPC server for R} %\VignettePackage{rjson} \begin{document} \title{JSON RPC server for R} \author{Alex Couture-Beil} \maketitle \section{Introduction} Remote proceedure calls (RPC) provide inter-process communication which allow programs to call other program's subroutines. JSON-RPC is a RPC protocol built on top of JSON. JSON-RPC provides a nice way to interface different languages. Sample code for creating an JSON-RPC server for R is supplied with the rjson library. For this example, a client wishing to execute R code will first execute a new instance of R, and will communicate over standard IO (stdin/stdout). After the client executes any number of calls, it will terminate the R session with an end of file (ctrl-D). \section{Sample Code} Sample code can be found in the {\it ..../library/rjson/rpc\_server} directory. The server is started with {\it ./start\_server} (unix), or with {\it start\_server.bat} (windows). An optional paramater specifies a user supplied source file to be loaded by the server, thus allowing the client to execute some user supplied functions. Note that this code posses serious security risks if the client accecpts input from anyone. (i.e. the client redirects IO from some tcp port to the R json-rpc interface). If this is the case, you'll likely want to avoid allowing anyone to pass anything to eval. \end{document} rjson/inst/doc/json_rpc_server.pdf0000644000176200001440000020125114166362177017043 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 1704 /Filter /FlateDecode >> stream xڭXKs6WjƂ  c63!IߒhH*V/4RX~^\.ҹJ:JTGvit:^K$ͧk54iTad&Vs)b2U-S|[U R_wQ~~ <[9y\2IKm]^O_o 4e@"mIF+\m/^,uʼ#G-iP DY"*TrL@@|MÕW Bk{kl\[Z=o8TCzDV#GYr^^GAB6L)K2 h̶fA,E3]zY Upڰ@_ GsߡB]p%biM^ 9MKT$SjWu[ȝxjX9Vo/5f({?#,eCVW(yQKf mX_i"5!HgX+9k ֲ-{{IǠK ҭm!J1Qࠢ7CǻMe˿b׼qAJ]7LBjtj8f:5FtFoS%X@p*O o 8&Y!ݝ)f ZԚ, \9n;!RCLC܃*ă#̧M2/XQGvK_#Xx;iIeQ%+)ͥlɳixsRNAr&'K vqU{B <%Ezc|ǣ%Jhg6,| se!Yid<I@00nGjTfT0)z1G0k03 .[^Jb 4q IL!|djޙ rTi*ymDB?/˲?*!<دB kz)LP?pxXo׬A$v1hgZdTv=.c1$B;?R<[( endstream endobj 16 0 obj << /Length1 1614 /Length2 8595 /Length3 0 /Length 9641 /Filter /FlateDecode >> stream xڍ4Z6N0Z>z=zQ`3zw ktB :Iys5kn.׽0ipH[í p[ &psrrs`21BܠŘL`W&/YۣLN C@^P@(( C@b Pa`WL&Y 9X@@aaA?iG d YفoYB:p_!XܜD<==9-]9.7;6.n2NL&/ x@! 0f v<^QVh8ae7 'p{qN0o` n^nKoCK+z4%@AZ `X幂\ Nn~yn5\0ۣ 8 <\E /K$tAA.?w\@_pAC9>2 / {}|Ip9 \\nry~,]\?l?/aA!u!W5TSL9|\opRZqN_\g9oG rwg=قmox_C/5S]-{g?@fv|gw!\B+Eof6 {;cX6T`ՍaJA,ow>K<H|evRUf}KcVgs# ̇$~}OAJ%C<+@#1~@ e*WIf,7y y}}@h`Iqpƅw =s~ʴn@\ɢXn0Hm_#f a+ڻlU}JllKsm'kf^fjMP (Wb&륗MG@X(@ϡM?!cIt%1V]8pc4J'^n=[78-BEGW3뎺/geE< +^ESXMROٯ0]9! {^w@:ծw$x̓ !ļcw>,pUޠb8퐊|y1{CMJ?ve,cKOg|N_`á2t:Z\XFX/ODZ%kvb'F؞W [&[;stT`Q B\~Z"J}F̟EiWz~-"v$Yqa)ºg|bXœd^'ˑ:e-32QV ɓyLkjR&]ZJfFD>{ g3u%>B4>S*;P|~$8.G<쵉SR1g`Q\JA"p#CdCOb<iSg*uݬo2 ۨb1fn?Ҋg0jVwi*vsM۪xK 02Z#%܏p$VRdazM}ÕvGqil)F)~#CH:{c0 Ut8̤rAͅ&u, m"n^H7C2fcq'vY~gap):%|0X$Ar|oo]2F]fssծ5S؇5E̱>pH?@%-w:hu@.a9(X!dp!,JK.6!^$m\~S4kȍ#)d%~u8=Nrh\58 &A*!ɷ σ*l:#$(U]m@Oy=d5R9RL>-Pة\ev؂ߚHRF=R\HDQ٠'$Or>DAs(#a;y"e Lg:2Y%RP06-yf+_Rtv7wS]gb9_YmbmV/*\=U&PQ8f/SY* y.ϥ\qS,_l 1q_1>pg&R<>4vkl^st'ʶ"lbLdd_f3×26wwևN 6[w .~7eKNtIּr%+:riti~/۶V{u/FSJ|dTUF#Pː㉸B1BI} I%T՛詟\/P?bϼH>&[t4:g/ƓNL7޾l`r9({IљL{cpLHF& SQ50Wm9-#zTYRCuWN>%zHB'Vjiv!?B8K:sus=|da%}2#8Iwe?UZ)+`"*6#;k[N/Di[Ѽi0H}ChO{<)+wd9@\D5Q^9T ?WrOuZ" .Sm!rQfLɗ+]s39?kᘮuA!^5#YҫBZ 6?}\ {j" '6|$AT.WBo,ux$?žWdq䆼p>RJYۡ]C>&*hF+b31SURtg('x2E.<^9Y 90:,֎@궋&{b4*/bK7. 3^i V4dnOw qtl۞㼤V5pUJUܹfr{bu =sif7IeKR@iOBgC@c4ҾGd2)c~1M.-y[L\T0 ~ay7R8շF'?ߑ^a/)IxeQ+&zM%{/ Cacǟ6$Z?]0d~~P,&9H W~`' קX4YH-o)飡ܼteotώy^w(Nn^}Z^d|WYtݝCe4CdwG*t6m` YpvdCY'faSCC>MYEiI}I0q(ː0GmnǾ+G+Y>"9vkQgu GL/Zto|v26rE'Ѹ8ɚ =3}`wF`i/p4,8֞*)cI3Y;.^(2aHnפhуʥy7SPY~)s4tKxN?f4/ҋX)P8BDx;*s*㈎ xE+ɲQ |HN_JyctxQ p# ODUxM 'P+ZwZj/fe~'}V>uTUW:u&0 AP3xmG{[ڈQxsA8riܹ|p FHT?И0F뼡HF#kse1$* F╞#}YhĔ9]-άtnDjܙª:"5%λZA#5gNo@ԣEtCǴa֮z#>'G^F|;S זeE#=v蟙A|~, fݜ!؋JՀMNL؋Y3E_b#/@~fټBjs_QYohPD 641Bu5KuXUPREB"Jo$:!*o}k{|(f5-PU1]Sty|́S1lNZ"4aЧ 587łMi3B\xNpdɍJ6NĈuwKž36%DyDd60MvUDT& Ev\`jbӻ}jѭ$ &m>:x)Ex// +̪ŏY%sѼzBuOm{;7_x)"so*(]Y^HUM - 1|܀cıU`/'@wn-|HP51ii3)a Kj5*N3 \ɹ8 {(5IKd=Uu@qdi:J>( }fSrK b tS]SJl>e`Veݑj'Lef0q{5!fkƹd)\M)M&< W6AqyP?'E$\hh@DuQzIsc%h7-u$ ^kJoٝy^VU䉛'Czeg_kV~>*qMRpa.mhL\uKzfyF2nJٿRԕ!+ЋY;YN/D%I\41Xe䕑SOFtv#u_hT%*$kŧv̢ηҹ5(qZ^la` t.wP-W(C;u5/.zyԗPaˢo~Wy qU:KY{F3C$74X|?:FsJ{uF ^{8u=>"A8K9`Ȭx`Wjeq#8?C@)rBkbKhļMUqlr-җ /x,5ڗ}ֿj^ϾyCvlv,zrPDdHBv#`χ!TvJmpQWsڋiʈWa/y֒Ϟ iLG1{t6MX5Hȵ33㱋#pa;XK' s6]D(;δx+ibGM5;BiŒ^%{I#XI٠<_;ιi _ow\BݧZNqyrw[UY_O5){FV!hxF+>RBͰLLl|Ceg{0NP*/ꨵ.!gj4d^ 34@D!Cqٟ.LD1p;B`[G U%8(KX.q`$]}_I`^=21ttb= lԀ޳hyi8b#J8씱( Rx5'Yo־YYP3BT%HmL9xIw7R약t0xkʳf$ UiG_G)B(Qf(gO ? .ѡj nᏼκ?*:smڅ3˸#Ew0ؗA5D g}?W, 'q5_d (;Rk{;M/ڜC*lQ9B?]D/o\|]yJaa.RkRHO/+1;]nJqb¦7龷VHH{NM_T(v#"2NW81ᅆoq!Ծ:1e1VVWUPYUAa=wzբ~q endstream endobj 18 0 obj << /Length1 2062 /Length2 16505 /Length3 0 /Length 17752 /Filter /FlateDecode >> stream xڌpk.Ll[Ll۶mulۚd21'ضmN4s{WS]\׺׺XQN(noBD Sfb02322ÒZÒ-e 4r|]mL,&vn&nFF3##;qD,Mri{;3,GyPP8ht,MrF.@ۏ&F6{Kpqqf`pww7uw2秢[X@'7)y#[_aU\܍ HP(82ˀwoLL ,t621u03Y ..#;? l?܌,m?  .0 7=g'KgzgK?(2bv"@;g?t|ݓᯓwYڙAՁA(%ɇ9:& WtdC`Akiv6r\\V7ebZvDda=&<}?/ _xӱ2L ǃQ4JٙMS@rP; .#7D .HO5ouuX95ߦVhjjR.F dgn6Z:[zM-]L,jlPk@q4KZ&WH~l37cŘFNNFLh s v..z3{'?N /`qD8 yA~ .G3ASS?2GG ?`/` ~aP G,IL Oٿ V?x ~We4Ja-/G?|>nz;?RmE:|?Mcje`lcl/vp/_G_x?m!?﬏u74]^7 i{s۟%H^vjw}BJtJA^\!z*gRϋA~+d/~|:UWG@kd9yh}eca J2p/e3tj_ur3I ]Q/=nfQ'߉h`}OY ={W2;whcݢM{ %Kc-z ,y-$FMYC?b^me[6@K-mF7p"Qn5Bseu ݩwYpԿ,~t{?78 ݇|n(7wgЉ\[NQ2K(La[ iQt -7K9EwT`vwΔ 1Ì0b_r7b(xꀍse [D;lKI Y$z#u<+ZcNƏCLv˅1/+#mr~PrVHTt; cLU؍ض9ICiwŝLJpY_7gYoI&@mss]%|7UpTT>{m.ΌNzTxؾđ/_oQ~|3lPsjX>7< ˆ?q* ((ؐ-A_HȲ|"ir֭@ -%P;:xaOʞU,Kٳ&[H"^eJG-"jmr ;O>T[ME,8emJQbNDzDڥ כ2sTTׯy(DEswq*>J)ppӆ~ML>iMǶ ͏K9!Ѝ55q 9a@$u\sz(2\L>H !huqe:fyNWLlt&\x3!$tUՍXϼ(\M+9Gl-Ɗ7oM݇^'lt{L-5anZ,omavXBUJH^fY*v)ERR㧊-._sᨇA\hErf2Dj{14ZW{? >l 9vV"wΉM|DL*mKlJro}7vHsLuEZL(-L j0{q:˚TcRg:$'X{tF߭kHz8u?@W9=᾽ͬg_ֻ 2xEr==ndB^J6.dZ#`ڱ\Βz(:ߣ{mzjXS@ 2ɺb@X6uȝ 6k̇UbTڮ1.BP?ML`0ʹi'Sc&TRe8-Or@Лl~\;;{@yN~Kӯ\LDM,vM$_ul+zM~A){,'/ hSł Z^n_(b`G+f˂Ox<aLhG` ^(T#*ߺ<GhVp-Z\1dž|5ƅ*/aJn*M{ᨍcdh3R FV ;xV*`,嶍G""V)+dmYҶqr/gm o=Ɉ??u~1\1^'n9*O~}4bUbªs8M}C놆?,^rYYW&/%'E*%kF dmg . #x+Kq@ᛐ[XƌMab~0yWc #ry8 GsKHp>֓J'κ keY&$k{" \m/:VOFLWC[#&V5vm#Y~8Pަmpӕڕ|w隟ka ־z3l19eaUIc|(e`fy۸2I;! ,.nI )]HSKN)k(МY@'JHבE<[ۅo=g/mEIh!he`]E\1"by[}dJ };(e$,,m\\\N+򉅧CγDf̬6^pshu \$ Eh#z Ee_ja"uzĩ,U1GL TTpTC(-8~ҺG;r.F/i+>N^} GJQ$8$BѥSBGc1a _sE1jӤBn3. LZ62Y0gt*Q[FqsRF݉晡luQZ.~T ͵y 7LhNBI=Wvڛ`i|#ηэ<ࠉEDL5N/ඌB͝SMIu'澓:t ٠yD?ܗDc61YLmP'U5v,6 v1W(g6y5} c_FKSEwhG{L7bǣH ͧRM# E (U td-4뗃mI]r䉴362~fVFg&sʛR %ZD~ @n"eR.=vt'[**FHc;(>ea}ea#_9ZulrPhZ+K Bs}7 k -(i ,>Ds*l_-dQlpsjС"$A'`"aoj藅9mHX3uV"#qk^#kOǙ@)/&.|E^?B'q8rd$߳Є?J l2Hե H-լj}7%jidG9P)9l#BS|cRzx*L׳?Q,td-ʴT<rZS<\zXZ QlӔqpâVyȻNAkɰ=+S չ)U+6}<՟yWkTf{^ vL@U$ɓy!nv hAe,FBĞmܿgiгL=.!'l3l&5Z4K"QRyHa&< 5Grܢ0Hf5>H,q =<)(n?nG-.Po3,2T*@ [o +AhMoJLt:4!Ȱc{ 9ʫH'ϫSvZV,>6 RHo7*z'AU^M8.YR3l>_Ft~ kkKG7uF[ Cu`-yӡڷJYeT<&Wxsp=꣓]R[,Fm akW{kT8ړ,@^uJז@-t&,K=Zldu2﷯n*=c6/D yZ "ǍMlߡ\mE\n~e0xu90+3 %x*{4\ҟ!!sVY>|OBL(hS ҵ"g}}tU @;&zŔJl ,jQYOI.bwhCl.x>UR#M=w&`OQxRmVleR]&>]q^;hj=Z4}LW6.APCO>D kG +x YφFEC:Ȇ3cbY=Fx^WF!XV#5ÂHMPivRmKFP[9ψdɇ.d  %d=ye?F[u_Pc,*lҬuldٓD/yM_}umϙNE|\o)DiU@Y'D2}~j:M.6ϒJ!co0e^fWGgk.)͛xҌig"Md!m⮩^jUĮ-jh# Ue#ixШ+|nu*Z(_>bWɦN |;}2U]9tƨx+gh)ulڏTMX"Z"rDM}$$oEūaa'7 :SISwX)rk@uHh Sj~|/D$l8՜fD'C{0\084.en_RT*Eː1oD,D*ceV(gd-.qP # N=8z5? v.l2;usyiK(,K#uk啺$oT/T4ky+Z-4 Y~6[Ĭ/ի~W# s}ЖoØӂV6z]6-im`|SЌo DR[@f%J 9\V7x4?_E-9ۨK⽄}5{uO< ll VqdJ,6)E0ɝ-rq{s5 (AŒ6g{2`1$>JSʞW^>A} *hfem=B,1 *p}|8q :K /kW&+/H>.VL߅"1pƤzhe|@aB'7bc3`S_+4mukr ܑmœɷ q=w׃Fe.eԛjCCRQCV<QaD~M G'v*- #rJ23d􅥳{\!FfȰR,k+FW IPa=aO͌]0/MI*rtcUii Չ- &ELƫ`Bpx?ʠit =4S¸ר/5fFU@RNq佂}{v% bʑ>n֡ \՚H3Bh+ā MF7N Z.gYFX"?G81oeCi)3m]7{K"͒,Jv;c{c:"0M >oog>6 \ g40LCZyZ< E3s&C/x%*s'*[AWF\f)Vo枮$ @[QvGJ2M^)u$/Bx?{ڻpV&\Q5jP;+A{r&FL߬14@ 挰(&{n%x( %&-89qZ½[нSepxXr=238+-NZ6m&)(FryGX8 ÿpj֍2ntbV*en({],OB ieRiݶ OáGr?,p/l}YQNɉ8Z`:dbCHzJuҭGBՌ1XRÜD;&RelaчC5g%{R:ٍv״F5)w#RWKb9.fn͡N&k}"r%qҊ"Y┡qcjOFDHdqǣީx0 ]w-:}|9Ou{OqzR]{3b).A# Z3Rn*,.S(VYఊ:)ES%:rk2lJbȕ_Q~B&ש1nFQ[;᢭aN=FAjQhn%Rڞ%qY3\Xξ5EԚPe*L118ӠDnn!=87X~.:Wb9m &~1ƍuU3JA6(A,iUh/inj9:24Zߧ8 W?lf;S@؊t爘Ͻ&z=WSsd%ews ޹Pr_jf K 8Z*6{>())*1xU$=!NR(gK'Gi ageEb޲Lw}#zzޅ?5lpվ "tVU*AɹDg@T$mlsohҊ<ٶJʠ%vة;d_V ԛnXfH:K2P6IgdjpYjUjl)M^1(Q:C(~☒ d˦\paEj- n ;˞ONm|$!eO*scs ,&*Um4* y+,/Yڢh̲:;LqcipF>~3Y4xaV0<( z'qy*~|b{tYokʦ }>-~O|9 Ž?kEg fjc8"B0)Ŕ/;Sb4lr Lhh|}іBэu.^sjt=tM[X\ڍPaxYْ9phmQ<1S험䑨;_dm/(aȧJ\NUcm׆1D~zX S>`8: qϑE U{Y Kfu2"޸dhwtC8-A&b@cϱ|cS#ǧ*K{іY Wy^ c2Q,f2Qh..eےпF)8UYÞ*x?hTn_% 8 '0!sʎd2ᠠMV<:a^{~:*YFIGPl(Z]+b[N<,"޼iN9jɡB"¿x%3T@w]sl&2xkl\ #q@6к_6F57kE>"PB0Ƕ#u" C`!>fWWjGT e\Ok:Hjlu-l.2!%@Ki8Zg.Oe-!iN9Nf=M䔘qL5w)&Kuru<\pӯ5cgzR K(j~iq.tT:vt+ -D+ /)Ԉ-jH"Iҏ_LVF5'N!,HaNk9`dEll}'MikWYB"aVGa;(JF@-o zq\ؖ$qsx Q8! Жj6-2FKCw?Y\K{2c)* Ol| %*k(0@bpTlbC J 3ܣ`JtӲ׷bڴuX!%b`>J77:w 'qW: ҘM"#jqEyIzbUNJM$(*#B:.(ޡz@wrw@ #Jۉܡ;%)Ȟʃp3oWԩ'whլ{HM5|Odnas&.@,.,;Sﶯg?p-6E̸N6zݙ`5<-)[45HTEug>=]5hݿ `A`1EEPsf l* D|QvpGʺaXh8=qA;U8 [ vz c<#+N#?U)?ǖnIʼbW1Qi 'o4&qXuP0M-r4ɑiq8^,B8oG2&Q_m3d+B7~͂T)@ eSMhVw=ه cE2 X0y߶j(l3'|S[x=+ku"5.ƴ$x_,-s$X"jc /\٘5Aٟi~FB>B5O0z@oٰ[618i 67ʅ3!3e}d70PlӫBiU&Un5yTYμcLw4uzU[|qVGK`UZl}O±}+E"%N@\J2$vѨ\7ՋP9:{j5].kE-dZmu-f:S۷l!8 S?ڬb[b$&i"j7 m !~)楷MOしьjWpk@QONa:N.c]rOy]+2oD2~u k{6J#u ,6!TXR*;`HgNWcx"P ɝ7L4c#l< &-"@6RuiP?y*a~2s!OOp֥V8e#!`nv~~WS)hAمYgNWDwI^ V(z<ϑAU6WݗzzbAٛE3%jAunSuب(kKrHg#ړ<OF!`_QQtk<^V#^_C( ;@7:CɯVW>,fp/i"wnXr `-I2*x)Cw#&yS~oQ?1Wr ࿚ +C#TaJO+ u&  9:%47/aF־t$2 |>!*1[rm$?J(S8ϱ|| !2DuoPphŚ Rt ǫ05a@#λa}@4|b霌`'㰯ቋi$jÑm\_e+!X @|U^f+Q'`V~~^Y՜T!F_t'#$2'W+o_ƌדUʘ]x׽޶f3M;0_O9QKLXc՛:Gӆ4g|& y8 zVrOUVx9񻧜A2˔s d :`~ EE~0vauJX@/\SnXq ]jTD0!~?7S3ٹc*gdF.F#_WNkZTcg^fbbCUC7Q(6 wo *ItsJuY#FYq# וy~+C;gd;8gGI9S;R1m0텮N4e8"/k\Vwq av5SOO]̎6IJ&uA!x]L?%F)- Ɇ7Z|GyںݑI=@@@vE w;XCCQf%i7#dzbUvƍ&kʖ(^^b00!(hCrT `+5'G 0AYm i͒WfV?I%8uo7戏^v'~ h 1cF Sp)jbnRB"0[YvjZ8\s^r ѥA'1xubXX=73.ob9#d+]K}|A&6zTg6-Xg4~/XĴ#4K/{&WbbOł$~:oZ1_Y7b'TtC|c͢+H-d~ 'ou z]G3ȶGO{w9O=~Hz#f. r9$o5pfpZ6aw>Nln^[z:ז;._UrYٴ kn]ܮ)2~bW7rb$+v̉P PJijgƶ7 0ͭ{pFXD4 c-xug٬ŗ/}yΕ.t2AT%XLM"2ޅoЅhϴrN=H2<1r=ٍ8*􂐯7CBahic"8i7jbh-ԮyAˋ V2]x*%'~t͇#eUIMvd:h&hlTd}^:A~d-r\A_aZRIۙPkm RW֜#}ZZ\ek+2khWXB:r@ܡ%cҨʨ^%+nɁmSٺÑ~[PiyX,SW8OQU0b&B#osFV`]pËoDV9x ^[9['hm]a*wpq[ ^0)tJx~F;"%apۙz( YPkY 5%R}){Y36rD3 jƲgB\DQ ,abeZ H'oF iLI:YKMH8$0``܄ؐ^~IrT4CagWݠ$mGq NȲs_GuQIwգ7JfOXg҇9֒5xO+U3alO;(ߙa/TU~T1Ub:w=۝H;4cNybWƭy \zT*6y`>@Dl fLjYoPuyn@cN|M;icqX~0MD8Мϻβ  B'ˈWFq +j@B!M Ӟ\nwӿDCUt~%t'Shx}\lM09^:%Qp||V"ѳïz/ l#A2Z1+9x%o于7 /p(gJ9o3|Oȍ%nEldXTe2 L-54Q} Rŧdx/DFDaWꑱ&MĦz$jXI.ZZ.7'I{j(K'-_$ w!ܙ="~6F]0^W5 y<'wMo;;E_ q_ n`2{JiDLɳ7OG¹OncS}WoDpUڛ5 ~Il' Q^cr.l&P$y-jv zN29cHn!ow -e]O;. ]7Obdj <`'^f!# oTŒckVXS6+ Mab$76RiN{BDe'0kE8T0!"kH- cNvĽ',c0ĠmnC= +S *]rY_1v *y7_+M.Ǩ ʗf~abέ07c06copu*Wuoo?2f]b5mίBGRV%5~:krAlqP9^v$z"xdtMt[Z"lW]`T4w Py&ʷ]63p¶v\p:bTbdd {ՙyɪRn>ZfmWHp=.ђO9mɞ16)*Gx]]\a[/G?HĔA84aM&_'RUK/ךȶDίu]rr8=PF`v9Et۩[.jB~%G-&› .E ]|ճ$ F=|Ög*#T-ҏES$@Rw) \8R7tʍRՆbm I S:ᣏY@/5"楓a[}fw#OOU9LTh n{M,#ydJ GO>]^ƃR{鎽"hB ˖:-6gʱ#lvj.b_%xkgޯc\gP$V!ݣAHng] cUo'RIƥK-Pa{a j` xY|eb~i,\b P7Rcb)/PJNZ[uwYOßZ䘇+Tfqog3 Y72v}h)'i'Ydؿ i? k>)(x8E&4wҮ)cR[ =t5,iKT4ˠ.'D9@>4ecgg|aVZ$#ܞpЋSl Qa&8mi/ĀHu/ ֬)k$ z<>3ZM_k6;l;n"fSPS.Q~#1_?iQlSʓ&rs/Rec͒oKO[;?z'Rkb%RE3 BaH+#3 bOR@:z*_2DjxϘ|Hg˒G,Vt_R32Ko5g>9S |*m"G|. a/œ2TPREaic=4N ;blWk?>lZCK[®^cQ\ VN3%ȲYO~(RjVj[MsH9:K}Y(Mr" a\aJ@r.%&ި9)y !XXT\p$Y2<\,!uF4o\h0,&6DÎxsav/"tlYTA;o؆0ኦZz7;_GVqhgGD5^ 4ȕ9-P DRƒ(vra/#K `YhrHUA蒕1TE4Lc? AuG6}ʧ(S"/ endstream endobj 20 0 obj << /Length1 1656 /Length2 9124 /Length3 0 /Length 10206 /Filter /FlateDecode >> stream xڍTk6L#-]9tJ#!  1 CwJ# ( %t (()ssZ߷fgkFz mNikgK g ( U|\@ /6#Kͨ!2,29 3^ P?0Q;Pv\e0!^,V!?N Pہ2ZY8 `á\N\0[ Vn` kjN?;f؁]k;=,` l>xAA0Cr @ ixx@`VVNP 'b ;/T8bha`GҚj ]\[akYg''>90 d0vO?O ؀!6vrB.n %LDlAp\ :PJ|PC _ @V7XK-O1Op00 =7zY;C=1|U 4 o3 a ?Jgȟ>L?u,+c9?`@ÃwnYN`GϿ 8࿪@TΪnNU[<41]_ k 0O)d`HVp{,+@)!Vֿ7W@`Yxb+ yXEk C{gpK2 !H7yYt火ܠCmNovP_PeD%azp[?}#B{SC^ ؟5|+7c=N?BgBkB.=8>?bOc]c&VfΥ/mȳI-yl oIl5KКjŞ'{S 7;@fe<7a|K^Dm_H̖J81Ɓ-P<ŀsh6}t 6ז%lؔqLDujb;D %UұP+z"^QV@ Gd:kƀ-\ˎ4#N[˄Qe;pCb<`vUKr;klsfjtgYy|8f&5[?qX3+[/B{" 397.m(@Tϔ;_=;{;m`J!1JO!3xF };-O^o܀hqJʼn5Юw_ Hnui@jPUj hiVq> P2rZgԡƌѨa~8?x?I4[QC/q vR%5Ә2QzzYSete&\S(bBxJg,<nʸb1fl"B2'9h³@ft#L,CkQQ+UmiW_|QԋԄ9&y#fCz|@TC  [+T?YPΉeV Ind;tσ 3R&\݋cb`[{ ε̒a ҽ4ma~ɖN B1@IVҞZ$cq ^[bE.P^$$Vf"Gy)z$B_2sJΔ>Xaua;QxYvm'3q6Bhj6{i$I AWXtFk_4|Y[f˲i3Y`@vbFS8R?OT#[3*'dtAH0ƛJuWkAy>MJG?K6Q:I;f vDoXB>B9 ӆx6f#+"v]JgjG um6E'hj1""2 _nUK"Y ewnŬK.PN*lOZPhX>1[O:(Rpt*( -h$>E6+zrt'[} >_.Q$tB T!Qn%4iN=li~Xa4-9;cR5&鮟u ~MyHgsƬu=@e?{ Rh8y9c {7!_:d2ʗ tERRLg\U;& 0P[2w`m`(1!К|"_+L*b.T8ntP޵Nm"کjkJ7;b8KB#:eQs  Es>.X%- unkhS}-{2QH?w;߫j}:MQ.! \[&VH}fWNߨ$dcͼ$ Jp1V >LA: f*# ޚVp~jJ^~-1"Lj޴ࣇŬMP#>+۲B~*b7V;Nu`ݘ@zFm;"ܩxO6jLf%'xTڳԠ7*S,y=Z8o2#2َ0;6EkWY;P%Z2T] S}@ +j^r"FLA"1BǂZL05 HX:98[Y>zb7]j("؋DKS0+n픻䦅}xvR15GGJ'"oZg_pX~2KhΥsyDA굆eHt'mBN%-Y}Qd-}j9v5<@<^5岣{H++4T63'c&X/m 7zաp+Y/y_5 Yw#x3pXq*L=HCcc-\ +~0~2㟧0zFjE`?Pި1xGBL| ՖO @2ؾ" Rt]7(r-y ]&|ae~ó .hzhR:>fތ6k .MH:6akHh]$j>zvu+:^E?`CMWeL_9^"SU6FLyWQ H: AlLDRHEEa7%O$=C¢,J9 HQhix5%se"g>:V-h 0BZT:2CR66SE{7釅(\#эqM #&yy@3$BB5 h?h~Ԇ2Fƭ4} Aa MuvxgƙC| %^ m8B5^W=kAI`u"(-}2^3u(ognI?^[Ĵ5/&SK?]#B_trI?!xoaAG/Vu-( IL((BYAxj3a^^wI ,U 죧8ŤOG=ThvW;5] ;o'iN 3AeCel/|IjPm ĸ=Kr?|~]9ǘ̆FAQ143>߈D0Wl`B m~FN@&('Ե@o%zp+5>Ur|CP&T炷ziKtH)K Iyl+L_#@UkJW7V}Xw=A᥵DH գa+<:ۖȎEwQ섵O52EBvo$URH=[ wwZ٬%g&e61@mYDsGX-:॔TZO `ޕXzbD(=O{!~_Dgy@UI]c}62n0DïP[#Np$.[qS|"?&T p'XV"űNPy%޼J P@}媁{?O=6-lϒ擔?z+n5~Y6|><2W]|$cm{&& I%2U哩3RQiöZ"M9bbT<5KK`ԝӣmK`..$'H.Y,cGF콩%9ڶϯ [#LQKLod:Y:8Y!A|sh_̙YRDODUG%Ee #hoy?VuJoqe=srq/+<<@'53% G}66$i ռv5YK}g2麷\x |(Lry|t=l\zMMFy0OO4@pazz9Dz+tOŸpCvJuP3-2Rk jj$#5FHf1tGȱTC^;"ef9YUӽXpl9WVbۍ- F8ux\M|"z:ƚ{}Yџ]} ʈa'g6K/rG;0b"3`bž8R<|U_J ln ȟ5Ox{Ԣ]Qp~"䀹qs<Y$s@q:~(t!牮7 gt H@ntB^zFuzg*ԩ'>Z׍k%bT}r{l. nY1m v=fB $qrnt$9 8ʹ(rH6*Xk!,*&J6"LZ'FM8Hzl?5p{Fi^zF^ tȼ4ñNpECvŷ!F|Mld'7)v  1%U,~aMC *(Wh %L]QvngHLa bcE5p*<]ZzuwV>E<+Itn*Ӥ&RQg 1< m;:5eCȮ=Ph.ښ<Q T DkK5ESE{3[s@~,^L-'5۔Z^m#wRX/m2ES=_p+kPQмZ[eW ; A,W\Ԃi6QF.!0K5;fX0;+ٱ2__59@i~K&h4Oə*L˚>̣DReu~L68>l ^ 쵀g+M*_anljH{..UCo ><- `$b"hJ00̶_ͧ/P[)ΓZm!Sr1uPmYQ c煛H $_GQɄidu5Ῠ7_UDgj ~'5;on]˅zpRR1iU^1$|72!!*Y=rLӵ=p@~b`ۭ3K}K_ikܝ?qk͇(_>Yڽ\AOSn eޝftS%| `p^r4B,HE6=Ax` M}DeZde%(o4= M܋ό D1eU1K?q|>jx7ErsC[;ׅ}epKp0Cj&8u=J#Nli^o&SBK%ZsTcƨ_tg KuA`&1Uâʓ{Shݖjq3/Qd N̯HV1 ъB jc3"M4} owDRϡ0Q!~duUB3a£`ѯ{[Z p+$wcnmWB<^%nu1RK-'W]&%~Pڵ~It>ƠyέKh1*CxmAFdse&[j`}`-qqe?u| Nk:hBIr.{(W*Xqsi-uޑGcq $]3pI +0m=yK 靀d$x/*[`3 {%6fX˻6C@i5g OcA#~O,?!wkB0P3>rxI(@cQ'*ou d(;>˻6r;f+ui++2C.ZvƳY4NGл-osw|nlS J||T|o[D\ae|"؜g1?&814;Y2P.g|{Yh4y8!pc]*Rn'Cci=Sy?E*r׉`g#oC6?aN<P9qs)wqg(OȬ*[=>yu@luu9.bK|p2ND'ɏ3-nW7y?cq02F[+7£F 󉶁8i -epzj-׬i^4. G~(O^2la?W_]R -{!*3ˍNMbG+1-wup{=N88[gڏǭ)9!ٮ!8m36ڠk6nkV u=h5.FR$,>XwQ:g)SoEtP{FYߏO*pLETzŧ1i+ؔ*P^Tc%7>fXwcS ɬ[,Nr:$9Bģ!xmKyv;qJ5MW3vm eZ(e_dz]S9cf?Mgt.̆;\5fኺO:&5 ~T\x:^pɁՄX!/ݖ?7ƍ^{E;nQtxr.kB&Ŀ.e5Sl𺂠<}{.{ַ;ϸTK}%ƍ0BFƚ1+emwVYL7:?Rt$=AxVVzOFZD(H>Mf$$ 8"΀q=ovEe[s4v6e6tD! \ܣ}`HfvY0Ēoݸx ܿvJln ΍qJ4u!"[l,ivxchyH%:;rN3w D)p\L! J9A#n *?LR:JBsMrAA#NoqE/<M,?Zzs7zB5M͌+\swQ>=!]5ۗB2pֆ6KZԐ`nSȆѮ߃Dy&<3@٩BI"iSH-/c pq d>3wR%2K:ڒpѲ 8,CDdI5 ]sLzJ7)A_} )RL:`ǜNx@Tn`C/x?+&K%(b{m?3p@ݡkHpt bIթ!ąrz t ٯUϘ#rݰB)K]*w)G~whwB!3)B>/EQ*^ܥFźk`Wt(ѧYfmgg<&RWO|CmF6}Zy'L_W WAk||O+_~Fbe53/>MKrlJQD!{ <<p[CiOq¤N!Z|էc ZE1++Vggਲ7G&_Oy Ņ:E[: 埙 q_uMPژXϩc#Cr3[Q > stream xڍT. E b&Xqw(Z,@ n-R(VܭKq([)ŝ}>Z|;33FM]fA]99@)e N>qakA\1u.T? f2i3G;epr8_ r @.H_0gAPA.R0GOg1z0Y08$ 3(@x=@fzW&aWWGA ݝl-p4.`g7%w3_q`l .5aVf`b^ -~z, ?~`xp*apr,!s5OG1/x!{׿e {c~ :*r*Uo$ `xx|<f; ? P+@dg߱T`d?.MHnoGGQ9@=6x,ʰ).U[BUp5{ qx- 6/!@j0`G8Yv呑T#e0`lz$//q-8 r@a.|V0g7-xIUA?Tq nP߈@G[,a3p |&X>v_= s0 ۚ* rw1imfvvOl$AΗIq6e.4סSo{1݊1?A?C)ϽNR3'El'8?Z.{Gm_בmʗJwSocfs3fI_S{\\Ng?P+Ƴb.6Xz{3\IFGf@Jt?2-^wqa4n0Wb~$Ƽ" v@RZ8}x*KM=zG7T_ΣKA 'YdQ1<c9-s2!Afi/Cs>:W/ҹ^RO{oUmZ,In17Z*_rzNikӶV27BA1sZ:OiLzȵ'ZhU'_Z9 d?#JxG\^ifԝݻ ܽdذj[ Tpl(A8SX[d-m`]lb9BXYnuoE#&Mv|tcH O<&˟ ̥swyB(:5c]ԱfY-jx'| O1^AG ҈Czt[P7!$ʶ2睾tqV*y BR@3~.XU }I†o`G aoTj 0&(c Yx~wQrWCQ78"n 좟 7E[+>_%~^'#drJYEJWمQxtT iƬ :8Iz au{`nsN% Y CV;kwɱa U}7/&\iIUY^"9ױp/#v2L,8S JM5/{<њ(_uLd"ECF)J<ݖ.d.Lr[>, m۽辶n $pjgozH2bDc_C!E}}aF} o/AT%Hj{@5b]Bޚ?CrG,B|ҋh_y͗f1 ٌiڷ:7 L^ | P" ۰]|fq݊gD=D[0o\9 Jjl Х;=+€%j/ SZlQs=qҲ^m-IYABFДy_O9'SXHV>ښhLf'5&Kd\:"< ]vmE 8U/Ҝ;8;;RY>U}iQF)mu]1ӫ^Ľd,$|,d[񈖩-P W8Mqs*8ն0;dT)q 2_tQs;7̝{R+{]{KyxPӅ~pBŒi(d|/_s)0(L|ado](=EQ s{z uDajā"\\<{I7Nw"FjOO U2ֵ#[,Rܴ״pd%8#Vinɨ7NKqMMتnIp}D }`;7Ix# *^s 0:]BFU;\M?`$'v:yQ80rשt#Ati/ Ƃ+5uwdۭeط\{e/t(o.T* ѐtؗ)F-uEgW*Hm[*;i:OPhEDν2J_⫊Ѥ+;~-gazVKOEеvZqMEo-{ р<tp4F_J>^YuQ{$zњaPK>Q'į|lSrLE>1۳7Q mB|VĮnþOqPmNW'Q%K*b{-(_#5κ=pՋhXS5B[P# -m)vuDK3T ?D'6כ$*ʽ;iOz_ow=nh? N:Dה(_eKz+%V2 ޼ܹ*" &30 Pݾ_ IOn7Jd?(<cE9Dhl2Qnpߠ@{lfrgu7E]EydIr<m)!]ej Ƀ*9|WOJ*4jx?o9 26N ]y!|J|3b]nzlOGl#!+…sl$'>碒2A"_QlVAQzrߠښScyh5`^u!#>B.TDF?x#pN ~{I|no7{޹QEBml@*$G@]Z>ҽEL"L)l KY \C$X}V etprO&|\8b/0k3&ġe9^bD>f6{NF0 .ӗ.4@D`Wg#(_bFj(K _js*#`%#d`HG~C|6(6c(cOzGw1ۃMY\zXbgc5nC Ψ]r>;u;P,Wɟv$f5_*];k^z4oѹ%˼)"_ǶCqaEO: g.J^r>l΋"s6ȓFĄ^+H ݼxO9yyVXL10e6 fVkV4Q9YNZep d󶇴iUvүM7Lo|'E%hLN:U0B3Ⱥ{faEÓ!ӑRc؞bؓO4c ?muQ0՜̵ fֱeKkJx4Ho6uX/v!7sLݺ(T ǵdKDb(hH^E˒s\/0pZѦD-IVX0&.8"Y'픸N9tF}_w,Vt=VxE-!1>Qr:r43cjeG-|s6n(,Cu@OuZ[GQ[WfS5^~3j}Nٟn8>>e+57?m,WJ/. A3ZRx %1aE!?S7%P5tkwy_D;˸-lGdX9Ыi"NG2i5.ϊlp%/҉FՉ?H~y9W0`Kݟ (9NKDEyƚ4WG渚5q Ӧr=×k<n Gl$]ٟ)FN_o{ir444uR>IGpdv Ll1ڈ*ф!ߓ6ֈ)w5ϼ[GM$Ω_r죛~)Bs *BOBxvIS!Q*8|/P/5BRt䰬~:@hDIiŃw͏CvlV&+/ToL0fG#„5h\?J^~@)>Cg62 ݩS$*bK0N!7YpnoU<Þ|{j Δ'KaOELjf* K 7TPv+F;M ʕj8P0|Q5BIRaI=B<xrItD>ҹ깇y+B|/O.L D:)g K1e,"jW sZ0ݢLxUKgc,YƐ@쟟|, eθ5# ߹?8eR*9 tĎ}>t1,bR=T(K>"r}cGnGm%\O1f(~7"T9 mL7q-0%M᭑sa+> &NöX7rޱhf #s&l@U] $ܓ d3ga"or~^|w7֑>DW1"kr qTjH8Fe8D횀R֊[RZti9S^Ց&C Q(懇'GD)yL.@aDc!caJRf.yaAwhdz#/$2n,m~v}~r9EkƐ!d)LX?K-xnd`f.z3MkE)`"4_A Bt_q!e1A # = Y* Hxh>_T0jEI`i'Nѣ aD[nWe9eO]T3޼Iԝ1 2{ s2Uj33Q# /-3\“~ly[φo<ΈmޱK۬쏆* {'\3NMVF2ӲBD u:( )wbX܂7|TU}$Q$_-O#z+8L5zbC*J8e-޳KX6Uo#(luDGH7|ذJph}I|q(905~"_⬋LaYmlzpKt(DmAMgE['iшh˦(,K@ʆ̬E{5uWF#Rj5:w ?M8'VLHkP? ?u DX㖿.|d]>cKrnD@1 =(H-TGUrBR m$O{}QeA /)LM֍"n ,e/O$-l,u\記3<:|#½jA)*YUU۴E8צkv r_/bɢ6*S{vꝭ.?|g<W@=K\Nājަ`V3el`i`#."K_)&\f@.SZ =[ULjiZC:opvYP>^wXIarzikx"oV W%t+F|m$MEAjwSN{ٗahCm5}$S;3/i󰉅-agS7=Fxz 8o Hi9s֎_Ok]=jP뷃7?>Z`H.ʉMXDmևnNJm+)T_}P6LV/L7蓉oq\ .I8@K*#i[Ƽ"YZ(RGˠpd{LUT+QWlԴf}(\jWY=N h]AnkJnLKF pQtZwztMYj8ig_\wGZ nƝm4]`ZL!Wa\Vi;|{}.[ӕS&:"OX"xNb hxL2fbqझ>likTu gG*ir#\җ׆d:UzAֶK^8E\J0Ǒ~]C]GUuQ4bY*{~jcК=U%ixoazni-QEΒ"m]<A]C=)E0Pi"ᨦ"x^.;7՝=z<nMn'p9! 2="a2ܥjv8pNZM9[ѰqU55?"(;r TD_U3iLam+" ^9n4;4QJ(~E+`/ [D,yBk_b(HWJPCfH#۪%N^3\Ab/۞qs":Is~-F*9J5rPXfȅ6%o@G/~z[GڧmL+f+)2e%VЯ"J endstream endobj 24 0 obj << /Length1 1621 /Length2 9626 /Length3 0 /Length 10686 /Filter /FlateDecode >> stream xڍP\-w'ww`Af!Hp 8ww-aVI .y1ߥvlqQF0(pQ6K7jQdv;y9Tn*{$ J|+!Hl1d营t ې$h؉FmB jw2ƣ,O^lkfZe E' wȓataɍz[HO\Tn*8gN>V32WHIo^3VriitRO=ppŸ&5I筛Lê6ܖ'}%xtu{E6dO1*!~8VL5Q~ֲ} TKLjydg;='2,;{]Q[ =8:]7OW?aOؕ(" B1IY[4j/ Ώ~yUWǶm#5_~fWsh=Lts3,; W4x|aPU Ⱥwء]`ߏ;AAŜq km Jg⳵g,w0}>+I3Ar:a D)1ʹ=z3`Y +/Nk_ф(1M2EkџXeԌkT?/*fM۱[1pb^g"Nf;h{{̎)+&Cgt42DE6cꛖ_΂EIRlݛTr8tƫZ 9Ja;|i ºhLoմaѳwq#i(v"4s>a=%om[W 缜kg0Dmpxq`~z2Us9}x͞KzM?n*Dz_bu0ۧ/aXڌf;H|ڭ)M-%NCr*/@//nGo "۽^:@dghc;G8H9~R+fw)Q@y.S5:q#G6zx.ҷxCiH@~kk Å=Fp*D޴uj2RE+}*`àEZs g EN.}m" s "]B}Ќ|2P>ަ#K:MUyճv  PZrI:85FN||hM$M]4.)Gc3)&\+>C٘kgLOSKfx;=PtM+0!Z?G?"Xܢj`GQTv*d%I\wl~'݂Cf!2 و*y9]<90oE1XБok9A(CWG[]9DD>(jv'My0ב 9xL wU"ض-lq:&͐W=#E iܵPUf _M#o>p"貋8nܷZ R*r}ۈ£Lr˽RK''U7K}_ #vKO/p73 e]"O6WUn[HlErPOyVЀe{1߭SA'8'4SS]~솎8K:UQ}]co ,+uC?*|o+횸&Y4ijGTli4iI°Хq$.N8]i`z Hᮞw*вO&_P" uV,Gk1M"7T[rG_mr9F>if( ƬJ:#QVUMѦ6FKzsėy=;&-Zb6DxF<aV- [Z(s\~iż%l@{ˆ &U!#C- [z{[AR:,QeƓ5 >n%}U}8\PaeY/*Hsu]88us.!M16˟ng@mTz+p¨ 3Y⺝EE8 6DM՜n2>Y n]~M )Xpf!f?o){A'Npg )O>}M+䣻>ߘKqV>G+i f .kѨbyyt SAn|vkĝVe7*Z?jW֩ruL0g^\ok @Sm RɿhtT^j.kv*i,>- l 5[ʭ&xO#g+U:pD00 !Cl+f4QIE 3 Ltn[cЬ^S |]*;^{+cDqtToV 4:ow d_Z֍g9H)(P h+ov G, 6ĸ!38e&A:]C}?Ũ7VOM^L ^\LP̢VHBڎJR.ż7ou²ٽ\j;֫1lKV~aMû٠qIZyHfW1n */IO^MbfZ.:HG"j4 ZJt|65ߎ.U$^v|?^ |-bAjwQR} &s>UFٹ~"QͥhZl}'(_zrUzFоtNӀo;p#x%:?sبʏ:?|(S͆$ m%]1._h!CwCσtձ%3PǿKmnFe*0 M2[8Y`wler'-R%Eg(k1ۗ wku<_8Ŀ( wI_DًhW{UyҶ 1uW-17^>\t\4v\bM"&z^糸70!NEOCSŪfQ]wjTh G'iKϖл}2~ s /U\2Y=K\* 4*%ZhLIo\=`1] 4$]|.XYؙoƩH^ݓ8bз9sRj TY=[o@36WYP?E3M,fd&NWd ?\ f>*0!іB^mJ̾a;׻I Kɠ*/q!pgkJGs/﷢]&eP#DB{Aa:O5 nvVASjaum2"Pz"'lt_beLm&Z7ג'i(n٣*`R^ij)bT뾢lGE+'W\`L*ZS)I4ðT(-Row(Uhr%F8 O+^\<a)s|x-9@p73'ЋQdZsQ^Un-T1?E˷v#A04?!Sr,.WzԂzm<*y##O#4RGmc)ʴwŽʼnCjm$85B2#8p&Эo>Q")_a#GQpqk.0,c~I;.[E=oϲ_?nq{#i+hxْ- pr)֩ @ynwE*w5?dUYJ~*EdPI!OKMS( ڔoJ7fHD r-V]dȤ~̠@wǏ&RV I &$($9w6ȜʺX2mpJD4U%geH?P{XJY<~sے]+}*wg,I4Q8ʌ]3bZ Ӈ'=|?۴(Hf[pZ4ؐ!w/\aw|9~Ev\TCj%]ZhBڹ)jvJZՃ7Wsp&ְ:1:, 3IRؒ>b/ .z.x6hW %J⒛0yEQK/}Fڄ2PXBZmNO-iV-F-hb{(ѯL sīw3Khp,^gynIJOqgEmJK%l޲X7q3!~e,"# LlӰşdLNF@3{?qj;$@v<+)a);LB7Up3OMe;Okٺƣ]Z_Zܹ 皧O|&z7I6wfTCE{3aiRޜ oM*D*bV6Y>=~ p(ZU. wSb8E6 oCX 4.(ZB~3qML׀V'*ʹWmт&#˿1 zu)^_MB1ךr2oA8^+3T_h&5.}/gc$xoNrP^`f`琦iQPHyEDo ^UoJJ3ނmZVB^ =(ۖ`Ήb(\ZwH91ͯ:@r@6LX0`̪'Έ&R_?I/ʪ߻`)gC#u 5]<8|]^ Qv.vr +kA5򡦟|" ŷ3Т'6rȌO{w4$Yk9Wa?R ;;?חL7,T39Ӽ17Icsz4).,xt!5~i#lymkA֬P*ϧY2F:,6T)Fʿ 9emQc#T8\ez{1 RB̢pU_8eAG< H5γfW`mE-K]Mݾ4',kV㗝} unŧԪ'|w]%!E#'HSՍ!Wn 5۠zH'ӶK0x6;A1׉W1;b{0ؙ`rLV:d8I&Ej+ij#;CeY`:"vjx̞̋%5GW `_E3Ω9알#x av:]^[*=^fX۽3Z(c_.,$/}~dhMTRfBr"yiS*wJK-[̮Ӓ, R1*N\i9wd`8رlBߩWMŦX]%EE4|p}N{"3><5W_E$I)bt-ii'j*zPA}WJ##WliUi\oM\^p%p>SPiMͅ%T*i`}92R5LȋB͡_8Azb} L;-d|3֓]:)F̒q{ izecٗk:8zf+ծbfgmBY@@dBwfjǔoNx8}@W,>)SS4 P'YOx0}k-aB T:G}23F6ٕNH⮎鬲D ôRxEmqoQ~ Ne ˉ9*^CpU0mr/t@;9mnm0#4' ɗv[Oa!} '|9yl}U..i K\sb>^ pntCBh݌A#;ѵ}'*YZ#6"'Kr[nWi)WRPT='Y`zg8h= vM+u#1~>\ȄzV=̡``J;?#s / xPk?oj#1d]S+|$"c ɵTQPΝSoW_cL0/ {xFNZh6δ>Vu=^èC zSaɦeDWK*;]^B8%8 ;쿾Rbq n,(tbHn{PP5^AW1 s*Sѐ'D!L 1J[zzZ2Un* ( !5eQ$[Oz c1`1V4I^m=yvG:cZW=W\hbu  nԔ`X(}70h}>[ F?#e w߀ړ^ +ZLrdm}f@6p+\.fGֹbW)JJrZ~pAwqQ4'Z)Ҭ6;O< :8xw8b/,S jKnȨͺ%ZSx󹳔7k|o::#ڐ$6+Òr^H1Y4ž~8_-}E݉7+"}(X$\RBsivbt"`;Xsk٘F!ORbIq=&R&Ŷu'uj"HJmvkϋ~; WI|SJ[1RI^O/5B:Uaogo*Wp,uݛ1\KiI ^8 ڧoA(]*{2KHZXK7|Vڟc0y{}b&35##^cgݔ8_bjIܨBQd(GxBЋe|{}O"y3dj!xNA*lQ<,Zl`A3=VlV^}!|r3KTRN݉xLC Q9[kW8BθŭEٸ\el_-~X0 @}aCoq`DTf? cJH׿Sd5 endstream endobj 26 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=['sv}o|7lԘ[kxBYwS0`Qٮi"m!-M5\F:i0U4e7;yO!(37Px\lCys0l+htcA620Ae L[7Њn& U RZ,cŶPSan aiqD4',IF\Bbu /y2RXR xHXc®eg:'c|0xq?S΃qI&'g΃y9 C :sǡ;(E8o"AJ'Ođ+6KIט'; ztFzKp&q"pBCT/9!ɩ~B}Rq҉TFIܨύ|nTs|neEAxwIyRm4͓_Oyf;s|KۄwU羷{lC'i=>vGr_$Ԩ endstream endobj 27 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOLg~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L> stream xmUMo0WxvHUdCmU^!1H#x?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOLg~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L> stream xmUMo0WxvH UdCmU^!1HDI8߯-@=ۙڽ١=?w]pwdV^ڑݧl#oxdGa0NiqF?Sր'YNR}{f{x2A! u xk={Exo"}Rɑ#x۠_J B C쩁b8!=%p&r"D9 Qg̑Tu+gGNN8O-(7ZRntH ʍ(7:hEњr1+w(O:͓.ndm'#Ʉ'> stream xmUMo0Wx$*B!qض*jn$H$3Ch<~3~~~ngjv9{C{K;K.k6㳵ችm#O7٦4\ =؏8ݿ߳4ւ8͌>sIvdXC6OLx9im$l6Dl_7ڞhz*{pɲ2kAʶC+mk>lpfIQTT?LA>J e .1PbpqH I$\kL8Hb،Shąr =z51XQg_s2Ē+ sC:CQ}.'c-BbOEu+Xg~:?aj B.U $,ĨAA 2A%%" 19hM_)ELN 1sR3fg =傸aCYjV^w&L= 3nqFyDŽϠOL5'pZx?i^x?IGO:~I4ϼt~3][gF~Qgf}fB3y,h3cL}f23{,g>KYN0`^ay{7)q W7:*ሟS`R̯ endstream endobj 32 0 obj << /Producer (pdfTeX-1.40.22) /Creator (TeX) /CreationDate (D:20220108192239Z) /ModDate (D:20220108192239Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) kpathsea version 6.3.4/dev) >> endobj 9 0 obj << /Type /ObjStm /N 19 /First 138 /Length 1507 /Filter /FlateDecode >> stream xڭXms7ίv:Fo3NiHbuܤZQ$];LpBZV>+t(&ddL*|ia҉eJ(PLi ߑ)%RfZ:B5XsL;mg{@aaF83J}6(;a_|]n?.u1+yUy%Iq=_إ>,_:jOXc 0]ZZR@]ϖMQK@lEfWnJٗjk9I}ͼ}@+m1o-s>Y{R5,Dǻ+ }B,մAža)lvHƈvrSÄ9+OIbg3JY" =xp弐=%QW 6ICV;C qջ1[ڠQZq'-hV[ѠU)b8 BDbr-( tZ2eQ[(Uzj]!E &$=R6~:H(]3hmc"6)Zoon/5YHڊhBaI/HR@@Syg0TM8ZIzg=$91y&-;)3msĠR J7bu2aVP\*4DWL+ȠgB}Ѣ! EG"P4 ^Ip2c9F73I.INEg,U [bz3ap=܁a=MO77uq YU6&%^~|k^)[>%/_%yw?&)ؕ.}/߿wk_.]2w)8gܿ>vDD|37|'_b+Tb9-_we]$ɒW ygmQDzR8hRx_a G L!bशamF|3 ]2_}1|{)wSJEx&~vVv噄SR[}5w1U3ΖjF*HqT@ byj߷Z >4D!t4 z랎-^(eU#:f_lx7'E|:.Mꠉ]4RhܠQ[h]m4Jnqcv1[hh:EAhoE*l-4q4ݒ[].ل|T/(_5GPmM/-K:; endstream endobj 33 0 obj << /Type /XRef /Index [0 34] /Size 34 /W [1 3 1] /Root 31 0 R /Info 32 0 R /ID [<31CA8C51FC4BDC7F5ADFE808C33BD176> <31CA8C51FC4BDC7F5ADFE808C33BD176>] /Length 120 /Filter /FlateDecode >> stream x= PD3;kq nN\}JB66P hp5fifaZڙ”fd&*I%6먉8Q8z-}ky2%֕Hxa endstream endobj startxref 65847 %%EOF rjson/inst/rpc_server/0000755000176200001440000000000013646044300014534 5ustar liggesusersrjson/inst/rpc_server/start_server0000644000176200001440000000043313646044300017202 0ustar liggesusers#!/bin/bash #R reads in R_PROFILE first - which will start up the server.r script, which then sources in anything from R_SERVER_SOURCE #R_SERVER_SOURCE is a colon delimited list of user source files to read in export R_PROFILE=server.r export R_SERVER_SOURCE=$1 r --slave --silent rjson/inst/rpc_server/start_server.bat0000644000176200001440000000046313646044300017752 0ustar liggesusers#R reads in R_PROFILE first - which will start up the server.r script, which then sources in anything from R_SERVER_SOURCE #R_SERVER_SOURCE is a colon delimited list of user source files to read in set R_PROFILE=server.r set R_SERVER_SOURCE=%1 set Path=.;C:\Program Files\R\R-2.9.0\bin\ r --slave --silent rjson/inst/rpc_server/server.r0000644000176200001440000000464613646044300016237 0ustar liggesusers#!/usr/bin/r --slave library( "rjson" ) library( "utils" ) #load in any extra sources source_files <- Sys.getenv( "R_SERVER_SOURCE" ) if( source_files != "" ) { source_files <- strsplit( source_files, ":" )[[1]] for( s in source_files ) source( s ) } #rpc is an R object corresponding to the parsed JSON-RPC call #returns: a JSON string with the results or error do.rpc <- function( rpc ) { rpc$params <- as.list( rpc$params ) result <- try( do.call( rpc$method, rpc$params ), silent = TRUE ) if( class( result ) == "try-error" ) { #TODO JSON-RPC defines several erorrs (call not found, invalid params, and server error) #if a call exists but fails, I am sending a procedure not found - when really it was found #but had an internal error. the data contains the actual error from R rpc_result <- list( jsonrpc = "2.0", error = list( code = -32601, message = "Procedure not found.", data = as.character( result ) ), id = rpc$id ) } else { #RPC call suceeded rpc_result <- list( jsonrpc = "2.0", result = result, id = rpc$id ) } #return the JSON string ret <- toJSON( rpc_result ) ret <- paste( ret, "\n", sep="" ) return( ret ) } #requires R 2.5.0 process_stdin <- file("stdin", blocking = T, open = "rb" ) json_parser <- newJSONParser() while( TRUE ) { #TODO read in data in larger chunks #when n > 1, readBin sometimes waits until a complete block of n chars is read - piping a flush doesn't always work when n > 1 s <- readBin( process_stdin, what = raw(), n = 1 ) #catch an OEF if( length( s ) == 0 ) break s <- rawToChar( s ) #add input to parser buffer json_parser$addData( s ) #Optimization: JSON RPC objects MUST terminate with a `}' - no need to check if the object can be parsed otherwise (since it can't) while( s == "}" ) { #try to extract any JSON objects rpc <- try( json_parser$getObject(), silent = TRUE ) if( class( rpc ) == "try-error" ) { #an error occured cat( '{"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}' ) #reset JSON parser json_parser <- newJSONParser() #clear anything on the input seek( process_stdin, where = 0, origin = "end" ) } else { #not enough data is in the buffer to extract a complete JSON object if( is.null( rpc ) ) break #a valid JSON object was extracted ret <- do.rpc( rpc ) cat( ret ) } } } #must quit here - otherwise, we get dropped into an R shell q() rjson/inst/rpc_server/some_script.r0000644000176200001440000000030713646044300017246 0ustar liggesusersrequire( "stats", quietly = TRUE ) user_func <- function( times ) { rep( "I am made of sugar", times ) } fib <- function( n ) { if( n < 2 ) return( 1 ) return( fib( n - 1 ) + fib( n - 2 ) ) } rjson/inst/unittests/0000755000176200001440000000000013646044300014424 5ustar liggesusersrjson/inst/unittests/runtests.r0000644000176200001440000000035013646044300016474 0ustar liggesuserslibrary( rjson ) library( RUnit ) path <- system.file( "unittests", package="rjson" ) test.suite <- defineTestSuite( "json unittests", dirs = path, testFileRegexp = "^test\\..*\\.[rR]$" ) runTestSuite( test.suite, verbose = 100 ) rjson/inst/unittests/test.unicode.r0000644000176200001440000000264513646044300017222 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.unicode <- function() { json <- "\"\"" x <- fromJSON( json ) checkIdentical( x, "" ) #test ASCII compatible utf8 json <- "\"\\u0041\\u006c\\u0065\\u0078\\u002B\"" x <- fromJSON( json ) checkIdentical( x, "Alex+", paste( "got:", x ) ) #test 2 byte utf8 unicode json <- "\"\\u018E\"" x <- fromJSON( json ) checkIdentical( x, "\u018E" ) checkTrue( all( charToRaw( x ) == c( 0xc6, 0x8e ) ) ) checkTrue( length( charToRaw( x ) ) == 2 ) #test 2 byte utf8 unicode json <- "\"\\u018E\"" x <- fromJSON( json ) checkIdentical( x, "\u018E" ) checkTrue( all( charToRaw( x ) == c( 0xc6, 0x8e ) ) ) checkTrue( length( charToRaw( x ) ) == 2 ) #test 3 byte utf8 unicode json <- "\"\\u3020\"" x <- fromJSON( json ) checkIdentical( x, "\u3020" ) checkTrue( all( charToRaw( x ) == c( 0xe3, 0x80, 0xa0 ) ) ) checkTrue( length( charToRaw( x ) ) == 3 ) #test 4 byte utf8 unicode roundtrip emo <- "\U1F600" checkIdentical(fromJSON(toJSON(emo)), emo) #x = newJSONParser() #x$addData( "\"\\u00" ) #checkTrue( is.null( x$getObject() ) ) #should be incomplete # test surrogate pair json <- "\"Anaheim \\ud83d\\ude0eDucks\"" x <- fromJSON( json ) checkIdentical( x, "Anaheim \xf0\x9f\x98\x8eDucks" ) x <- fromJSON("{\"a\":\"ï\"}") checkIdentical( x$a, "ï" ) x <- toJSON(x$a) checkIdentical( x, "\"\\u00ef\"" ) # note that re-encoded will use escaped unicode form } rjson/inst/unittests/test.strings.r0000644000176200001440000000106113646044300017254 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.strings <- function() { json <- "\"\"" x <- fromJSON( json ) checkIdentical( x, "" ) json <- "\"hello world\"" x <- fromJSON( json ) checkIdentical( x, "hello world" ) json <- "\"hello\\ttab\"" x <- fromJSON( json ) checkIdentical( x, "hello\ttab" ) json <- "\"hello\\\"quote\"" x <- fromJSON( json ) checkIdentical( x, "hello\"quote" ) #really long string s <- paste( 1:100000, collapse = "-" ) json <- paste("\"", s, "\"", sep="" ) x <- fromJSON( json ) checkIdentical( x, s ) } rjson/inst/unittests/test.crash.r0000644000176200001440000000056713646044300016675 0ustar liggesusers test.issue24 <- function() { # json unicode is escaped as \u018E; not uppercase \U bad_json <- "\"\\U018E\"" x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) # TODO validate error message is ok: should contain "" } rjson/inst/unittests/test.twitter.r0000644000176200001440000002133613646044300017274 0ustar liggesusers test.twitter <- function() { x <- "{\"results\":[{\"profile_image_url\":\"http://a1.twimg.com/profile_images/904661361/IMG00034-20100515-1550_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:21 +0000\",\"from_user\":\"YOtwittaDADDY\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"#random no basic bitch is safe on twitter! If I dont get you and tear you apart, @heartless_dex or @chefhomeboyjd will\",\"id\":20267740998,\"from_user_id\":108000717,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://mobile.twitter.com" rel="nofollow">Mobile Web</a>\"},{\"profile_image_url\":\"http://a2.twimg.com/profile_images/839850446/n835436_43297164_3982_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:20 +0000\",\"from_user\":\"vmsweet123\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"RT @richard_solo: Giveaway thru: 8/09. Win RichardSolo Noise Canceling Headphones. Follow @Richard_Solo & retweet http://bit.ly/bD8ezA\",\"id\":20267739854,\"from_user_id\":12289632,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a3.twimg.com/profile_images/430611695/sm_profile_square_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:20 +0000\",\"from_user\":\"ScottMcLemore\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":85038,\"text\":\"@alevin Thanks also for all the insight tonight! Trying to DM you but it says you're not following me. What's your other twitter name?\",\"id\":20267739573,\"from_user_id\":2032996,\"to_user\":\"alevin\",\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://www.tweetdeck.com/" rel="nofollow">TweetDeck</a>\"},{\"profile_image_url\":\"http://a0.twimg.com/profile_images/1083435260/black_rock_ramona_normal.png\",\"created_at\":\"Wed, 04 Aug 2010 01:45:18 +0000\",\"from_user\":\"zetacoes\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":70577019,\"text\":\"@xjazzy13 http://twitter.com/zetacoes/status/20254842627\",\"id\":20267738141,\"from_user_id\":1876460,\"to_user\":\"xJazzy13\",\"geo\":null,\"source\":\"<a href="http://www.echofon.com/" rel="nofollow">Echofon</a>\"},{\"profile_image_url\":\"http://a1.twimg.com/profile_images/350332457/110542_332748125_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:18 +0000\",\"from_user\":\"pepotan\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"\\u30de\\u30af\\u30c9\\u3082\\u3001twitter\\uff0b\\u30d6\\u30e9\\u30a6\\u30b6\\u30b2\\u30fc\\u3067\\u3001\\u30d7\\u30ed\\u30e2\\u3002 \\u30b3\\u30f3\\u30c6\\u30f3\\u30c4\\u306e\\u5185\\u5bb9\\u306f\\u3044\\u307e\\u3044\\u3061\\u3060\\u3051\\u3069\\u3001\\u5e83\\u544a\\u4ee3\\u7406\\u5e97\\u3068\\u5236\\u4f5c\\u4f1a\\u793e\\u304c\\u5132\\u304b\\u308b\\u4ed5\\u7d44\\u307f\\uff57 http://bit.ly/dtfwgs #McD_ckn\",\"id\":20267737693,\"from_user_id\":7864312,\"geo\":null,\"iso_language_code\":\"ja\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a3.twimg.com/profile_images/946831163/113082922_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:18 +0000\",\"from_user\":\"d_davidshi\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"HIT - HOW DO YOU GET 100 FREE TWITTER FOLLOWERS? http://tinyurl.com/32n9eda\",\"id\":20267737116,\"from_user_id\":82204650,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://dev.twitter.com/" rel="nofollow">API</a>\"},{\"profile_image_url\":\"http://a3.twimg.com/profile_images/387119699/Picture_or_Video_002_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:17 +0000\",\"from_user\":\"aestrap\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"Whoa! The twitter site changed on my phone.\",\"id\":20267736765,\"from_user_id\":2258787,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://mobile.twitter.com" rel="nofollow">Mobile Web</a>\"},{\"profile_image_url\":\"http://a1.twimg.com/profile_images/1070967993/J_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:17 +0000\",\"from_user\":\"jinnli\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":2408767,\"text\":\"@chrisoul \\u6628\\u5929\\u4e0a\\u6d77\\u65b9\\u9762\\u6765\\u62a5\\uff0cTwitter.com \\u7684\\u57df\\u540d\\u4e5f\\u89e3\\u5c01\\u4e86\\uff08\\u4f46\\u662f\\u6709\\u5927\\u90e8\\u5206IP\\u6254\\u5728\\u5c01\\uff09\\u3002\",\"id\":20267736571,\"from_user_id\":3150412,\"to_user\":\"chrisoul\",\"geo\":null,\"iso_language_code\":\"zh\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a1.twimg.com/profile_images/1077123381/20100714_000933_140_normal.gif\",\"created_at\":\"Wed, 04 Aug 2010 01:45:16 +0000\",\"from_user\":\"keshasuja\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"RT se Raul Gil acaba de visitar seu twitter - "Twitter is over capacity." - Minha baleia \\u00e9 MACHO (:\",\"id\":20267735081,\"from_user_id\":103469135,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a0.twimg.com/profile_images/1094336724/twitter_icon_from_annie_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:13 +0000\",\"from_user\":\"ColtChambers\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":108642403,\"text\":\"@shawnmock132 they dont have twitter\",\"id\":20267732425,\"from_user_id\":34795175,\"to_user\":\"shawnmock132\",\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a2.twimg.com/profile_images/1078874562/Foto_47_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:13 +0000\",\"from_user\":\"Sjoerd\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":16735834,\"text\":\"@Jarlrule @mitsuo @wilbertleering @zapache @ock12 @ehpo @henneaux no 4square!! SMS Twitter en #ichannel... Vanuit een dampend kroatie\",\"id\":20267732273,\"from_user_id\":905717,\"to_user\":\"Jarlrule\",\"geo\":{\"type\":\"Point\",\"coordinates\":[44.1138,15.2333]},\"iso_language_code\":\"nl\",\"source\":\"<a href="http://twitter.com/" rel="nofollow">Twitter for iPhone</a>\"},{\"profile_image_url\":\"http://a3.twimg.com/profile_images/576571611/Smoked_Tacos_2_jpg_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:13 +0000\",\"from_user\":\"creep4ward\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"Giveaway thru: 8/09. Win RichardSolo Noise Canceling Headphones. Follow @Richard_Solo & retweet http://bit.ly/bD8ezA\",\"id\":20267732038,\"from_user_id\":85290503,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a2.twimg.com/profile_images/1005104638/Picture_310re_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:13 +0000\",\"from_user\":\"LADiixBANKS\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"Ahhhh so matt finally got yu on the waveee! Lol RT @RitzNOCrackers: @myniggaLIP . ----> @LADiixBANKS guess who has a twitter JIMMY LMAO\",\"id\":20267731542,\"from_user_id\":23608569,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://seesmic.com/seesmic_mobile/android/" rel="nofollow">Seesmic for Android</a>\"},{\"profile_image_url\":\"http://a2.twimg.com/profile_images/1093270058/never_let_you_go3_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:11 +0000\",\"from_user\":\"DenverBeliebers\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"getting off twitter!!!\",\"id\":20267729271,\"from_user_id\":80666587,\"geo\":null,\"iso_language_code\":\"no\",\"source\":\"<a href="http://twitter.com/">web</a>\"},{\"profile_image_url\":\"http://a2.twimg.com/profile_images/1094119234/image_normal.jpg\",\"created_at\":\"Wed, 04 Aug 2010 01:45:10 +0000\",\"from_user\":\"overDRESSed_1\",\"metadata\":{\"result_type\":\"recent\"},\"to_user_id\":null,\"text\":\"Omg!!!!!! Twitter for iPhone won't work on my phone!!!!!! Having a meltdown!!!!\",\"id\":20267728785,\"from_user_id\":53192938,\"geo\":null,\"iso_language_code\":\"en\",\"source\":\"<a href="http://www.echofon.com/" rel="nofollow">Echofon</a>\"}],\"max_id\":20267740998,\"since_id\":0,\"refresh_url\":\"?since_id=20267740998&q=twitter\",\"next_page\":\"?page=2&max_id=20267740998&q=twitter\",\"results_per_page\":15,\"page\":1,\"completed_in\":0.017069,\"query\":\"twitter\"}" jdata <- fromJSON( x ) checkTrue( is.list( jdata ) ) } rjson/inst/unittests/test.list.r0000644000176200001440000000304313646044300016540 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.list <- function() { json <- "{}" x <- fromJSON( json ) checkIdentical( x, list() ) failing_json <- c( "{", "{a:5}", "{\"a:5}", "{\"a\":", "{\"a\":5", "{\"a\":}", "{123:false}", "{\"a\":unquoted}" ) for( bad_json in failing_json ) { x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) } json <- "{\"a\":5}" x <- fromJSON( json ) checkIdentical( x, list( a = 5 ) ) json <- "{\"a\":5,\"b\":10}" x <- fromJSON( json ) checkIdentical( x, list( a = 5, b = 10 ) ) json <- "{\"a\":5,\"b\":10, \"clap\":[true,false,false]}" x <- fromJSON( json ) correct <- list( a = 5, b = 10, clap = c(TRUE,FALSE,FALSE) ) checkIdentical( x, correct ) checkIdentical( x[["clap"]], correct[["clap"]] ) } test.nestedlist <- function() { json <- "[\"a\", [\"b\", \"c\"] ]" x <- fromJSON( json ) correct <- list( "a", c( "b", "c" ) ) checkIdentical( x, correct ) checkIdentical( x[[2]], correct[[2]] ) } test.bad.list <- function() { bad_json <- "{\"a\": 123,}" x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) } test.unsupported.sexp <- function() { x <- fromJSON('{ "key":[ { "foo":"bar" }, { "bah":"baz" }] }') correct <- list( key = list( list( foo = "bar" ), list( bah = "baz" ) )) checkIdentical( x, correct ) } test.rejected.comma <- function() { bad_json = '{ "key":[ { "foo":"bar" }, { "bah":"baz" },] }' x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) } rjson/inst/unittests/test.number.r0000644000176200001440000000151713646044300017061 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.number <- function() { json <- "0" x <- fromJSON( json ) checkIdentical( x, 0 ) json <- "-0" x <- fromJSON( json ) checkIdentical( x, 0 ) json <- "15.05" x <- fromJSON( json ) checkIdentical( x, 15.05 ) json <- "-10.3" x <- fromJSON( json ) checkIdentical( x, -10.3 ) json <- "-0.3" x <- fromJSON( json ) checkIdentical( x, -0.3 ) json <- "0.3e3" x <- fromJSON( json ) checkIdentical( x, 300 ) json <- "0.2e+4" x <- fromJSON( json ) checkIdentical( x, 2000 ) json <- "0.1e-4" x <- fromJSON( json ) checkIdentical( x, 0.00001 ) # TODO check for invalid entries like 0.1e-4.5? failing_json <- c( ".3", "-.3", "0.1e" ) for( bad_json in failing_json ) { x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) } } rjson/inst/unittests/test.factors.r0000644000176200001440000000032413646044300017225 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.factors <- function() { x <- as.factor(c("abc", "abc", "dog", "abc")) json <- toJSON( x ) checkIdentical( json, "[\"abc\",\"abc\",\"dog\",\"abc\"]" ) } rjson/inst/unittests/test.largedata.r0000644000176200001440000034315113646044300017520 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.large.data <- function() { json <- '{"15060":{"Atom_chem_shift":[{"category":"_Atom_chem_shift","data":[["1",".","1","1","20","20","LEU","H","H","1","8.149",".",".","1",".",".",".",".","20","LEU","HN",".","15060","1"],["2",".","1","1","20","20","LEU","CA","C","13","56.016",".",".","1",".",".",".",".","20","LEU","CA",".","15060","1"],["3",".","1","1","20","20","LEU","CB","C","13","42.180",".",".","1",".",".",".",".","20","LEU","CB",".","15060","1"],["4",".","1","1","20","20","LEU","N","N","15","122.739",".",".","1",".",".",".",".","20","LEU","N",".","15060","1"],["5",".","1","1","21","21","VAL","H","H","1","8.048",".",".","1",".",".",".",".","21","VAL","HN",".","15060","1"],["6",".","1","1","21","21","VAL","CA","C","13","63.412",".",".","1",".",".",".",".","21","VAL","CA",".","15060","1"],["7",".","1","1","21","21","VAL","CB","C","13","32.236",".",".","1",".",".",".",".","21","VAL","CB",".","15060","1"],["8",".","1","1","21","21","VAL","N","N","15","120.251",".",".","1",".",".",".",".","21","VAL","N",".","15060","1"],["9",".","1","1","22","22","THR","H","H","1","8.032",".",".","1",".",".",".",".","22","THR","HN",".","15060","1"],["10",".","1","1","22","22","THR","HA","H","1","4.310",".",".","1",".",".",".",".","22","THR","HA",".","15060","1"],["11",".","1","1","22","22","THR","HG21","H","1","1.240",".",".","1",".",".",".",".","22","THR","HG2",".","15060","1"],["12",".","1","1","22","22","THR","HG22","H","1","1.240",".",".","1",".",".",".",".","22","THR","HG2",".","15060","1"],["13",".","1","1","22","22","THR","HG23","H","1","1.240",".",".","1",".",".",".",".","22","THR","HG2",".","15060","1"],["14",".","1","1","22","22","THR","CA","C","13","63.154",".",".","1",".",".",".",".","22","THR","CA",".","15060","1"],["15",".","1","1","22","22","THR","CB","C","13","69.934",".",".","1",".",".",".",".","22","THR","CB",".","15060","1"],["16",".","1","1","22","22","THR","CG2","C","13","21.960",".",".","1",".",".",".",".","22","THR","CG2",".","15060","1"],["17",".","1","1","22","22","THR","N","N","15","116.327",".",".","1",".",".",".",".","22","THR","N",".","15060","1"],["18",".","1","1","23","23","LYS","HA","H","1","4.160",".",".","1",".",".",".",".","23","LYS","HA",".","15060","1"],["19",".","1","1","23","23","LYS","HB2","H","1","1.870",".",".","1",".",".",".",".","23","LYS","HB1",".","15060","1"],["20",".","1","1","23","23","LYS","HB3","H","1","1.870",".",".","1",".",".",".",".","23","LYS","HB2",".","15060","1"],["21",".","1","1","23","23","LYS","HG2","H","1","1.680",".",".","1",".",".",".",".","23","LYS","HG1",".","15060","1"],["22",".","1","1","23","23","LYS","HG3","H","1","1.680",".",".","1",".",".",".",".","23","LYS","HG2",".","15060","1"],["23",".","1","1","23","23","LYS","HD2","H","1","1.410",".",".","2",".",".",".",".","23","LYS","HD1",".","15060","1"],["24",".","1","1","23","23","LYS","HD3","H","1","1.500",".",".","2",".",".",".",".","23","LYS","HD2",".","15060","1"],["25",".","1","1","23","23","LYS","HE2","H","1","2.980",".",".","1",".",".",".",".","23","LYS","HE1",".","15060","1"],["26",".","1","1","23","23","LYS","HE3","H","1","2.980",".",".","1",".",".",".",".","23","LYS","HE2",".","15060","1"],["27",".","1","1","23","23","LYS","CA","C","13","58.450",".",".","1",".",".",".",".","23","LYS","CA",".","15060","1"],["28",".","1","1","23","23","LYS","CB","C","13","32.578",".",".","1",".",".",".",".","23","LYS","CB",".","15060","1"],["29",".","1","1","23","23","LYS","CG","C","13","29.110",".",".","1",".",".",".",".","23","LYS","CG",".","15060","1"],["30",".","1","1","23","23","LYS","CD","C","13","24.850",".",".","1",".",".",".",".","23","LYS","CD",".","15060","1"],["31",".","1","1","23","23","LYS","CE","C","13","41.670",".",".","1",".",".",".",".","23","LYS","CE",".","15060","1"],["32",".","1","1","24","24","ILE","H","H","1","8.033",".",".","1",".",".",".",".","24","ILE","HN",".","15060","1"],["33",".","1","1","24","24","ILE","HA","H","1","3.950",".",".","1",".",".",".",".","24","ILE","HA",".","15060","1"],["34",".","1","1","24","24","ILE","HG21","H","1","0.920",".",".","1",".",".",".",".","24","ILE","HG2",".","15060","1"],["35",".","1","1","24","24","ILE","HG22","H","1","0.920",".",".","1",".",".",".",".","24","ILE","HG2",".","15060","1"],["36",".","1","1","24","24","ILE","HG23","H","1","0.920",".",".","1",".",".",".",".","24","ILE","HG2",".","15060","1"],["37",".","1","1","24","24","ILE","HD11","H","1","0.863",".",".","1",".",".",".",".","24","ILE","HD1",".","15060","1"],["38",".","1","1","24","24","ILE","HD12","H","1","0.863",".",".","1",".",".",".",".","24","ILE","HD1",".","15060","1"],["39",".","1","1","24","24","ILE","HD13","H","1","0.863",".",".","1",".",".",".",".","24","ILE","HD1",".","15060","1"],["40",".","1","1","24","24","ILE","CA","C","13","63.567",".",".","1",".",".",".",".","24","ILE","CA",".","15060","1"],["41",".","1","1","24","24","ILE","CB","C","13","38.124",".",".","1",".",".",".",".","24","ILE","CB",".","15060","1"],["42",".","1","1","24","24","ILE","CG2","C","13","17.230",".",".","1",".",".",".",".","24","ILE","CG2",".","15060","1"],["43",".","1","1","24","24","ILE","CD1","C","13","13.140",".",".","1",".",".",".",".","24","ILE","CD1",".","15060","1"],["44",".","1","1","24","24","ILE","N","N","15","119.731",".",".","1",".",".",".",".","24","ILE","N",".","15060","1"],["45",".","1","1","25","25","GLN","H","H","1","8.021",".",".","1",".",".",".",".","25","GLN","HN",".","15060","1"],["46",".","1","1","25","25","GLN","HA","H","1","4.060",".",".","1",".",".",".",".","25","GLN","HA",".","15060","1"],["47",".","1","1","25","25","GLN","HB2","H","1","2.420",".",".","1",".",".",".",".","25","GLN","HB1",".","15060","1"],["48",".","1","1","25","25","GLN","HB3","H","1","2.420",".",".","1",".",".",".",".","25","GLN","HB2",".","15060","1"],["49",".","1","1","25","25","GLN","HE21","H","1","7.703",".",".","2",".",".",".",".","25","GLN","HE21",".","15060","1"],["50",".","1","1","25","25","GLN","HE22","H","1","6.839",".",".","2",".",".",".",".","25","GLN","HE22",".","15060","1"],["51",".","1","1","25","25","GLN","C","C","13","178.193",".",".","1",".",".",".",".","25","GLN","C",".","15060","1"],["52",".","1","1","25","25","GLN","CA","C","13","58.346",".",".","1",".",".",".",".","25","GLN","CA",".","15060","1"],["53",".","1","1","25","25","GLN","CB","C","13","28.102",".",".","1",".",".",".",".","25","GLN","CB",".","15060","1"],["54",".","1","1","25","25","GLN","CG","C","13","33.570",".",".","1",".",".",".",".","25","GLN","CG",".","15060","1"],["55",".","1","1","25","25","GLN","N","N","15","121.400",".",".","1",".",".",".",".","25","GLN","N",".","15060","1"],["56",".","1","1","25","25","GLN","NE2","N","15","112.158",".",".","1",".",".",".",".","25","GLN","NE2",".","15060","1"],["57",".","1","1","26","26","GLN","H","H","1","8.313",".",".","1",".",".",".",".","26","GLN","HN",".","15060","1"],["58",".","1","1","26","26","GLN","HA","H","1","4.110",".",".","1",".",".",".",".","26","GLN","HA",".","15060","1"],["59",".","1","1","26","26","GLN","HB2","H","1","2.560",".",".","2",".",".",".",".","26","GLN","HB1",".","15060","1"],["60",".","1","1","26","26","GLN","HB3","H","1","2.420",".",".","2",".",".",".",".","26","GLN","HB2",".","15060","1"],["61",".","1","1","26","26","GLN","HE21","H","1","7.393",".",".","2",".",".",".",".","26","GLN","HE21",".","15060","1"],["62",".","1","1","26","26","GLN","HE22","H","1","6.770",".",".","2",".",".",".",".","26","GLN","HE22",".","15060","1"],["63",".","1","1","26","26","GLN","C","C","13","177.820",".",".","1",".",".",".",".","26","GLN","C",".","15060","1"],["64",".","1","1","26","26","GLN","CA","C","13","58.680",".",".","1",".",".",".",".","26","GLN","CA",".","15060","1"],["65",".","1","1","26","26","GLN","CB","C","13","28.504",".",".","1",".",".",".",".","26","GLN","CB",".","15060","1"],["66",".","1","1","26","26","GLN","CG","C","13","34.510",".",".","1",".",".",".",".","26","GLN","CG",".","15060","1"],["67",".","1","1","26","26","GLN","N","N","15","119.279",".",".","1",".",".",".",".","26","GLN","N",".","15060","1"],["68",".","1","1","26","26","GLN","NE2","N","15","111.116",".",".","1",".",".",".",".","26","GLN","NE2",".","15060","1"],["69",".","1","1","27","27","GLU","H","H","1","8.197",".",".","1",".",".",".",".","27","GLU","HN",".","15060","1"],["70",".","1","1","27","27","GLU","HA","H","1","4.097",".",".","1",".",".",".",".","27","GLU","HA",".","15060","1"],["71",".","1","1","27","27","GLU","HB2","H","1","2.290",".",".","2",".",".",".",".","27","GLU","HB1",".","15060","1"],["72",".","1","1","27","27","GLU","HB3","H","1","2.500",".",".","2",".",".",".",".","27","GLU","HB2",".","15060","1"],["73",".","1","1","27","27","GLU","C","C","13","179.687",".",".","1",".",".",".",".","27","GLU","C",".","15060","1"],["74",".","1","1","27","27","GLU","CA","C","13","59.200",".",".","1",".",".",".",".","27","GLU","CA",".","15060","1"],["75",".","1","1","27","27","GLU","CB","C","13","29.287",".",".","1",".",".",".",".","27","GLU","CB",".","15060","1"],["76",".","1","1","27","27","GLU","CG","C","13","36.580",".",".","1",".",".",".",".","27","GLU","CG",".","15060","1"],["77",".","1","1","27","27","GLU","N","N","15","119.648",".",".","1",".",".",".",".","27","GLU","N",".","15060","1"],["78",".","1","1","28","28","ILE","H","H","1","8.021",".",".","1",".",".",".",".","28","ILE","HN",".","15060","1"],["79",".","1","1","28","28","ILE","HA","H","1","4.000",".",".","1",".",".",".",".","28","ILE","HA",".","15060","1"],["80",".","1","1","28","28","ILE","HG21","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HG2",".","15060","1"],["81",".","1","1","28","28","ILE","HG22","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HG2",".","15060","1"],["82",".","1","1","28","28","ILE","HG23","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HG2",".","15060","1"],["83",".","1","1","28","28","ILE","HD11","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HD1",".","15060","1"],["84",".","1","1","28","28","ILE","HD12","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HD1",".","15060","1"],["85",".","1","1","28","28","ILE","HD13","H","1","0.950",".",".","1",".",".",".",".","28","ILE","HD1",".","15060","1"],["86",".","1","1","28","28","ILE","C","C","13","178.465",".",".","1",".",".",".",".","28","ILE","C",".","15060","1"],["87",".","1","1","28","28","ILE","CA","C","13","65.110",".",".","1",".",".",".",".","28","ILE","CA",".","15060","1"],["88",".","1","1","28","28","ILE","CB","C","13","37.963",".",".","1",".",".",".",".","28","ILE","CB",".","15060","1"],["89",".","1","1","28","28","ILE","CG2","C","13","17.510",".",".","1",".",".",".",".","28","ILE","CG2",".","15060","1"],["90",".","1","1","28","28","ILE","CD1","C","13","13.460",".",".","1",".",".",".",".","28","ILE","CD1",".","15060","1"],["91",".","1","1","28","28","ILE","N","N","15","121.869",".",".","1",".",".",".",".","28","ILE","N",".","15060","1"],["92",".","1","1","29","29","GLU","H","H","1","8.269",".",".","1",".",".",".",".","29","GLU","HN",".","15060","1"],["93",".","1","1","29","29","GLU","HA","H","1","4.020",".",".","1",".",".",".",".","29","GLU","HA",".","15060","1"],["94",".","1","1","29","29","GLU","HB2","H","1","2.000",".",".","2",".",".",".",".","29","GLU","HB1",".","15060","1"],["95",".","1","1","29","29","GLU","HB3","H","1","1.880",".",".","2",".",".",".",".","29","GLU","HB2",".","15060","1"],["96",".","1","1","29","29","GLU","HG2","H","1","2.200",".",".","2",".",".",".",".","29","GLU","HG1",".","15060","1"],["97",".","1","1","29","29","GLU","HG3","H","1","2.370",".",".","2",".",".",".",".","29","GLU","HG2",".","15060","1"],["98",".","1","1","29","29","GLU","C","C","13","179.964",".",".","1",".",".",".",".","29","GLU","C",".","15060","1"],["99",".","1","1","29","29","GLU","CA","C","13","59.510",".",".","1",".",".",".",".","29","GLU","CA",".","15060","1"],["100",".","1","1","29","29","GLU","CB","C","13","29.289",".",".","1",".",".",".",".","29","GLU","CB",".","15060","1"],["101",".","1","1","29","29","GLU","CG","C","13","36.580",".",".","1",".",".",".",".","29","GLU","CG",".","15060","1"],["102",".","1","1","29","29","GLU","N","N","15","120.647",".",".","1",".",".",".",".","29","GLU","N",".","15060","1"],["103",".","1","1","30","30","ALA","H","H","1","8.280",".",".","1",".",".",".",".","30","ALA","HN",".","15060","1"],["104",".","1","1","30","30","ALA","HA","H","1","3.840",".",".","1",".",".",".",".","30","ALA","HA",".","15060","1"],["105",".","1","1","30","30","ALA","HB1","H","1","1.428",".",".","1",".",".",".",".","30","ALA","HB",".","15060","1"],["106",".","1","1","30","30","ALA","HB2","H","1","1.428",".",".","1",".",".",".",".","30","ALA","HB",".","15060","1"],["107",".","1","1","30","30","ALA","HB3","H","1","1.428",".",".","1",".",".",".",".","30","ALA","HB",".","15060","1"],["108",".","1","1","30","30","ALA","C","C","13","179.438",".",".","1",".",".",".",".","30","ALA","C",".","15060","1"],["109",".","1","1","30","30","ALA","CA","C","13","54.688",".",".","1",".",".",".",".","30","ALA","CA",".","15060","1"],["110",".","1","1","30","30","ALA","CB","C","13","18.428",".",".","1",".",".",".",".","30","ALA","CB",".","15060","1"],["111",".","1","1","30","30","ALA","N","N","15","122.373",".",".","1",".",".",".",".","30","ALA","N",".","15060","1"],["112",".","1","1","31","31","LYS","H","H","1","7.997",".",".","1",".",".",".",".","31","LYS","HN",".","15060","1"],["113",".","1","1","31","31","LYS","HA","H","1","4.010",".",".","1",".",".",".",".","31","LYS","HA",".","15060","1"],["114",".","1","1","31","31","LYS","HB2","H","1","1.970",".",".","2",".",".",".",".","31","LYS","HB1",".","15060","1"],["115",".","1","1","31","31","LYS","HB3","H","1","2.020",".",".","2",".",".",".",".","31","LYS","HB2",".","15060","1"],["116",".","1","1","31","31","LYS","HG2","H","1","0.866",".",".","2",".",".",".",".","31","LYS","HG1",".","15060","1"],["117",".","1","1","31","31","LYS","HG3","H","1","1.180",".",".","2",".",".",".",".","31","LYS","HG2",".","15060","1"],["118",".","1","1","31","31","LYS","HD2","H","1","1.530",".",".","2",".",".",".",".","31","LYS","HD1",".","15060","1"],["119",".","1","1","31","31","LYS","HD3","H","1","1.470",".",".","2",".",".",".",".","31","LYS","HD2",".","15060","1"],["120",".","1","1","31","31","LYS","HE2","H","1","2.990",".",".","2",".",".",".",".","31","LYS","HE1",".","15060","1"],["121",".","1","1","31","31","LYS","HE3","H","1","2.870",".",".","2",".",".",".",".","31","LYS","HE2",".","15060","1"],["122",".","1","1","31","31","LYS","CA","C","13","59.510",".",".","1",".",".",".",".","31","LYS","CA",".","15060","1"],["123",".","1","1","31","31","LYS","CB","C","13","32.153",".",".","1",".",".",".",".","31","LYS","CB",".","15060","1"],["124",".","1","1","31","31","LYS","CG","C","13","28.700",".",".","1",".",".",".",".","31","LYS","CG",".","15060","1"],["125",".","1","1","31","31","LYS","CD","C","13","25.070",".",".","1",".",".",".",".","31","LYS","CD",".","15060","1"],["126",".","1","1","31","31","LYS","CE","C","13","42.080",".",".","1",".",".",".",".","31","LYS","CE",".","15060","1"],["127",".","1","1","31","31","LYS","N","N","15","120.697",".",".","1",".",".",".",".","31","LYS","N",".","15060","1"],["128",".","1","1","32","32","GLU","H","H","1","8.236",".",".","1",".",".",".",".","32","GLU","HN",".","15060","1"],["129",".","1","1","32","32","GLU","HA","H","1","4.080",".",".","1",".",".",".",".","32","GLU","HA",".","15060","1"],["130",".","1","1","32","32","GLU","HB2","H","1","2.110",".",".","1",".",".",".",".","32","GLU","HB1",".","15060","1"],["131",".","1","1","32","32","GLU","HB3","H","1","2.110",".",".","1",".",".",".",".","32","GLU","HB2",".","15060","1"],["132",".","1","1","32","32","GLU","HG2","H","1","2.310",".",".","2",".",".",".",".","32","GLU","HG1",".","15060","1"],["133",".","1","1","32","32","GLU","HG3","H","1","2.550",".",".","2",".",".",".",".","32","GLU","HG2",".","15060","1"],["134",".","1","1","32","32","GLU","CA","C","13","59.970",".",".","1",".",".",".",".","32","GLU","CA",".","15060","1"],["135",".","1","1","32","32","GLU","CB","C","13","28.940",".",".","1",".",".",".",".","32","GLU","CB",".","15060","1"],["136",".","1","1","32","32","GLU","CG","C","13","36.728",".",".","1",".",".",".",".","32","GLU","CG",".","15060","1"],["137",".","1","1","32","32","GLU","N","N","15","118.525",".",".","1",".",".",".",".","32","GLU","N",".","15060","1"],["138",".","1","1","33","33","ALA","H","H","1","7.897",".",".","1",".",".",".",".","33","ALA","HN",".","15060","1"],["139",".","1","1","33","33","ALA","HA","H","1","3.840",".",".","1",".",".",".",".","33","ALA","HA",".","15060","1"],["140",".","1","1","33","33","ALA","HB1","H","1","1.451",".",".","1",".",".",".",".","33","ALA","HB",".","15060","1"],["141",".","1","1","33","33","ALA","HB2","H","1","1.451",".",".","1",".",".",".",".","33","ALA","HB",".","15060","1"],["142",".","1","1","33","33","ALA","HB3","H","1","1.451",".",".","1",".",".",".",".","33","ALA","HB",".","15060","1"],["143",".","1","1","33","33","ALA","C","C","13","179.722",".",".","1",".",".",".",".","33","ALA","C",".","15060","1"],["144",".","1","1","33","33","ALA","CA","C","13","55.470",".",".","1",".",".",".",".","33","ALA","CA",".","15060","1"],["145",".","1","1","33","33","ALA","CB","C","13","17.690",".",".","1",".",".",".",".","33","ALA","CB",".","15060","1"],["146",".","1","1","33","33","ALA","N","N","15","121.629",".",".","1",".",".",".",".","33","ALA","N",".","15060","1"],["147",".","1","1","34","34","CYS","H","H","1","8.451",".",".","1",".",".",".",".","34","CYS","HN",".","15060","1"],["148",".","1","1","34","34","CYS","HB2","H","1","3.280",".",".","2",".",".",".",".","34","CYS","HB1",".","15060","1"],["149",".","1","1","34","34","CYS","HB3","H","1","2.790",".",".","2",".",".",".",".","34","CYS","HB2",".","15060","1"],["150",".","1","1","34","34","CYS","C","C","13","176.650",".",".","1",".",".",".",".","34","CYS","C",".","15060","1"],["151",".","1","1","34","34","CYS","CA","C","13","65.657",".",".","1",".",".",".",".","34","CYS","CA",".","15060","1"],["152",".","1","1","34","34","CYS","CB","C","13","27.250",".",".","1",".",".",".",".","34","CYS","CB",".","15060","1"],["153",".","1","1","34","34","CYS","N","N","15","116.884",".",".","1",".",".",".",".","34","CYS","N",".","15060","1"],["154",".","1","1","35","35","ASP","H","H","1","8.796",".",".","1",".",".",".",".","35","ASP","HN",".","15060","1"],["155",".","1","1","35","35","ASP","HA","H","1","4.370",".",".","1",".",".",".",".","35","ASP","HA",".","15060","1"],["156",".","1","1","35","35","ASP","HB2","H","1","2.940",".",".","2",".",".",".",".","35","ASP","HB1",".","15060","1"],["157",".","1","1","35","35","ASP","HB3","H","1","2.710",".",".","2",".",".",".",".","35","ASP","HB2",".","15060","1"],["158",".","1","1","35","35","ASP","CA","C","13","57.540",".",".","1",".",".",".",".","35","ASP","CA",".","15060","1"],["159",".","1","1","35","35","ASP","CB","C","13","39.903",".",".","1",".",".",".",".","35","ASP","CB",".","15060","1"],["160",".","1","1","35","35","ASP","N","N","15","120.621",".",".","1",".",".",".",".","35","ASP","N",".","15060","1"],["161",".","1","1","36","36","TRP","H","H","1","8.492",".",".","1",".",".",".",".","36","TRP","HN",".","15060","1"],["162",".","1","1","36","36","TRP","HA","H","1","4.010",".",".","1",".",".",".",".","36","TRP","HA",".","15060","1"],["163",".","1","1","36","36","TRP","HB2","H","1","3.369",".",".","2",".",".",".",".","36","TRP","HB1",".","15060","1"],["164",".","1","1","36","36","TRP","HB3","H","1","3.508",".",".","2",".",".",".",".","36","TRP","HB2",".","15060","1"],["165",".","1","1","36","36","TRP","HD1","H","1","7.312",".",".","1",".",".",".",".","36","TRP","HD1",".","15060","1"],["166",".","1","1","36","36","TRP","HE1","H","1","10.148",".",".","1",".",".",".",".","36","TRP","HE1",".","15060","1"],["167",".","1","1","36","36","TRP","HE3","H","1","6.888",".",".","1",".",".",".",".","36","TRP","HE3",".","15060","1"],["168",".","1","1","36","36","TRP","HZ2","H","1","7.500",".",".","1",".",".",".",".","36","TRP","HZ2",".","15060","1"],["169",".","1","1","36","36","TRP","HZ3","H","1","7.080",".",".","1",".",".",".",".","36","TRP","HZ3",".","15060","1"],["170",".","1","1","36","36","TRP","HH2","H","1","7.065",".",".","1",".",".",".",".","36","TRP","HH2",".","15060","1"],["171",".","1","1","36","36","TRP","CA","C","13","63.045",".",".","1",".",".",".",".","36","TRP","CA",".","15060","1"],["172",".","1","1","36","36","TRP","CB","C","13","29.484",".",".","1",".",".",".",".","36","TRP","CB",".","15060","1"],["173",".","1","1","36","36","TRP","N","N","15","122.912",".",".","1",".",".",".",".","36","TRP","N",".","15060","1"],["174",".","1","1","36","36","TRP","NE1","N","15","130.106",".",".","1",".",".",".",".","36","TRP","NE1",".","15060","1"],["175",".","1","1","37","37","LEU","H","H","1","8.733",".",".","1",".",".",".",".","37","LEU","HN",".","15060","1"],["176",".","1","1","37","37","LEU","HA","H","1","4.050",".",".","1",".",".",".",".","37","LEU","HA",".","15060","1"],["177",".","1","1","37","37","LEU","HB2","H","1","2.230",".",".","2",".",".",".",".","37","LEU","HB1",".","15060","1"],["178",".","1","1","37","37","LEU","HB3","H","1","1.940",".",".","2",".",".",".",".","37","LEU","HB2",".","15060","1"],["179",".","1","1","37","37","LEU","HD11","H","1","1.280",".",".","2",".",".",".",".","37","LEU","HD1",".","15060","1"],["180",".","1","1","37","37","LEU","HD12","H","1","1.280",".",".","2",".",".",".",".","37","LEU","HD1",".","15060","1"],["181",".","1","1","37","37","LEU","HD13","H","1","1.280",".",".","2",".",".",".",".","37","LEU","HD1",".","15060","1"],["182",".","1","1","37","37","LEU","HD21","H","1","0.880",".",".","2",".",".",".",".","37","LEU","HD2",".","15060","1"],["183",".","1","1","37","37","LEU","HD22","H","1","0.880",".",".","2",".",".",".",".","37","LEU","HD2",".","15060","1"],["184",".","1","1","37","37","LEU","HD23","H","1","0.880",".",".","2",".",".",".",".","37","LEU","HD2",".","15060","1"],["185",".","1","1","37","37","LEU","CA","C","13","58.680",".",".","1",".",".",".",".","37","LEU","CA",".","15060","1"],["186",".","1","1","37","37","LEU","CB","C","13","41.367",".",".","1",".",".",".",".","37","LEU","CB",".","15060","1"],["187",".","1","1","37","37","LEU","CD1","C","13","25.285",".",".","1",".",".",".",".","37","LEU","CD1",".","15060","1"],["188",".","1","1","37","37","LEU","CD2","C","13","27.414",".",".","1",".",".",".",".","37","LEU","CD2",".","15060","1"],["189",".","1","1","37","37","LEU","N","N","15","118.921",".",".","1",".",".",".",".","37","LEU","N",".","15060","1"],["190",".","1","1","38","38","ARG","H","H","1","8.032",".",".","1",".",".",".",".","38","ARG","HN",".","15060","1"],["191",".","1","1","38","38","ARG","HA","H","1","3.640",".",".","1",".",".",".",".","38","ARG","HA",".","15060","1"],["192",".","1","1","38","38","ARG","HB2","H","1","1.910",".",".","1",".",".",".",".","38","ARG","HB1",".","15060","1"],["193",".","1","1","38","38","ARG","HB3","H","1","1.910",".",".","1",".",".",".",".","38","ARG","HB2",".","15060","1"],["194",".","1","1","38","38","ARG","HG2","H","1","1.500",".",".","1",".",".",".",".","38","ARG","HG1",".","15060","1"],["195",".","1","1","38","38","ARG","HG3","H","1","1.500",".",".","1",".",".",".",".","38","ARG","HG2",".","15060","1"],["196",".","1","1","38","38","ARG","HD2","H","1","3.230",".",".","1",".",".",".",".","38","ARG","HD1",".","15060","1"],["197",".","1","1","38","38","ARG","HD3","H","1","3.230",".",".","1",".",".",".",".","38","ARG","HD2",".","15060","1"],["198",".","1","1","38","38","ARG","CA","C","13","61.164",".",".","1",".",".",".",".","38","ARG","CA",".","15060","1"],["199",".","1","1","38","38","ARG","CB","C","13","30.370",".",".","1",".",".",".",".","38","ARG","CB",".","15060","1"],["200",".","1","1","38","38","ARG","CD","C","13","43.171",".",".","1",".",".",".",".","38","ARG","CD",".","15060","1"],["201",".","1","1","38","38","ARG","N","N","15","116.327",".",".","1",".",".",".",".","38","ARG","N",".","15060","1"],["202",".","1","1","39","39","ALA","H","H","1","7.900",".",".","1",".",".",".",".","39","ALA","HN",".","15060","1"],["203",".","1","1","39","39","ALA","HA","H","1","4.030",".",".","1",".",".",".",".","39","ALA","HA",".","15060","1"],["204",".","1","1","39","39","ALA","HB1","H","1","1.307",".",".","1",".",".",".",".","39","ALA","HB",".","15060","1"],["205",".","1","1","39","39","ALA","HB2","H","1","1.307",".",".","1",".",".",".",".","39","ALA","HB",".","15060","1"],["206",".","1","1","39","39","ALA","HB3","H","1","1.307",".",".","1",".",".",".",".","39","ALA","HB",".","15060","1"],["207",".","1","1","39","39","ALA","C","C","13","178.908",".",".","1",".",".",".",".","39","ALA","C",".","15060","1"],["208",".","1","1","39","39","ALA","CA","C","13","54.507",".",".","1",".",".",".",".","39","ALA","CA",".","15060","1"],["209",".","1","1","39","39","ALA","CB","C","13","18.110",".",".","1",".",".",".",".","39","ALA","CB",".","15060","1"],["210",".","1","1","39","39","ALA","N","N","15","122.812",".",".","1",".",".",".",".","39","ALA","N",".","15060","1"],["211",".","1","1","40","40","ALA","H","H","1","8.067",".",".","1",".",".",".",".","40","ALA","HN",".","15060","1"],["212",".","1","1","40","40","ALA","HA","H","1","3.930",".",".","1",".",".",".",".","40","ALA","HA",".","15060","1"],["213",".","1","1","40","40","ALA","HB1","H","1","0.440",".",".","1",".",".",".",".","40","ALA","HB",".","15060","1"],["214",".","1","1","40","40","ALA","HB2","H","1","0.440",".",".","1",".",".",".",".","40","ALA","HB",".","15060","1"],["215",".","1","1","40","40","ALA","HB3","H","1","0.440",".",".","1",".",".",".",".","40","ALA","HB",".","15060","1"],["216",".","1","1","40","40","ALA","C","C","13","176.516",".",".","1",".",".",".",".","40","ALA","C",".","15060","1"],["217",".","1","1","40","40","ALA","CA","C","13","51.929",".",".","1",".",".",".",".","40","ALA","CA",".","15060","1"],["218",".","1","1","40","40","ALA","CB","C","13","18.100",".",".","1",".",".",".",".","40","ALA","CB",".","15060","1"],["219",".","1","1","40","40","ALA","N","N","15","118.343",".",".","1",".",".",".",".","40","ALA","N",".","15060","1"],["220",".","1","1","41","41","GLY","H","H","1","7.093",".",".","1",".",".",".",".","41","GLY","HN",".","15060","1"],["221",".","1","1","41","41","GLY","HA2","H","1","3.920",".",".","2",".",".",".",".","41","GLY","HA1",".","15060","1"],["222",".","1","1","41","41","GLY","HA3","H","1","3.560",".",".","2",".",".",".",".","41","GLY","HA2",".","15060","1"],["223",".","1","1","41","41","GLY","C","C","13","173.204",".",".","1",".",".",".",".","41","GLY","C",".","15060","1"],["224",".","1","1","41","41","GLY","CA","C","13","44.660",".",".","1",".",".",".",".","41","GLY","CA",".","15060","1"],["225",".","1","1","41","41","GLY","N","N","15","101.824",".",".","1",".",".",".",".","41","GLY","N",".","15060","1"],["226",".","1","1","42","42","PHE","H","H","1","8.648",".",".","1",".",".",".",".","42","PHE","HN",".","15060","1"],["227",".","1","1","42","42","PHE","HA","H","1","5.222",".",".","1",".",".",".",".","42","PHE","HA",".","15060","1"],["228",".","1","1","42","42","PHE","HB2","H","1","3.500",".",".","2",".",".",".",".","42","PHE","HB1",".","15060","1"],["229",".","1","1","42","42","PHE","HB3","H","1","2.980",".",".","2",".",".",".",".","42","PHE","HB2",".","15060","1"],["230",".","1","1","42","42","PHE","HD1","H","1","7.093",".",".","3",".",".",".",".","42","PHE","HD1",".","15060","1"],["231",".","1","1","42","42","PHE","HE1","H","1","7.174",".",".","3",".",".",".",".","42","PHE","HE1",".","15060","1"],["232",".","1","1","42","42","PHE","HZ","H","1","7.164",".",".","1",".",".",".",".","42","PHE","HZ",".","15060","1"],["233",".","1","1","42","42","PHE","CA","C","13","54.796",".",".","1",".",".",".",".","42","PHE","CA",".","15060","1"],["234",".","1","1","42","42","PHE","CB","C","13","40.411",".",".","1",".",".",".",".","42","PHE","CB",".","15060","1"],["235",".","1","1","42","42","PHE","N","N","15","118.308",".",".","1",".",".",".",".","42","PHE","N",".","15060","1"],["236",".","1","1","43","43","PRO","HA","H","1","4.040",".",".","1",".",".",".",".","43","PRO","HA",".","15060","1"],["237",".","1","1","43","43","PRO","HB2","H","1","1.780",".",".","2",".",".",".",".","43","PRO","HB1",".","15060","1"],["238",".","1","1","43","43","PRO","HB3","H","1","1.600",".",".","2",".",".",".",".","43","PRO","HB2",".","15060","1"],["239",".","1","1","43","43","PRO","HG2","H","1","2.140",".",".","2",".",".",".",".","43","PRO","HG1",".","15060","1"],["240",".","1","1","43","43","PRO","HG3","H","1","2.190",".",".","2",".",".",".",".","43","PRO","HG2",".","15060","1"],["241",".","1","1","43","43","PRO","HD2","H","1","2.970",".",".","2",".",".",".",".","43","PRO","HD2",".","15060","1"],["242",".","1","1","43","43","PRO","C","C","13","177.948",".",".","1",".",".",".",".","43","PRO","C",".","15060","1"],["243",".","1","1","43","43","PRO","CA","C","13","65.740",".",".","1",".",".",".",".","43","PRO","CA",".","15060","1"],["244",".","1","1","43","43","PRO","CB","C","13","31.390",".",".","1",".",".",".",".","43","PRO","CB",".","15060","1"],["245",".","1","1","43","43","PRO","CG","C","13","27.140",".",".","1",".",".",".",".","43","PRO","CG",".","15060","1"],["246",".","1","1","43","43","PRO","CD","C","13","50.790",".",".","1",".",".",".",".","43","PRO","CD",".","15060","1"],["247",".","1","1","44","44","GLN","H","H","1","10.134",".",".","1",".",".",".",".","44","GLN","HN",".","15060","1"],["248",".","1","1","44","44","GLN","HA","H","1","4.280",".",".","1",".",".",".",".","44","GLN","HA",".","15060","1"],["249",".","1","1","44","44","GLN","HB2","H","1","1.600",".",".","1",".",".",".",".","44","GLN","HB1",".","15060","1"],["250",".","1","1","44","44","GLN","HB3","H","1","1.600",".",".","1",".",".",".",".","44","GLN","HB2",".","15060","1"],["251",".","1","1","44","44","GLN","HG2","H","1","2.340",".",".","1",".",".",".",".","44","GLN","HG1",".","15060","1"],["252",".","1","1","44","44","GLN","HG3","H","1","2.340",".",".","1",".",".",".",".","44","GLN","HG2",".","15060","1"],["253",".","1","1","44","44","GLN","HE21","H","1","7.600",".",".","2",".",".",".",".","44","GLN","HE21",".","15060","1"],["254",".","1","1","44","44","GLN","HE22","H","1","7.526",".",".","2",".",".",".",".","44","GLN","HE22",".","15060","1"],["255",".","1","1","44","44","GLN","C","C","13","177.986",".",".","1",".",".",".",".","44","GLN","C",".","15060","1"],["256",".","1","1","44","44","GLN","CA","C","13","58.060",".",".","1",".",".",".",".","44","GLN","CA",".","15060","1"],["257",".","1","1","44","44","GLN","CB","C","13","26.080",".",".","1",".",".",".",".","44","GLN","CB",".","15060","1"],["258",".","1","1","44","44","GLN","CG","C","13","31.780",".",".","1",".",".",".",".","44","GLN","CG",".","15060","1"],["259",".","1","1","44","44","GLN","N","N","15","121.355",".",".","1",".",".",".",".","44","GLN","N",".","15060","1"],["260",".","1","1","44","44","GLN","NE2","N","15","111.932",".",".","1",".",".",".",".","44","GLN","NE2",".","15060","1"],["261",".","1","1","45","45","TYR","H","H","1","7.241",".",".","1",".",".",".",".","45","TYR","HN",".","15060","1"],["262",".","1","1","45","45","TYR","HA","H","1","4.790",".",".","1",".",".",".",".","45","TYR","HA",".","15060","1"],["263",".","1","1","45","45","TYR","HB2","H","1","3.320",".",".","2",".",".",".",".","45","TYR","HB1",".","15060","1"],["264",".","1","1","45","45","TYR","HB3","H","1","3.030",".",".","2",".",".",".",".","45","TYR","HB2",".","15060","1"],["265",".","1","1","45","45","TYR","HD1","H","1","7.135",".",".","3",".",".",".",".","45","TYR","HD1",".","15060","1"],["266",".","1","1","45","45","TYR","HE1","H","1","6.846",".",".","3",".",".",".",".","45","TYR","HE1",".","15060","1"],["267",".","1","1","45","45","TYR","C","C","13","176.869",".",".","1",".",".",".",".","45","TYR","C",".","15060","1"],["268",".","1","1","45","45","TYR","CA","C","13","60.770",".",".","1",".",".",".",".","45","TYR","CA",".","15060","1"],["269",".","1","1","45","45","TYR","CB","C","13","39.240",".",".","1",".",".",".",".","45","TYR","CB",".","15060","1"],["270",".","1","1","45","45","TYR","N","N","15","119.170",".",".","1",".",".",".",".","45","TYR","N",".","15060","1"],["271",".","1","1","46","46","ALA","H","H","1","6.875",".",".","1",".",".",".",".","46","ALA","HN",".","15060","1"],["272",".","1","1","46","46","ALA","HA","H","1","4.310",".",".","1",".",".",".",".","46","ALA","HA",".","15060","1"],["273",".","1","1","46","46","ALA","HB1","H","1","1.600",".",".","1",".",".",".",".","46","ALA","HB",".","15060","1"],["274",".","1","1","46","46","ALA","HB2","H","1","1.600",".",".","1",".",".",".",".","46","ALA","HB",".","15060","1"],["275",".","1","1","46","46","ALA","HB3","H","1","1.600",".",".","1",".",".",".",".","46","ALA","HB",".","15060","1"],["276",".","1","1","46","46","ALA","C","C","13","178.737",".",".","1",".",".",".",".","46","ALA","C",".","15060","1"],["277",".","1","1","46","46","ALA","CA","C","13","54.908",".",".","1",".",".",".",".","46","ALA","CA",".","15060","1"],["278",".","1","1","46","46","ALA","CB","C","13","18.500",".",".","1",".",".",".",".","46","ALA","CB",".","15060","1"],["279",".","1","1","46","46","ALA","N","N","15","121.385",".",".","1",".",".",".",".","46","ALA","N",".","15060","1"],["280",".","1","1","47","47","GLN","H","H","1","8.114",".",".","1",".",".",".",".","47","GLN","HN",".","15060","1"],["281",".","1","1","47","47","GLN","HA","H","1","3.910",".",".","1",".",".",".",".","47","GLN","HA",".","15060","1"],["282",".","1","1","47","47","GLN","HB2","H","1","2.190",".",".","2",".",".",".",".","47","GLN","HB1",".","15060","1"],["283",".","1","1","47","47","GLN","HB3","H","1","2.090",".",".","2",".",".",".",".","47","GLN","HB2",".","15060","1"],["284",".","1","1","47","47","GLN","HG2","H","1","2.420",".",".","1",".",".",".",".","47","GLN","HG1",".","15060","1"],["285",".","1","1","47","47","GLN","HG3","H","1","2.420",".",".","1",".",".",".",".","47","GLN","HG2",".","15060","1"],["286",".","1","1","47","47","GLN","HE21","H","1","7.884",".",".","2",".",".",".",".","47","GLN","HE21",".","15060","1"],["287",".","1","1","47","47","GLN","HE22","H","1","6.867",".",".","2",".",".",".",".","47","GLN","HE22",".","15060","1"],["288",".","1","1","47","47","GLN","C","C","13","177.788",".",".","1",".",".",".",".","47","GLN","C",".","15060","1"],["289",".","1","1","47","47","GLN","CA","C","13","58.470",".",".","1",".",".",".",".","47","GLN","CA",".","15060","1"],["290",".","1","1","47","47","GLN","CB","C","13","28.181",".",".","1",".",".",".",".","47","GLN","CB",".","15060","1"],["291",".","1","1","47","47","GLN","CG","C","13","33.270",".",".","1",".",".",".",".","47","GLN","CG",".","15060","1"],["292",".","1","1","47","47","GLN","N","N","15","117.390",".",".","1",".",".",".",".","47","GLN","N",".","15060","1"],["293",".","1","1","47","47","GLN","NE2","N","15","115.368",".",".","1",".",".",".",".","47","GLN","NE2",".","15060","1"],["294",".","1","1","48","48","LEU","H","H","1","7.831",".",".","1",".",".",".",".","48","LEU","HN",".","15060","1"],["295",".","1","1","48","48","LEU","HA","H","1","4.760",".",".","1",".",".",".",".","48","LEU","HA",".","15060","1"],["296",".","1","1","48","48","LEU","HG","H","1","1.930",".",".","1",".",".",".",".","48","LEU","HG",".","15060","1"],["297",".","1","1","48","48","LEU","HD11","H","1","0.950",".",".","2",".",".",".",".","48","LEU","HD1",".","15060","1"],["298",".","1","1","48","48","LEU","HD12","H","1","0.950",".",".","2",".",".",".",".","48","LEU","HD1",".","15060","1"],["299",".","1","1","48","48","LEU","HD13","H","1","0.950",".",".","2",".",".",".",".","48","LEU","HD1",".","15060","1"],["300",".","1","1","48","48","LEU","HD21","H","1","0.970",".",".","2",".",".",".",".","48","LEU","HD2",".","15060","1"],["301",".","1","1","48","48","LEU","HD22","H","1","0.970",".",".","2",".",".",".",".","48","LEU","HD2",".","15060","1"],["302",".","1","1","48","48","LEU","HD23","H","1","0.970",".",".","2",".",".",".",".","48","LEU","HD2",".","15060","1"],["303",".","1","1","48","48","LEU","CA","C","13","58.303",".",".","1",".",".",".",".","48","LEU","CA",".","15060","1"],["304",".","1","1","48","48","LEU","CB","C","13","43.630",".",".","1",".",".",".",".","48","LEU","CB",".","15060","1"],["305",".","1","1","48","48","LEU","CG","C","13","27.530",".",".","1",".",".",".",".","48","LEU","CG",".","15060","1"],["306",".","1","1","48","48","LEU","CD1","C","13","23.762",".",".","1",".",".",".",".","48","LEU","CD1",".","15060","1"],["307",".","1","1","48","48","LEU","CD2","C","13","25.460",".",".","1",".",".",".",".","48","LEU","CD2",".","15060","1"],["308",".","1","1","48","48","LEU","N","N","15","118.032",".",".","1",".",".",".",".","48","LEU","N",".","15060","1"],["309",".","1","1","49","49","TYR","H","H","1","7.761",".",".","1",".",".",".",".","49","TYR","HN",".","15060","1"],["310",".","1","1","49","49","TYR","HA","H","1","3.920",".",".","1",".",".",".",".","49","TYR","HA",".","15060","1"],["311",".","1","1","49","49","TYR","HB2","H","1","2.150",".",".","2",".",".",".",".","49","TYR","HB1",".","15060","1"],["312",".","1","1","49","49","TYR","HB3","H","1","2.930",".",".","2",".",".",".",".","49","TYR","HB2",".","15060","1"],["313",".","1","1","49","49","TYR","HD1","H","1","6.400",".",".","3",".",".",".",".","49","TYR","HD1",".","15060","1"],["314",".","1","1","49","49","TYR","HE1","H","1","6.652",".",".","3",".",".",".",".","49","TYR","HE1",".","15060","1"],["315",".","1","1","49","49","TYR","C","C","13","180.267",".",".","1",".",".",".",".","49","TYR","C",".","15060","1"],["316",".","1","1","49","49","TYR","CA","C","13","62.289",".",".","1",".",".",".",".","49","TYR","CA",".","15060","1"],["317",".","1","1","49","49","TYR","CB","C","13","37.537",".",".","1",".",".",".",".","49","TYR","CB",".","15060","1"],["318",".","1","1","49","49","TYR","CE1","C","13","115.708",".",".","3",".",".",".",".","49","TYR","CE1",".","15060","1"],["319",".","1","1","49","49","TYR","N","N","15","119.359",".",".","1",".",".",".",".","49","TYR","N",".","15060","1"],["320",".","1","1","50","50","GLU","H","H","1","8.499",".",".","1",".",".",".",".","50","GLU","HN",".","15060","1"],["321",".","1","1","50","50","GLU","HA","H","1","3.860",".",".","1",".",".",".",".","50","GLU","HA",".","15060","1"],["322",".","1","1","50","50","GLU","HB2","H","1","2.170",".",".","2",".",".",".",".","50","GLU","HB1",".","15060","1"],["323",".","1","1","50","50","GLU","HB3","H","1","2.090",".",".","2",".",".",".",".","50","GLU","HB2",".","15060","1"],["324",".","1","1","50","50","GLU","HG2","H","1","2.400",".",".","2",".",".",".",".","50","GLU","HG1",".","15060","1"],["325",".","1","1","50","50","GLU","HG3","H","1","2.740",".",".","2",".",".",".",".","50","GLU","HG2",".","15060","1"],["326",".","1","1","50","50","GLU","C","C","13","177.479",".",".","1",".",".",".",".","50","GLU","C",".","15060","1"],["327",".","1","1","50","50","GLU","CA","C","13","59.232",".",".","1",".",".",".",".","50","GLU","CA",".","15060","1"],["328",".","1","1","50","50","GLU","CB","C","13","28.792",".",".","1",".",".",".",".","50","GLU","CB",".","15060","1"],["329",".","1","1","50","50","GLU","CG","C","13","37.102",".",".","1",".",".",".",".","50","GLU","CG",".","15060","1"],["330",".","1","1","50","50","GLU","N","N","15","123.085",".",".","1",".",".",".",".","50","GLU","N",".","15060","1"],["331",".","1","1","51","51","ASP","H","H","1","8.126",".",".","1",".",".",".",".","51","ASP","HN",".","15060","1"],["332",".","1","1","51","51","ASP","HA","H","1","4.850",".",".","1",".",".",".",".","51","ASP","HA",".","15060","1"],["333",".","1","1","51","51","ASP","HB2","H","1","2.980",".",".","2",".",".",".",".","51","ASP","HB1",".","15060","1"],["334",".","1","1","51","51","ASP","HB3","H","1","2.730",".",".","2",".",".",".",".","51","ASP","HB2",".","15060","1"],["335",".","1","1","51","51","ASP","C","C","13","175.657",".",".","1",".",".",".",".","51","ASP","C",".","15060","1"],["336",".","1","1","51","51","ASP","CA","C","13","54.320",".",".","1",".",".",".",".","51","ASP","CA",".","15060","1"],["337",".","1","1","51","51","ASP","CB","C","13","40.650",".",".","1",".",".",".",".","51","ASP","CB",".","15060","1"],["338",".","1","1","51","51","ASP","N","N","15","118.623",".",".","1",".",".",".",".","51","ASP","N",".","15060","1"],["339",".","1","1","52","52","SER","H","H","1","7.882",".",".","1",".",".",".",".","52","SER","HN",".","15060","1"],["340",".","1","1","52","52","SER","HA","H","1","4.380",".",".","1",".",".",".",".","52","SER","HA",".","15060","1"],["341",".","1","1","52","52","SER","HB2","H","1","4.106",".",".","2",".",".",".",".","52","SER","HB1",".","15060","1"],["342",".","1","1","52","52","SER","HB3","H","1","3.833",".",".","2",".",".",".",".","52","SER","HB2",".","15060","1"],["343",".","1","1","52","52","SER","C","C","13","175.316",".",".","1",".",".",".",".","52","SER","C",".","15060","1"],["344",".","1","1","52","52","SER","CA","C","13","59.600",".",".","1",".",".",".",".","52","SER","CA",".","15060","1"],["345",".","1","1","52","52","SER","CB","C","13","61.690",".",".","1",".",".",".",".","52","SER","CB",".","15060","1"],["346",".","1","1","52","52","SER","N","N","15","111.515",".",".","1",".",".",".",".","52","SER","N",".","15060","1"],["347",".","1","1","53","53","GLN","H","H","1","8.169",".",".","1",".",".",".",".","53","GLN","HN",".","15060","1"],["348",".","1","1","53","53","GLN","HA","H","1","4.530",".",".","1",".",".",".",".","53","GLN","HA",".","15060","1"],["349",".","1","1","53","53","GLN","HB2","H","1","2.460",".",".","1",".",".",".",".","53","GLN","HB1",".","15060","1"],["350",".","1","1","53","53","GLN","HB3","H","1","2.460",".",".","1",".",".",".",".","53","GLN","HB2",".","15060","1"],["351",".","1","1","53","53","GLN","HG2","H","1","2.410",".",".","2",".",".",".",".","53","GLN","HG1",".","15060","1"],["352",".","1","1","53","53","GLN","HG3","H","1","2.240",".",".","2",".",".",".",".","53","GLN","HG2",".","15060","1"],["353",".","1","1","53","53","GLN","HE21","H","1","7.337",".",".","2",".",".",".",".","53","GLN","HE21",".","15060","1"],["354",".","1","1","53","53","GLN","HE22","H","1","6.871",".",".","2",".",".",".",".","53","GLN","HE22",".","15060","1"],["355",".","1","1","53","53","GLN","C","C","13","175.714",".",".","1",".",".",".",".","53","GLN","C",".","15060","1"],["356",".","1","1","53","53","GLN","CA","C","13","54.740",".",".","1",".",".",".",".","53","GLN","CA",".","15060","1"],["357",".","1","1","53","53","GLN","CB","C","13","29.200",".",".","1",".",".",".",".","53","GLN","CB",".","15060","1"],["358",".","1","1","53","53","GLN","CG","C","13","33.647",".",".","1",".",".",".",".","53","GLN","CG",".","15060","1"],["359",".","1","1","53","53","GLN","N","N","15","114.417",".",".","1",".",".",".",".","53","GLN","N",".","15060","1"],["360",".","1","1","53","53","GLN","NE2","N","15","113.885",".",".","1",".",".",".",".","53","GLN","NE2",".","15060","1"],["361",".","1","1","54","54","PHE","H","H","1","8.165",".",".","1",".",".",".",".","54","PHE","HN",".","15060","1"],["362",".","1","1","54","54","PHE","HA","H","1","4.326",".",".","1",".",".",".",".","54","PHE","HA",".","15060","1"],["363",".","1","1","54","54","PHE","HB2","H","1","2.637",".",".","2",".",".",".",".","54","PHE","HB1",".","15060","1"],["364",".","1","1","54","54","PHE","HB3","H","1","2.330",".",".","2",".",".",".",".","54","PHE","HB2",".","15060","1"],["365",".","1","1","54","54","PHE","HD1","H","1","7.421",".",".","3",".",".",".",".","54","PHE","HD1",".","15060","1"],["366",".","1","1","54","54","PHE","HE1","H","1","7.603",".",".","3",".",".",".",".","54","PHE","HE1",".","15060","1"],["367",".","1","1","54","54","PHE","HZ","H","1","7.093",".",".","1",".",".",".",".","54","PHE","HZ",".","15060","1"],["368",".","1","1","54","54","PHE","CA","C","13","57.434",".",".","1",".",".",".",".","54","PHE","CA",".","15060","1"],["369",".","1","1","54","54","PHE","CB","C","13","39.409",".",".","1",".",".",".",".","54","PHE","CB",".","15060","1"],["370",".","1","1","54","54","PHE","N","N","15","121.830",".",".","1",".",".",".",".","54","PHE","N",".","15060","1"],["371",".","1","1","55","55","PRO","HA","H","1","4.910",".",".","1",".",".",".",".","55","PRO","HA",".","15060","1"],["372",".","1","1","55","55","PRO","HB2","H","1","2.310",".",".","2",".",".",".",".","55","PRO","HB1",".","15060","1"],["373",".","1","1","55","55","PRO","HB3","H","1","2.010",".",".","2",".",".",".",".","55","PRO","HB2",".","15060","1"],["374",".","1","1","55","55","PRO","HG2","H","1","1.840",".",".","1",".",".",".",".","55","PRO","HG1",".","15060","1"],["375",".","1","1","55","55","PRO","HG3","H","1","1.840",".",".","1",".",".",".",".","55","PRO","HG2",".","15060","1"],["376",".","1","1","55","55","PRO","HD2","H","1","3.620",".",".","2",".",".",".",".","55","PRO","HD1",".","15060","1"],["377",".","1","1","55","55","PRO","HD3","H","1","3.840",".",".","2",".",".",".",".","55","PRO","HD2",".","15060","1"],["378",".","1","1","55","55","PRO","C","C","13","174.820",".",".","1",".",".",".",".","55","PRO","C",".","15060","1"],["379",".","1","1","55","55","PRO","CA","C","13","62.310",".",".","1",".",".",".",".","55","PRO","CA",".","15060","1"],["380",".","1","1","55","55","PRO","CB","C","13","36.270",".",".","1",".",".",".",".","55","PRO","CB",".","15060","1"],["381",".","1","1","55","55","PRO","CG","C","13","24.684",".",".","1",".",".",".",".","55","PRO","CG",".","15060","1"],["382",".","1","1","55","55","PRO","CD","C","13","51.730",".",".","1",".",".",".",".","55","PRO","CD",".","15060","1"],["383",".","1","1","56","56","ILE","H","H","1","8.972",".",".","1",".",".",".",".","56","ILE","HN",".","15060","1"],["384",".","1","1","56","56","ILE","HA","H","1","4.476",".",".","1",".",".",".",".","56","ILE","HA",".","15060","1"],["385",".","1","1","56","56","ILE","HB","H","1","1.040",".",".","1",".",".",".",".","56","ILE","HB",".","15060","1"],["386",".","1","1","56","56","ILE","HG12","H","1","0.490",".",".","1",".",".",".",".","56","ILE","HG11",".","15060","1"],["387",".","1","1","56","56","ILE","HG13","H","1","0.910",".",".","1",".",".",".",".","56","ILE","HG12",".","15060","1"],["388",".","1","1","56","56","ILE","HG21","H","1","0.220",".",".","1",".",".",".",".","56","ILE","HG2",".","15060","1"],["389",".","1","1","56","56","ILE","HG22","H","1","0.220",".",".","1",".",".",".",".","56","ILE","HG2",".","15060","1"],["390",".","1","1","56","56","ILE","HG23","H","1","0.220",".",".","1",".",".",".",".","56","ILE","HG2",".","15060","1"],["391",".","1","1","56","56","ILE","HD11","H","1","0.510",".",".","1",".",".",".",".","56","ILE","HD1",".","15060","1"],["392",".","1","1","56","56","ILE","HD12","H","1","0.510",".",".","1",".",".",".",".","56","ILE","HD1",".","15060","1"],["393",".","1","1","56","56","ILE","HD13","H","1","0.510",".",".","1",".",".",".",".","56","ILE","HD1",".","15060","1"],["394",".","1","1","56","56","ILE","CA","C","13","58.905",".",".","1",".",".",".",".","56","ILE","CA",".","15060","1"],["395",".","1","1","56","56","ILE","CB","C","13","41.243",".",".","1",".",".",".",".","56","ILE","CB",".","15060","1"],["396",".","1","1","56","56","ILE","CG1","C","13","26.346",".",".","1",".",".",".",".","56","ILE","CG1",".","15060","1"],["397",".","1","1","56","56","ILE","CG2","C","13","17.560",".",".","1",".",".",".",".","56","ILE","CG2",".","15060","1"],["398",".","1","1","56","56","ILE","CD1","C","13","15.280",".",".","1",".",".",".",".","56","ILE","CD1",".","15060","1"],["399",".","1","1","56","56","ILE","N","N","15","119.002",".",".","1",".",".",".",".","56","ILE","N",".","15060","1"],["400",".","1","1","57","57","ASN","H","H","1","8.390",".",".","1",".",".",".",".","57","ASN","HN",".","15060","1"],["401",".","1","1","57","57","ASN","HA","H","1","4.660",".",".","1",".",".",".",".","57","ASN","HA",".","15060","1"],["402",".","1","1","57","57","ASN","HB2","H","1","3.010",".",".","2",".",".",".",".","57","ASN","HB1",".","15060","1"],["403",".","1","1","57","57","ASN","HB3","H","1","2.720",".",".","2",".",".",".",".","57","ASN","HB2",".","15060","1"],["404",".","1","1","57","57","ASN","HD21","H","1","7.007",".",".","2",".",".",".",".","57","ASN","HD21",".","15060","1"],["405",".","1","1","57","57","ASN","HD22","H","1","7.710",".",".","2",".",".",".",".","57","ASN","HD22",".","15060","1"],["406",".","1","1","57","57","ASN","C","C","13","175.602",".",".","1",".",".",".",".","57","ASN","C",".","15060","1"],["407",".","1","1","57","57","ASN","CA","C","13","52.500",".",".","1",".",".",".",".","57","ASN","CA",".","15060","1"],["408",".","1","1","57","57","ASN","CB","C","13","38.030",".",".","1",".",".",".",".","57","ASN","CB",".","15060","1"],["409",".","1","1","57","57","ASN","N","N","15","122.152",".",".","1",".",".",".",".","57","ASN","N",".","15060","1"],["410",".","1","1","57","57","ASN","ND2","N","15","111.858",".",".","1",".",".",".",".","57","ASN","ND2",".","15060","1"],["411",".","1","1","58","58","ILE","H","H","1","8.611",".",".","1",".",".",".",".","58","ILE","HN",".","15060","1"],["412",".","1","1","58","58","ILE","HA","H","1","4.360",".",".","1",".",".",".",".","58","ILE","HA",".","15060","1"],["413",".","1","1","58","58","ILE","HB","H","1","1.560",".",".","1",".",".",".",".","58","ILE","HB",".","15060","1"],["414",".","1","1","58","58","ILE","HG21","H","1","0.860",".",".","1",".",".",".",".","58","ILE","HG2",".","15060","1"],["415",".","1","1","58","58","ILE","HG22","H","1","0.860",".",".","1",".",".",".",".","58","ILE","HG2",".","15060","1"],["416",".","1","1","58","58","ILE","HG23","H","1","0.860",".",".","1",".",".",".",".","58","ILE","HG2",".","15060","1"],["417",".","1","1","58","58","ILE","HD11","H","1","0.750",".",".","1",".",".",".",".","58","ILE","HD1",".","15060","1"],["418",".","1","1","58","58","ILE","HD12","H","1","0.750",".",".","1",".",".",".",".","58","ILE","HD1",".","15060","1"],["419",".","1","1","58","58","ILE","HD13","H","1","0.750",".",".","1",".",".",".",".","58","ILE","HD1",".","15060","1"],["420",".","1","1","58","58","ILE","CA","C","13","64.572",".",".","1",".",".",".",".","58","ILE","CA",".","15060","1"],["421",".","1","1","58","58","ILE","CB","C","13","37.000",".",".","1",".",".",".",".","58","ILE","CB",".","15060","1"],["422",".","1","1","58","58","ILE","CG1","C","13","28.920",".",".","1",".",".",".",".","58","ILE","CG1",".","15060","1"],["423",".","1","1","58","58","ILE","CG2","C","13","17.650",".",".","1",".",".",".",".","58","ILE","CG2",".","15060","1"],["424",".","1","1","58","58","ILE","CD1","C","13","12.800",".",".","1",".",".",".",".","58","ILE","CD1",".","15060","1"],["425",".","1","1","58","58","ILE","N","N","15","128.642",".",".","1",".",".",".",".","58","ILE","N",".","15060","1"],["426",".","1","1","59","59","ALA","H","H","1","8.080",".",".","1",".",".",".",".","59","ALA","HN",".","15060","1"],["427",".","1","1","59","59","ALA","HA","H","1","3.970",".",".","1",".",".",".",".","59","ALA","HA",".","15060","1"],["428",".","1","1","59","59","ALA","HB1","H","1","1.450",".",".","1",".",".",".",".","59","ALA","HB",".","15060","1"],["429",".","1","1","59","59","ALA","HB2","H","1","1.450",".",".","1",".",".",".",".","59","ALA","HB",".","15060","1"],["430",".","1","1","59","59","ALA","HB3","H","1","1.450",".",".","1",".",".",".",".","59","ALA","HB",".","15060","1"],["431",".","1","1","59","59","ALA","C","C","13","180.605",".",".","1",".",".",".",".","59","ALA","C",".","15060","1"],["432",".","1","1","59","59","ALA","CA","C","13","55.449",".",".","1",".",".",".",".","59","ALA","CA",".","15060","1"],["433",".","1","1","59","59","ALA","CB","C","13","17.417",".",".","1",".",".",".",".","59","ALA","CB",".","15060","1"],["434",".","1","1","59","59","ALA","N","N","15","122.287",".",".","1",".",".",".",".","59","ALA","N",".","15060","1"],["435",".","1","1","60","60","ALA","H","H","1","7.422",".",".","1",".",".",".",".","60","ALA","HN",".","15060","1"],["436",".","1","1","60","60","ALA","HA","H","1","4.080",".",".","1",".",".",".",".","60","ALA","HA",".","15060","1"],["437",".","1","1","60","60","ALA","HB1","H","1","1.450",".",".","1",".",".",".",".","60","ALA","HB",".","15060","1"],["438",".","1","1","60","60","ALA","HB2","H","1","1.450",".",".","1",".",".",".",".","60","ALA","HB",".","15060","1"],["439",".","1","1","60","60","ALA","HB3","H","1","1.450",".",".","1",".",".",".",".","60","ALA","HB",".","15060","1"],["440",".","1","1","60","60","ALA","C","C","13","179.611",".",".","1",".",".",".",".","60","ALA","C",".","15060","1"],["441",".","1","1","60","60","ALA","CA","C","13","54.596",".",".","1",".",".",".",".","60","ALA","CA",".","15060","1"],["442",".","1","1","60","60","ALA","CB","C","13","18.200",".",".","1",".",".",".",".","60","ALA","CB",".","15060","1"],["443",".","1","1","60","60","ALA","N","N","15","119.996",".",".","1",".",".",".",".","60","ALA","N",".","15060","1"],["444",".","1","1","61","61","VAL","H","H","1","7.380",".",".","1",".",".",".",".","61","VAL","HN",".","15060","1"],["445",".","1","1","61","61","VAL","HA","H","1","3.790",".",".","1",".",".",".",".","61","VAL","HA",".","15060","1"],["446",".","1","1","61","61","VAL","HB","H","1","2.147",".",".","1",".",".",".",".","61","VAL","HB",".","15060","1"],["447",".","1","1","61","61","VAL","HG11","H","1","0.710",".",".","2",".",".",".",".","61","VAL","HG1",".","15060","1"],["448",".","1","1","61","61","VAL","HG12","H","1","0.710",".",".","2",".",".",".",".","61","VAL","HG1",".","15060","1"],["449",".","1","1","61","61","VAL","HG13","H","1","0.710",".",".","2",".",".",".",".","61","VAL","HG1",".","15060","1"],["450",".","1","1","61","61","VAL","HG21","H","1","0.870",".",".","2",".",".",".",".","61","VAL","HG2",".","15060","1"],["451",".","1","1","61","61","VAL","HG22","H","1","0.870",".",".","2",".",".",".",".","61","VAL","HG2",".","15060","1"],["452",".","1","1","61","61","VAL","HG23","H","1","0.870",".",".","2",".",".",".",".","61","VAL","HG2",".","15060","1"],["453",".","1","1","61","61","VAL","C","C","13","178.719",".",".","1",".",".",".",".","61","VAL","C",".","15060","1"],["454",".","1","1","61","61","VAL","CA","C","13","66.094",".",".","1",".",".",".",".","61","VAL","CA",".","15060","1"],["455",".","1","1","61","61","VAL","CB","C","13","31.329",".",".","1",".",".",".",".","61","VAL","CB",".","15060","1"],["456",".","1","1","61","61","VAL","CG1","C","13","20.790",".",".","1",".",".",".",".","61","VAL","CG1",".","15060","1"],["457",".","1","1","61","61","VAL","CG2","C","13","21.750",".",".","1",".",".",".",".","61","VAL","CG2",".","15060","1"],["458",".","1","1","61","61","VAL","N","N","15","119.124",".",".","1",".",".",".",".","61","VAL","N",".","15060","1"],["459",".","1","1","62","62","LYS","H","H","1","8.236",".",".","1",".",".",".",".","62","LYS","HN",".","15060","1"],["460",".","1","1","62","62","LYS","HA","H","1","3.640",".",".","1",".",".",".",".","62","LYS","HA",".","15060","1"],["461",".","1","1","62","62","LYS","HB2","H","1","1.790",".",".","2",".",".",".",".","62","LYS","HB1",".","15060","1"],["462",".","1","1","62","62","LYS","HB3","H","1","1.760",".",".","2",".",".",".",".","62","LYS","HB2",".","15060","1"],["463",".","1","1","62","62","LYS","HG2","H","1","1.630",".",".","1",".",".",".",".","62","LYS","HG1",".","15060","1"],["464",".","1","1","62","62","LYS","HG3","H","1","1.630",".",".","1",".",".",".",".","62","LYS","HG2",".","15060","1"],["465",".","1","1","62","62","LYS","HD2","H","1","1.150",".",".","2",".",".",".",".","62","LYS","HD1",".","15060","1"],["466",".","1","1","62","62","LYS","HD3","H","1","1.470",".",".","2",".",".",".",".","62","LYS","HD2",".","15060","1"],["467",".","1","1","62","62","LYS","HE2","H","1","2.860",".",".","1",".",".",".",".","62","LYS","HE1",".","15060","1"],["468",".","1","1","62","62","LYS","HE3","H","1","2.860",".",".","1",".",".",".",".","62","LYS","HE2",".","15060","1"],["469",".","1","1","62","62","LYS","C","C","13","178.777",".",".","1",".",".",".",".","62","LYS","C",".","15060","1"],["470",".","1","1","62","62","LYS","CA","C","13","60.440",".",".","1",".",".",".",".","62","LYS","CA",".","15060","1"],["471",".","1","1","62","62","LYS","CB","C","13","32.430",".",".","1",".",".",".",".","62","LYS","CB",".","15060","1"],["472",".","1","1","62","62","LYS","CD","C","13","26.170",".",".","1",".",".",".",".","62","LYS","CD",".","15060","1"],["473",".","1","1","62","62","LYS","CE","C","13","41.770",".",".","1",".",".",".",".","62","LYS","CE",".","15060","1"],["474",".","1","1","62","62","LYS","N","N","15","118.525",".",".","1",".",".",".",".","62","LYS","N",".","15060","1"],["475",".","1","1","63","63","LYS","H","H","1","7.435",".",".","1",".",".",".",".","63","LYS","HN",".","15060","1"],["476",".","1","1","63","63","LYS","HA","H","1","4.130",".",".","1",".",".",".",".","63","LYS","HA",".","15060","1"],["477",".","1","1","63","63","LYS","HB2","H","1","1.920",".",".","2",".",".",".",".","63","LYS","HB1",".","15060","1"],["478",".","1","1","63","63","LYS","HB3","H","1","1.870",".",".","2",".",".",".",".","63","LYS","HB2",".","15060","1"],["479",".","1","1","63","63","LYS","HG2","H","1","1.700",".",".","1",".",".",".",".","63","LYS","HG1",".","15060","1"],["480",".","1","1","63","63","LYS","HG3","H","1","1.700",".",".","1",".",".",".",".","63","LYS","HG2",".","15060","1"],["481",".","1","1","63","63","LYS","HD2","H","1","1.500",".",".","2",".",".",".",".","63","LYS","HD1",".","15060","1"],["482",".","1","1","63","63","LYS","HD3","H","1","1.420",".",".","2",".",".",".",".","63","LYS","HD2",".","15060","1"],["483",".","1","1","63","63","LYS","HE2","H","1","2.980",".",".","1",".",".",".",".","63","LYS","HE1",".","15060","1"],["484",".","1","1","63","63","LYS","HE3","H","1","2.980",".",".","1",".",".",".",".","63","LYS","HE2",".","15060","1"],["485",".","1","1","63","63","LYS","C","C","13","178.220",".",".","1",".",".",".",".","63","LYS","C",".","15060","1"],["486",".","1","1","63","63","LYS","CA","C","13","58.338",".",".","1",".",".",".",".","63","LYS","CA",".","15060","1"],["487",".","1","1","63","63","LYS","CB","C","13","32.080",".",".","1",".",".",".",".","63","LYS","CB",".","15060","1"],["488",".","1","1","63","63","LYS","CG","C","13","28.800",".",".","1",".",".",".",".","63","LYS","CG",".","15060","1"],["489",".","1","1","63","63","LYS","CD","C","13","24.650",".",".","1",".",".",".",".","63","LYS","CD",".","15060","1"],["490",".","1","1","63","63","LYS","CE","C","13","41.980",".",".","1",".",".",".",".","63","LYS","CE",".","15060","1"],["491",".","1","1","63","63","LYS","N","N","15","118.030",".",".","1",".",".",".",".","63","LYS","N",".","15060","1"],["492",".","1","1","64","64","ASP","H","H","1","7.921",".",".","1",".",".",".",".","64","ASP","HN",".","15060","1"],["493",".","1","1","64","64","ASP","HA","H","1","4.520",".",".","1",".",".",".",".","64","ASP","HA",".","15060","1"],["494",".","1","1","64","64","ASP","HB2","H","1","2.720",".",".","2",".",".",".",".","64","ASP","HB1",".","15060","1"],["495",".","1","1","64","64","ASP","HB3","H","1","2.480",".",".","2",".",".",".",".","64","ASP","HB2",".","15060","1"],["496",".","1","1","64","64","ASP","C","C","13","176.829",".",".","1",".",".",".",".","64","ASP","C",".","15060","1"],["497",".","1","1","64","64","ASP","CA","C","13","56.085",".",".","1",".",".",".",".","64","ASP","CA",".","15060","1"],["498",".","1","1","64","64","ASP","CB","C","13","40.600",".",".","1",".",".",".",".","64","ASP","CB",".","15060","1"],["499",".","1","1","64","64","ASP","N","N","15","119.109",".",".","1",".",".",".",".","64","ASP","N",".","15060","1"],["500",".","1","1","65","65","HIS","H","H","1","7.564",".",".","1",".",".",".",".","65","HIS","HN",".","15060","1"],["501",".","1","1","65","65","HIS","HA","H","1","4.620",".",".","1",".",".",".",".","65","HIS","HA",".","15060","1"],["502",".","1","1","65","65","HIS","HB2","H","1","3.240",".",".","2",".",".",".",".","65","HIS","HB1",".","15060","1"],["503",".","1","1","65","65","HIS","HB3","H","1","2.610",".",".","2",".",".",".",".","65","HIS","HB2",".","15060","1"],["504",".","1","1","65","65","HIS","HD2","H","1","6.993",".",".","1",".",".",".",".","65","HIS","HD2",".","15060","1"],["505",".","1","1","65","65","HIS","HE1","H","1","7.762",".",".","1",".",".",".",".","65","HIS","HE1",".","15060","1"],["506",".","1","1","65","65","HIS","C","C","13","175.259",".",".","1",".",".",".",".","65","HIS","C",".","15060","1"],["507",".","1","1","65","65","HIS","CA","C","13","56.060",".",".","1",".",".",".",".","65","HIS","CA",".","15060","1"],["508",".","1","1","65","65","HIS","CB","C","13","28.810",".",".","1",".",".",".",".","65","HIS","CB",".","15060","1"],["509",".","1","1","65","65","HIS","CD2","C","13","117.172",".",".","1",".",".",".",".","65","HIS","CD2",".","15060","1"],["510",".","1","1","65","65","HIS","N","N","15","117.388",".",".","1",".",".",".",".","65","HIS","N",".","15060","1"],["511",".","1","1","66","66","ASP","H","H","1","7.723",".",".","1",".",".",".",".","66","ASP","HN",".","15060","1"],["512",".","1","1","66","66","ASP","HA","H","1","4.400",".",".","1",".",".",".",".","66","ASP","HA",".","15060","1"],["513",".","1","1","66","66","ASP","HB2","H","1","2.680",".",".","2",".",".",".",".","66","ASP","HB1",".","15060","1"],["514",".","1","1","66","66","ASP","HB3","H","1","2.760",".",".","2",".",".",".",".","66","ASP","HB2",".","15060","1"],["515",".","1","1","66","66","ASP","C","C","13","176.176",".",".","1",".",".",".",".","66","ASP","C",".","15060","1"],["516",".","1","1","66","66","ASP","CA","C","13","56.330",".",".","1",".",".",".",".","66","ASP","CA",".","15060","1"],["517",".","1","1","66","66","ASP","CB","C","13","40.550",".",".","1",".",".",".",".","66","ASP","CB",".","15060","1"],["518",".","1","1","66","66","ASP","N","N","15","120.613",".",".","1",".",".",".",".","66","ASP","N",".","15060","1"],["519",".","1","1","67","67","PHE","H","H","1","7.553",".",".","1",".",".",".",".","67","PHE","HN",".","15060","1"],["520",".","1","1","67","67","PHE","HA","H","1","4.660",".",".","1",".",".",".",".","67","PHE","HA",".","15060","1"],["521",".","1","1","67","67","PHE","HB2","H","1","3.150",".",".","2",".",".",".",".","67","PHE","HB1",".","15060","1"],["522",".","1","1","67","67","PHE","HB3","H","1","3.260",".",".","2",".",".",".",".","67","PHE","HB2",".","15060","1"],["523",".","1","1","67","67","PHE","HD1","H","1","7.315",".",".","3",".",".",".",".","67","PHE","HD1",".","15060","1"],["524",".","1","1","67","67","PHE","HE1","H","1","7.503",".",".","3",".",".",".",".","67","PHE","HE1",".","15060","1"],["525",".","1","1","67","67","PHE","HZ","H","1","7.420",".",".","1",".",".",".",".","67","PHE","HZ",".","15060","1"],["526",".","1","1","67","67","PHE","C","C","13","175.968",".",".","1",".",".",".",".","67","PHE","C",".","15060","1"],["527",".","1","1","67","67","PHE","CA","C","13","56.610",".",".","1",".",".",".",".","67","PHE","CA",".","15060","1"],["528",".","1","1","67","67","PHE","CB","C","13","38.680",".",".","1",".",".",".",".","67","PHE","CB",".","15060","1"],["529",".","1","1","67","67","PHE","CZ","C","13","132.150",".",".","1",".",".",".",".","67","PHE","CZ",".","15060","1"],["530",".","1","1","67","67","PHE","N","N","15","115.112",".",".","1",".",".",".",".","67","PHE","N",".","15060","1"],["531",".","1","1","68","68","LEU","H","H","1","7.545",".",".","1",".",".",".",".","68","LEU","HN",".","15060","1"],["532",".","1","1","68","68","LEU","HA","H","1","4.370",".",".","1",".",".",".",".","68","LEU","HA",".","15060","1"],["533",".","1","1","68","68","LEU","HB2","H","1","1.740",".",".","2",".",".",".",".","68","LEU","HB1",".","15060","1"],["534",".","1","1","68","68","LEU","HB3","H","1","1.610",".",".","2",".",".",".",".","68","LEU","HB2",".","15060","1"],["535",".","1","1","68","68","LEU","HD11","H","1","1.057",".",".","2",".",".",".",".","68","LEU","HD1",".","15060","1"],["536",".","1","1","68","68","LEU","HD12","H","1","1.057",".",".","2",".",".",".",".","68","LEU","HD1",".","15060","1"],["537",".","1","1","68","68","LEU","HD13","H","1","1.057",".",".","2",".",".",".",".","68","LEU","HD1",".","15060","1"],["538",".","1","1","68","68","LEU","HD21","H","1","0.990",".",".","2",".",".",".",".","68","LEU","HD2",".","15060","1"],["539",".","1","1","68","68","LEU","HD22","H","1","0.990",".",".","2",".",".",".",".","68","LEU","HD2",".","15060","1"],["540",".","1","1","68","68","LEU","HD23","H","1","0.990",".",".","2",".",".",".",".","68","LEU","HD2",".","15060","1"],["541",".","1","1","68","68","LEU","C","C","13","176.928",".",".","1",".",".",".",".","68","LEU","C",".","15060","1"],["542",".","1","1","68","68","LEU","CA","C","13","54.740",".",".","1",".",".",".",".","68","LEU","CA",".","15060","1"],["543",".","1","1","68","68","LEU","CB","C","13","43.450",".",".","1",".",".",".",".","68","LEU","CB",".","15060","1"],["544",".","1","1","68","68","LEU","CD1","C","13","25.430",".",".","1",".",".",".",".","68","LEU","CD1",".","15060","1"],["545",".","1","1","68","68","LEU","CD2","C","13","23.750",".",".","1",".",".",".",".","68","LEU","CD2",".","15060","1"],["546",".","1","1","68","68","LEU","N","N","15","123.253",".",".","1",".",".",".",".","68","LEU","N",".","15060","1"],["547",".","1","1","69","69","GLU","H","H","1","8.659",".",".","1",".",".",".",".","69","GLU","HN",".","15060","1"],["548",".","1","1","69","69","GLU","HA","H","1","4.330",".",".","1",".",".",".",".","69","GLU","HA",".","15060","1"],["549",".","1","1","69","69","GLU","HB2","H","1","2.300",".",".","2",".",".",".",".","69","GLU","HB1",".","15060","1"],["550",".","1","1","69","69","GLU","HB3","H","1","2.130",".",".","2",".",".",".",".","69","GLU","HB2",".","15060","1"],["551",".","1","1","69","69","GLU","HG2","H","1","2.460",".",".","1",".",".",".",".","69","GLU","HG1",".","15060","1"],["552",".","1","1","69","69","GLU","HG3","H","1","2.460",".",".","1",".",".",".",".","69","GLU","HG2",".","15060","1"],["553",".","1","1","69","69","GLU","C","C","13","178.014",".",".","1",".",".",".",".","69","GLU","C",".","15060","1"],["554",".","1","1","69","69","GLU","CA","C","13","56.645",".",".","1",".",".",".",".","69","GLU","CA",".","15060","1"],["555",".","1","1","69","69","GLU","CB","C","13","29.845",".",".","1",".",".",".",".","69","GLU","CB",".","15060","1"],["556",".","1","1","69","69","GLU","CG","C","13","36.720",".",".","1",".",".",".",".","69","GLU","CG",".","15060","1"],["557",".","1","1","69","69","GLU","N","N","15","121.494",".",".","1",".",".",".",".","69","GLU","N",".","15060","1"],["558",".","1","1","70","70","ARG","H","H","1","8.804",".",".","1",".",".",".",".","70","ARG","HN",".","15060","1"],["559",".","1","1","70","70","ARG","HA","H","1","4.040",".",".","1",".",".",".",".","70","ARG","HA",".","15060","1"],["560",".","1","1","70","70","ARG","HB2","H","1","1.950",".",".","1",".",".",".",".","70","ARG","HB1",".","15060","1"],["561",".","1","1","70","70","ARG","HB3","H","1","1.950",".",".","1",".",".",".",".","70","ARG","HB2",".","15060","1"],["562",".","1","1","70","70","ARG","HG2","H","1","1.760",".",".","1",".",".",".",".","70","ARG","HG1",".","15060","1"],["563",".","1","1","70","70","ARG","HG3","H","1","1.760",".",".","1",".",".",".",".","70","ARG","HG2",".","15060","1"],["564",".","1","1","70","70","ARG","HD2","H","1","3.250",".",".","1",".",".",".",".","70","ARG","HD1",".","15060","1"],["565",".","1","1","70","70","ARG","HD3","H","1","3.250",".",".","1",".",".",".",".","70","ARG","HD2",".","15060","1"],["566",".","1","1","70","70","ARG","C","C","13","177.774",".",".","1",".",".",".",".","70","ARG","C",".","15060","1"],["567",".","1","1","70","70","ARG","CA","C","13","59.539",".",".","1",".",".",".",".","70","ARG","CA",".","15060","1"],["568",".","1","1","70","70","ARG","CB","C","13","30.190",".",".","1",".",".",".",".","70","ARG","CB",".","15060","1"],["569",".","1","1","70","70","ARG","CG","C","13","26.730",".",".","1",".",".",".",".","70","ARG","CG",".","15060","1"],["570",".","1","1","70","70","ARG","CD","C","13","43.450",".",".","1",".",".",".",".","70","ARG","CD",".","15060","1"],["571",".","1","1","70","70","ARG","N","N","15","123.728",".",".","1",".",".",".",".","70","ARG","N",".","15060","1"],["572",".","1","1","71","71","ASP","H","H","1","8.691",".",".","1",".",".",".",".","71","ASP","HN",".","15060","1"],["573",".","1","1","71","71","ASP","HA","H","1","4.530",".",".","1",".",".",".",".","71","ASP","HA",".","15060","1"],["574",".","1","1","71","71","ASP","HB2","H","1","2.720",".",".","1",".",".",".",".","71","ASP","HB1",".","15060","1"],["575",".","1","1","71","71","ASP","HB3","H","1","2.720",".",".","1",".",".",".",".","71","ASP","HB2",".","15060","1"],["576",".","1","1","71","71","ASP","C","C","13","176.354",".",".","1",".",".",".",".","71","ASP","C",".","15060","1"],["577",".","1","1","71","71","ASP","CA","C","13","56.041",".",".","1",".",".",".",".","71","ASP","CA",".","15060","1"],["578",".","1","1","71","71","ASP","CB","C","13","40.090",".",".","1",".",".",".",".","71","ASP","CB",".","15060","1"],["579",".","1","1","71","71","ASP","N","N","15","115.520",".",".","1",".",".",".",".","71","ASP","N",".","15060","1"],["580",".","1","1","72","72","LEU","H","H","1","7.912",".",".","1",".",".",".",".","72","LEU","HN",".","15060","1"],["581",".","1","1","72","72","LEU","HA","H","1","4.770",".",".","1",".",".",".",".","72","LEU","HA",".","15060","1"],["582",".","1","1","72","72","LEU","HB2","H","1","1.910",".",".","2",".",".",".",".","72","LEU","HB1",".","15060","1"],["583",".","1","1","72","72","LEU","HB3","H","1","1.940",".",".","2",".",".",".",".","72","LEU","HB2",".","15060","1"],["584",".","1","1","72","72","LEU","HD11","H","1","1.230",".",".","2",".",".",".",".","72","LEU","HD1",".","15060","1"],["585",".","1","1","72","72","LEU","HD12","H","1","1.230",".",".","2",".",".",".",".","72","LEU","HD1",".","15060","1"],["586",".","1","1","72","72","LEU","HD13","H","1","1.230",".",".","2",".",".",".",".","72","LEU","HD1",".","15060","1"],["587",".","1","1","72","72","LEU","HD21","H","1","0.990",".",".","2",".",".",".",".","72","LEU","HD2",".","15060","1"],["588",".","1","1","72","72","LEU","HD22","H","1","0.990",".",".","2",".",".",".",".","72","LEU","HD2",".","15060","1"],["589",".","1","1","72","72","LEU","HD23","H","1","0.990",".",".","2",".",".",".",".","72","LEU","HD2",".","15060","1"],["590",".","1","1","72","72","LEU","CA","C","13","55.418",".",".","1",".",".",".",".","72","LEU","CA",".","15060","1"],["591",".","1","1","72","72","LEU","CB","C","13","43.630",".",".","1",".",".",".",".","72","LEU","CB",".","15060","1"],["592",".","1","1","72","72","LEU","CD1","C","13","25.150",".",".","1",".",".",".",".","72","LEU","CD1",".","15060","1"],["593",".","1","1","72","72","LEU","CD2","C","13","24.030",".",".","1",".",".",".",".","72","LEU","CD2",".","15060","1"],["594",".","1","1","72","72","LEU","N","N","15","118.675",".",".","1",".",".",".",".","72","LEU","N",".","15060","1"],["595",".","1","1","73","73","VAL","H","H","1","7.761",".",".","1",".",".",".",".","73","VAL","HN",".","15060","1"],["596",".","1","1","73","73","VAL","HA","H","1","3.550",".",".","1",".",".",".",".","73","VAL","HA",".","15060","1"],["597",".","1","1","73","73","VAL","HB","H","1","2.040",".",".","1",".",".",".",".","73","VAL","HB",".","15060","1"],["598",".","1","1","73","73","VAL","HG11","H","1","0.920",".",".","2",".",".",".",".","73","VAL","HG1",".","15060","1"],["599",".","1","1","73","73","VAL","HG12","H","1","0.920",".",".","2",".",".",".",".","73","VAL","HG1",".","15060","1"],["600",".","1","1","73","73","VAL","HG13","H","1","0.920",".",".","2",".",".",".",".","73","VAL","HG1",".","15060","1"],["601",".","1","1","73","73","VAL","HG21","H","1","0.990",".",".","2",".",".",".",".","73","VAL","HG2",".","15060","1"],["602",".","1","1","73","73","VAL","HG22","H","1","0.990",".",".","2",".",".",".",".","73","VAL","HG2",".","15060","1"],["603",".","1","1","73","73","VAL","HG23","H","1","0.990",".",".","2",".",".",".",".","73","VAL","HG2",".","15060","1"],["604",".","1","1","73","73","VAL","C","C","13","176.976",".",".","1",".",".",".",".","73","VAL","C",".","15060","1"],["605",".","1","1","73","73","VAL","CA","C","13","66.980",".",".","1",".",".",".",".","73","VAL","CA",".","15060","1"],["606",".","1","1","73","73","VAL","CB","C","13","32.020",".",".","1",".",".",".",".","73","VAL","CB",".","15060","1"],["607",".","1","1","73","73","VAL","CG1","C","13","21.600",".",".","1",".",".",".",".","73","VAL","CG1",".","15060","1"],["608",".","1","1","73","73","VAL","CG2","C","13","23.660",".",".","1",".",".",".",".","73","VAL","CG2",".","15060","1"],["609",".","1","1","73","73","VAL","N","N","15","119.359",".",".","1",".",".",".",".","73","VAL","N",".","15060","1"],["610",".","1","1","74","74","GLU","H","H","1","8.615",".",".","1",".",".",".",".","74","GLU","HN",".","15060","1"],["611",".","1","1","74","74","GLU","HA","H","1","4.190",".",".","1",".",".",".",".","74","GLU","HA",".","15060","1"],["612",".","1","1","74","74","GLU","HB2","H","1","2.079",".",".","1",".",".",".",".","74","GLU","HB1",".","15060","1"],["613",".","1","1","74","74","GLU","HB3","H","1","2.079",".",".","1",".",".",".",".","74","GLU","HB2",".","15060","1"],["614",".","1","1","74","74","GLU","CA","C","13","61.633",".",".","1",".",".",".",".","74","GLU","CA",".","15060","1"],["615",".","1","1","74","74","GLU","CB","C","13","26.038",".",".","1",".",".",".",".","74","GLU","CB",".","15060","1"],["616",".","1","1","74","74","GLU","N","N","15","119.749",".",".","1",".",".",".",".","74","GLU","N",".","15060","1"],["617",".","1","1","75","75","PRO","HA","H","1","4.280",".",".","1",".",".",".",".","75","PRO","HA",".","15060","1"],["618",".","1","1","75","75","PRO","HB2","H","1","1.610",".",".","1",".",".",".",".","75","PRO","HB1",".","15060","1"],["619",".","1","1","75","75","PRO","HB3","H","1","1.610",".",".","1",".",".",".",".","75","PRO","HB2",".","15060","1"],["620",".","1","1","75","75","PRO","HD3","H","1","2.350",".",".","1",".",".",".",".","75","PRO","HD2",".","15060","1"],["621",".","1","1","75","75","PRO","C","C","13","178.634",".",".","1",".",".",".",".","75","PRO","C",".","15060","1"],["622",".","1","1","75","75","PRO","CA","C","13","66.150",".",".","1",".",".",".",".","75","PRO","CA",".","15060","1"],["623",".","1","1","75","75","PRO","CB","C","13","30.360",".",".","1",".",".",".",".","75","PRO","CB",".","15060","1"],["624",".","1","1","75","75","PRO","CG","C","13","27.970",".",".","1",".",".",".",".","75","PRO","CG",".","15060","1"],["625",".","1","1","75","75","PRO","CD","C","13","49.760",".",".","1",".",".",".",".","75","PRO","CD",".","15060","1"],["626",".","1","1","76","76","LEU","H","H","1","7.241",".",".","1",".",".",".",".","76","LEU","HN",".","15060","1"],["627",".","1","1","76","76","LEU","HA","H","1","4.050",".",".","1",".",".",".",".","76","LEU","HA",".","15060","1"],["628",".","1","1","76","76","LEU","HB2","H","1","1.310",".",".","2",".",".",".",".","76","LEU","HB1",".","15060","1"],["629",".","1","1","76","76","LEU","HB3","H","1","2.060",".",".","2",".",".",".",".","76","LEU","HB2",".","15060","1"],["630",".","1","1","76","76","LEU","HD11","H","1","0.010",".",".","2",".",".",".",".","76","LEU","HD1",".","15060","1"],["631",".","1","1","76","76","LEU","HD12","H","1","0.010",".",".","2",".",".",".",".","76","LEU","HD1",".","15060","1"],["632",".","1","1","76","76","LEU","HD13","H","1","0.010",".",".","2",".",".",".",".","76","LEU","HD1",".","15060","1"],["633",".","1","1","76","76","LEU","HD21","H","1","0.210",".",".","2",".",".",".",".","76","LEU","HD2",".","15060","1"],["634",".","1","1","76","76","LEU","HD22","H","1","0.210",".",".","2",".",".",".",".","76","LEU","HD2",".","15060","1"],["635",".","1","1","76","76","LEU","HD23","H","1","0.210",".",".","2",".",".",".",".","76","LEU","HD2",".","15060","1"],["636",".","1","1","76","76","LEU","C","C","13","178.120",".",".","1",".",".",".",".","76","LEU","C",".","15060","1"],["637",".","1","1","76","76","LEU","CA","C","13","58.623",".",".","1",".",".",".",".","76","LEU","CA",".","15060","1"],["638",".","1","1","76","76","LEU","CB","C","13","41.900",".",".","1",".",".",".",".","76","LEU","CB",".","15060","1"],["639",".","1","1","76","76","LEU","CD1","C","13","24.440",".",".","1",".",".",".",".","76","LEU","CD1",".","15060","1"],["640",".","1","1","76","76","LEU","CD2","C","13","22.540",".",".","1",".",".",".",".","76","LEU","CD2",".","15060","1"],["641",".","1","1","76","76","LEU","N","N","15","119.170",".",".","1",".",".",".",".","76","LEU","N",".","15060","1"],["642",".","1","1","77","77","CYS","H","H","1","8.273",".",".","1",".",".",".",".","77","CYS","HN",".","15060","1"],["643",".","1","1","77","77","CYS","HA","H","1","4.300",".",".","1",".",".",".",".","77","CYS","HA",".","15060","1"],["644",".","1","1","77","77","CYS","HB3","H","1","1.640",".",".","2",".",".",".",".","77","CYS","HB2",".","15060","1"],["645",".","1","1","77","77","CYS","CA","C","13","65.007",".",".","1",".",".",".",".","77","CYS","CA",".","15060","1"],["646",".","1","1","77","77","CYS","CB","C","13","26.122",".",".","1",".",".",".",".","77","CYS","CB",".","15060","1"],["647",".","1","1","77","77","CYS","N","N","15","116.751",".",".","1",".",".",".",".","77","CYS","N",".","15060","1"],["648",".","1","1","78","78","ARG","H","H","1","8.060",".",".","1",".",".",".",".","78","ARG","HN",".","15060","1"],["649",".","1","1","78","78","ARG","HA","H","1","4.020",".",".","1",".",".",".",".","78","ARG","HA",".","15060","1"],["650",".","1","1","78","78","ARG","HB2","H","1","1.450",".",".","1",".",".",".",".","78","ARG","HB1",".","15060","1"],["651",".","1","1","78","78","ARG","HB3","H","1","1.450",".",".","1",".",".",".",".","78","ARG","HB2",".","15060","1"],["652",".","1","1","78","78","ARG","HG2","H","1","1.690",".",".","1",".",".",".",".","78","ARG","HG1",".","15060","1"],["653",".","1","1","78","78","ARG","HG3","H","1","1.690",".",".","1",".",".",".",".","78","ARG","HG2",".","15060","1"],["654",".","1","1","78","78","ARG","HD2","H","1","3.040",".",".","1",".",".",".",".","78","ARG","HD1",".","15060","1"],["655",".","1","1","78","78","ARG","HD3","H","1","3.040",".",".","1",".",".",".",".","78","ARG","HD2",".","15060","1"],["656",".","1","1","78","78","ARG","C","C","13","178.730",".",".","1",".",".",".",".","78","ARG","C",".","15060","1"],["657",".","1","1","78","78","ARG","CA","C","13","59.839",".",".","1",".",".",".",".","78","ARG","CA",".","15060","1"],["658",".","1","1","78","78","ARG","CB","C","13","29.900",".",".","1",".",".",".",".","78","ARG","CB",".","15060","1"],["659",".","1","1","78","78","ARG","CG","C","13","27.200",".",".","1",".",".",".",".","78","ARG","CG",".","15060","1"],["660",".","1","1","78","78","ARG","CD","C","13","43.540",".",".","1",".",".",".",".","78","ARG","CD",".","15060","1"],["661",".","1","1","78","78","ARG","N","N","15","120.251",".",".","1",".",".",".",".","78","ARG","N",".","15060","1"],["662",".","1","1","79","79","ARG","H","H","1","7.328",".",".","1",".",".",".",".","79","ARG","HN",".","15060","1"],["663",".","1","1","79","79","ARG","HA","H","1","4.300",".",".","1",".",".",".",".","79","ARG","HA",".","15060","1"],["664",".","1","1","79","79","ARG","HB2","H","1","1.590",".",".","1",".",".",".",".","79","ARG","HB1",".","15060","1"],["665",".","1","1","79","79","ARG","HB3","H","1","1.590",".",".","1",".",".",".",".","79","ARG","HB2",".","15060","1"],["666",".","1","1","79","79","ARG","HD3","H","1","2.580",".",".","2",".",".",".",".","79","ARG","HD2",".","15060","1"],["667",".","1","1","79","79","ARG","CA","C","13","60.025",".",".","1",".",".",".",".","79","ARG","CA",".","15060","1"],["668",".","1","1","79","79","ARG","CB","C","13","29.720",".",".","1",".",".",".",".","79","ARG","CB",".","15060","1"],["669",".","1","1","79","79","ARG","CD","C","13","42.710",".",".","1",".",".",".",".","79","ARG","CD",".","15060","1"],["670",".","1","1","79","79","ARG","N","N","15","120.135",".",".","1",".",".",".",".","79","ARG","N",".","15060","1"],["671",".","1","1","80","80","LEU","H","H","1","8.160",".",".","1",".",".",".",".","80","LEU","HN",".","15060","1"],["672",".","1","1","80","80","LEU","HA","H","1","4.080",".",".","1",".",".",".",".","80","LEU","HA",".","15060","1"],["673",".","1","1","80","80","LEU","HB2","H","1","1.810",".",".","2",".",".",".",".","80","LEU","HB1",".","15060","1"],["674",".","1","1","80","80","LEU","HB3","H","1","1.210",".",".","2",".",".",".",".","80","LEU","HB2",".","15060","1"],["675",".","1","1","80","80","LEU","HD11","H","1","0.430",".",".","2",".",".",".",".","80","LEU","HD1",".","15060","1"],["676",".","1","1","80","80","LEU","HD12","H","1","0.430",".",".","2",".",".",".",".","80","LEU","HD1",".","15060","1"],["677",".","1","1","80","80","LEU","HD13","H","1","0.430",".",".","2",".",".",".",".","80","LEU","HD1",".","15060","1"],["678",".","1","1","80","80","LEU","HD21","H","1","0.740",".",".","2",".",".",".",".","80","LEU","HD2",".","15060","1"],["679",".","1","1","80","80","LEU","HD22","H","1","0.740",".",".","2",".",".",".",".","80","LEU","HD2",".","15060","1"],["680",".","1","1","80","80","LEU","HD23","H","1","0.740",".",".","2",".",".",".",".","80","LEU","HD2",".","15060","1"],["681",".","1","1","80","80","LEU","C","C","13","178.465",".",".","1",".",".",".",".","80","LEU","C",".","15060","1"],["682",".","1","1","80","80","LEU","CA","C","13","58.042",".",".","1",".",".",".",".","80","LEU","CA",".","15060","1"],["683",".","1","1","80","80","LEU","CB","C","13","40.900",".",".","1",".",".",".",".","80","LEU","CB",".","15060","1"],["684",".","1","1","80","80","LEU","CD1","C","13","26.210",".",".","1",".",".",".",".","80","LEU","CD1",".","15060","1"],["685",".","1","1","80","80","LEU","CD2","C","13","22.470",".",".","1",".",".",".",".","80","LEU","CD2",".","15060","1"],["686",".","1","1","80","80","LEU","N","N","15","117.390",".",".","1",".",".",".",".","80","LEU","N",".","15060","1"],["687",".","1","1","81","81","ASN","H","H","1","8.517",".",".","1",".",".",".",".","81","ASN","HN",".","15060","1"],["688",".","1","1","81","81","ASN","HA","H","1","4.440",".",".","1",".",".",".",".","81","ASN","HA",".","15060","1"],["689",".","1","1","81","81","ASN","HB2","H","1","2.870",".",".","2",".",".",".",".","81","ASN","HB1",".","15060","1"],["690",".","1","1","81","81","ASN","HB3","H","1","2.820",".",".","2",".",".",".",".","81","ASN","HB2",".","15060","1"],["691",".","1","1","81","81","ASN","HD21","H","1","7.566",".",".","2",".",".",".",".","81","ASN","HD21",".","15060","1"],["692",".","1","1","81","81","ASN","HD22","H","1","6.954",".",".","2",".",".",".",".","81","ASN","HD22",".","15060","1"],["693",".","1","1","81","81","ASN","C","C","13","178.232",".",".","1",".",".",".",".","81","ASN","C",".","15060","1"],["694",".","1","1","81","81","ASN","CA","C","13","57.031",".",".","1",".",".",".",".","81","ASN","CA",".","15060","1"],["695",".","1","1","81","81","ASN","CB","C","13","38.549",".",".","1",".",".",".",".","81","ASN","CB",".","15060","1"],["696",".","1","1","81","81","ASN","N","N","15","118.647",".",".","1",".",".",".",".","81","ASN","N",".","15060","1"],["697",".","1","1","81","81","ASN","ND2","N","15","114.200",".",".","1",".",".",".",".","81","ASN","ND2",".","15060","1"],["698",".","1","1","82","82","THR","H","H","1","8.036",".",".","1",".",".",".",".","82","THR","HN",".","15060","1"],["699",".","1","1","82","82","THR","HA","H","1","3.870",".",".","1",".",".",".",".","82","THR","HA",".","15060","1"],["700",".","1","1","82","82","THR","HB","H","1","4.310",".",".","1",".",".",".",".","82","THR","HB",".","15060","1"],["701",".","1","1","82","82","THR","HG21","H","1","1.080",".",".","1",".",".",".",".","82","THR","HG2",".","15060","1"],["702",".","1","1","82","82","THR","HG22","H","1","1.080",".",".","1",".",".",".",".","82","THR","HG2",".","15060","1"],["703",".","1","1","82","82","THR","HG23","H","1","1.080",".",".","1",".",".",".",".","82","THR","HG2",".","15060","1"],["704",".","1","1","82","82","THR","CA","C","13","67.400",".",".","1",".",".",".",".","82","THR","CA",".","15060","1"],["705",".","1","1","82","82","THR","CB","C","13","68.681",".",".","1",".",".",".",".","82","THR","CB",".","15060","1"],["706",".","1","1","82","82","THR","CG2","C","13","22.060",".",".","1",".",".",".",".","82","THR","CG2",".","15060","1"],["707",".","1","1","82","82","THR","N","N","15","119.380",".",".","1",".",".",".",".","82","THR","N",".","15060","1"],["708",".","1","1","83","83","LEU","H","H","1","7.897",".",".","1",".",".",".",".","83","LEU","HN",".","15060","1"],["709",".","1","1","83","83","LEU","HA","H","1","3.670",".",".","1",".",".",".",".","83","LEU","HA",".","15060","1"],["710",".","1","1","83","83","LEU","HB2","H","1","1.780",".",".","2",".",".",".",".","83","LEU","HB1",".","15060","1"],["711",".","1","1","83","83","LEU","HB3","H","1","0.710",".",".","2",".",".",".",".","83","LEU","HB2",".","15060","1"],["712",".","1","1","83","83","LEU","HG","H","1","1.500",".",".","1",".",".",".",".","83","LEU","HG",".","15060","1"],["713",".","1","1","83","83","LEU","HD11","H","1","-0.180",".",".","2",".",".",".",".","83","LEU","HD1",".","15060","1"],["714",".","1","1","83","83","LEU","HD12","H","1","-0.180",".",".","2",".",".",".",".","83","LEU","HD1",".","15060","1"],["715",".","1","1","83","83","LEU","HD13","H","1","-0.180",".",".","2",".",".",".",".","83","LEU","HD1",".","15060","1"],["716",".","1","1","83","83","LEU","HD21","H","1","0.300",".",".","2",".",".",".",".","83","LEU","HD2",".","15060","1"],["717",".","1","1","83","83","LEU","HD22","H","1","0.300",".",".","2",".",".",".",".","83","LEU","HD2",".","15060","1"],["718",".","1","1","83","83","LEU","HD23","H","1","0.300",".",".","2",".",".",".",".","83","LEU","HD2",".","15060","1"],["719",".","1","1","83","83","LEU","C","C","13","178.898",".",".","1",".",".",".",".","83","LEU","C",".","15060","1"],["720",".","1","1","83","83","LEU","CA","C","13","57.760",".",".","1",".",".",".",".","83","LEU","CA",".","15060","1"],["721",".","1","1","83","83","LEU","CB","C","13","41.090",".",".","1",".",".",".",".","83","LEU","CB",".","15060","1"],["722",".","1","1","83","83","LEU","CG","C","13","25.430",".",".","1",".",".",".",".","83","LEU","CG",".","15060","1"],["723",".","1","1","83","83","LEU","CD1","C","13","20.740",".",".","1",".",".",".",".","83","LEU","CD1",".","15060","1"],["724",".","1","1","83","83","LEU","CD2","C","13","26.075",".",".","1",".",".",".",".","83","LEU","CD2",".","15060","1"],["725",".","1","1","83","83","LEU","N","N","15","121.629",".",".","1",".",".",".",".","83","LEU","N",".","15060","1"],["726",".","1","1","84","84","ASN","H","H","1","8.967",".",".","1",".",".",".",".","84","ASN","HN",".","15060","1"],["727",".","1","1","84","84","ASN","HA","H","1","4.740",".",".","1",".",".",".",".","84","ASN","HA",".","15060","1"],["728",".","1","1","84","84","ASN","HB2","H","1","3.330",".",".","2",".",".",".",".","84","ASN","HB1",".","15060","1"],["729",".","1","1","84","84","ASN","HB3","H","1","3.020",".",".","2",".",".",".",".","84","ASN","HB2",".","15060","1"],["730",".","1","1","84","84","ASN","HD21","H","1","7.232",".",".","2",".",".",".",".","84","ASN","HD21",".","15060","1"],["731",".","1","1","84","84","ASN","HD22","H","1","7.739",".",".","2",".",".",".",".","84","ASN","HD22",".","15060","1"],["732",".","1","1","84","84","ASN","C","C","13","178.751",".",".","1",".",".",".",".","84","ASN","C",".","15060","1"],["733",".","1","1","84","84","ASN","CA","C","13","56.505",".",".","1",".",".",".",".","84","ASN","CA",".","15060","1"],["734",".","1","1","84","84","ASN","CB","C","13","36.883",".",".","1",".",".",".",".","84","ASN","CB",".","15060","1"],["735",".","1","1","84","84","ASN","N","N","15","121.031",".",".","1",".",".",".",".","84","ASN","N",".","15060","1"],["736",".","1","1","84","84","ASN","ND2","N","15","105.352",".",".","1",".",".",".",".","84","ASN","ND2",".","15060","1"],["737",".","1","1","85","85","LYS","H","H","1","8.096",".",".","1",".",".",".",".","85","LYS","HN",".","15060","1"],["738",".","1","1","85","85","LYS","HA","H","1","4.120",".",".","1",".",".",".",".","85","LYS","HA",".","15060","1"],["739",".","1","1","85","85","LYS","HB2","H","1","2.030",".",".","2",".",".",".",".","85","LYS","HB1",".","15060","1"],["740",".","1","1","85","85","LYS","HB3","H","1","2.110",".",".","2",".",".",".",".","85","LYS","HB2",".","15060","1"],["741",".","1","1","85","85","LYS","HG2","H","1","1.700",".",".","1",".",".",".",".","85","LYS","HG1",".","15060","1"],["742",".","1","1","85","85","LYS","HG3","H","1","1.700",".",".","1",".",".",".",".","85","LYS","HG2",".","15060","1"],["743",".","1","1","85","85","LYS","HD2","H","1","1.410",".",".","1",".",".",".",".","85","LYS","HD1",".","15060","1"],["744",".","1","1","85","85","LYS","HD3","H","1","1.410",".",".","1",".",".",".",".","85","LYS","HD2",".","15060","1"],["745",".","1","1","85","85","LYS","HE2","H","1","2.970",".",".","1",".",".",".",".","85","LYS","HE1",".","15060","1"],["746",".","1","1","85","85","LYS","HE3","H","1","2.970",".",".","1",".",".",".",".","85","LYS","HE2",".","15060","1"],["747",".","1","1","85","85","LYS","C","C","13","179.722",".",".","1",".",".",".",".","85","LYS","C",".","15060","1"],["748",".","1","1","85","85","LYS","CA","C","13","59.816",".",".","1",".",".",".",".","85","LYS","CA",".","15060","1"],["749",".","1","1","85","85","LYS","CB","C","13","31.500",".",".","1",".",".",".",".","85","LYS","CB",".","15060","1"],["750",".","1","1","85","85","LYS","CG","C","13","29.160",".",".","1",".",".",".",".","85","LYS","CG",".","15060","1"],["751",".","1","1","85","85","LYS","CD","C","13","24.960",".",".","1",".",".",".",".","85","LYS","CD",".","15060","1"],["752",".","1","1","85","85","LYS","CE","C","13","41.770",".",".","1",".",".",".",".","85","LYS","CE",".","15060","1"],["753",".","1","1","85","85","LYS","N","N","15","122.287",".",".","1",".",".",".",".","85","LYS","N",".","15060","1"],["754",".","1","1","86","86","CYS","H","H","1","8.435",".",".","1",".",".",".",".","86","CYS","HN",".","15060","1"],["755",".","1","1","86","86","CYS","HA","H","1","4.130",".",".","1",".",".",".",".","86","CYS","HA",".","15060","1"],["756",".","1","1","86","86","CYS","HB2","H","1","3.110",".",".","1",".",".",".",".","86","CYS","HB1",".","15060","1"],["757",".","1","1","86","86","CYS","HB3","H","1","3.110",".",".","1",".",".",".",".","86","CYS","HB2",".","15060","1"],["758",".","1","1","86","86","CYS","C","C","13","177.189",".",".","1",".",".",".",".","86","CYS","C",".","15060","1"],["759",".","1","1","86","86","CYS","CA","C","13","63.919",".",".","1",".",".",".",".","86","CYS","CA",".","15060","1"],["760",".","1","1","86","86","CYS","CB","C","13","26.830",".",".","1",".",".",".",".","86","CYS","CB",".","15060","1"],["761",".","1","1","86","86","CYS","N","N","15","118.712",".",".","1",".",".",".",".","86","CYS","N",".","15060","1"],["762",".","1","1","87","87","ALA","H","H","1","8.744",".",".","1",".",".",".",".","87","ALA","HN",".","15060","1"],["763",".","1","1","87","87","ALA","HA","H","1","4.310",".",".","1",".",".",".",".","87","ALA","HA",".","15060","1"],["764",".","1","1","87","87","ALA","HB1","H","1","1.550",".",".","1",".",".",".",".","87","ALA","HB",".","15060","1"],["765",".","1","1","87","87","ALA","HB2","H","1","1.550",".",".","1",".",".",".",".","87","ALA","HB",".","15060","1"],["766",".","1","1","87","87","ALA","HB3","H","1","1.550",".",".","1",".",".",".",".","87","ALA","HB",".","15060","1"],["767",".","1","1","87","87","ALA","C","C","13","179.569",".",".","1",".",".",".",".","87","ALA","C",".","15060","1"],["768",".","1","1","87","87","ALA","CA","C","13","54.539",".",".","1",".",".",".",".","87","ALA","CA",".","15060","1"],["769",".","1","1","87","87","ALA","CB","C","13","19.350",".",".","1",".",".",".",".","87","ALA","CB",".","15060","1"],["770",".","1","1","87","87","ALA","N","N","15","121.138",".",".","1",".",".",".",".","87","ALA","N",".","15060","1"],["771",".","1","1","88","88","SER","H","H","1","8.087",".",".","1",".",".",".",".","88","SER","HN",".","15060","1"],["772",".","1","1","88","88","SER","HA","H","1","4.330",".",".","1",".",".",".",".","88","SER","HA",".","15060","1"],["773",".","1","1","88","88","SER","HB2","H","1","4.010",".",".","1",".",".",".",".","88","SER","HB1",".","15060","1"],["774",".","1","1","88","88","SER","HB3","H","1","4.010",".",".","1",".",".",".",".","88","SER","HB2",".","15060","1"],["775",".","1","1","88","88","SER","C","C","13","175.354",".",".","1",".",".",".",".","88","SER","C",".","15060","1"],["776",".","1","1","88","88","SER","CA","C","13","60.860",".",".","1",".",".",".",".","88","SER","CA",".","15060","1"],["777",".","1","1","88","88","SER","CB","C","13","63.560",".",".","1",".",".",".",".","88","SER","CB",".","15060","1"],["778",".","1","1","88","88","SER","N","N","15","113.499",".",".","1",".",".",".",".","88","SER","N",".","15060","1"],["779",".","1","1","89","89","MET","H","H","1","7.782",".",".","1",".",".",".",".","89","MET","HN",".","15060","1"],["780",".","1","1","89","89","MET","HA","H","1","4.310",".",".","1",".",".",".",".","89","MET","HA",".","15060","1"],["781",".","1","1","89","89","MET","HB2","H","1","2.570",".",".","2",".",".",".",".","89","MET","HB1",".","15060","1"],["782",".","1","1","89","89","MET","HB3","H","1","2.730",".",".","2",".",".",".",".","89","MET","HB2",".","15060","1"],["783",".","1","1","89","89","MET","HG2","H","1","1.640",".",".","2",".",".",".",".","89","MET","HG1",".","15060","1"],["784",".","1","1","89","89","MET","HG3","H","1","1.560",".",".","2",".",".",".",".","89","MET","HG2",".","15060","1"],["785",".","1","1","89","89","MET","HE1","H","1","2.070",".",".","1",".",".",".",".","89","MET","HE",".","15060","1"],["786",".","1","1","89","89","MET","HE2","H","1","2.070",".",".","1",".",".",".",".","89","MET","HE",".","15060","1"],["787",".","1","1","89","89","MET","HE3","H","1","2.070",".",".","1",".",".",".",".","89","MET","HE",".","15060","1"],["788",".","1","1","89","89","MET","CA","C","13","56.942",".",".","1",".",".",".",".","89","MET","CA",".","15060","1"],["789",".","1","1","89","89","MET","CB","C","13","32.020",".",".","1",".",".",".",".","89","MET","CB",".","15060","1"],["790",".","1","1","89","89","MET","CE","C","13","17.020",".",".","1",".",".",".",".","89","MET","CE",".","15060","1"],["791",".","1","1","89","89","MET","N","N","15","120.541",".",".","1",".",".",".",".","89","MET","N",".","15060","1"],["792",".","1","1","90","90","ARG","H","H","1","7.793",".",".","1",".",".",".",".","90","ARG","HN",".","15060","1"],["793",".","1","1","90","90","ARG","HA","H","1","4.250",".",".","1",".",".",".",".","90","ARG","HA",".","15060","1"],["794",".","1","1","90","90","ARG","HB2","H","1","1.880",".",".","1",".",".",".",".","90","ARG","HB1",".","15060","1"],["795",".","1","1","90","90","ARG","HB3","H","1","1.880",".",".","1",".",".",".",".","90","ARG","HB2",".","15060","1"],["796",".","1","1","90","90","ARG","HG2","H","1","1.670",".",".","1",".",".",".",".","90","ARG","HG1",".","15060","1"],["797",".","1","1","90","90","ARG","HG3","H","1","1.670",".",".","1",".",".",".",".","90","ARG","HG2",".","15060","1"],["798",".","1","1","90","90","ARG","HD2","H","1","3.180",".",".","1",".",".",".",".","90","ARG","HD1",".","15060","1"],["799",".","1","1","90","90","ARG","HD3","H","1","3.180",".",".","1",".",".",".",".","90","ARG","HD2",".","15060","1"],["800",".","1","1","90","90","ARG","C","C","13","176.503",".",".","1",".",".",".",".","90","ARG","C",".","15060","1"],["801",".","1","1","90","90","ARG","CA","C","13","56.710",".",".","1",".",".",".",".","90","ARG","CA",".","15060","1"],["802",".","1","1","90","90","ARG","CB","C","13","30.250",".",".","1",".",".",".",".","90","ARG","CB",".","15060","1"],["803",".","1","1","90","90","ARG","CG","C","13","27.030",".",".","1",".",".",".",".","90","ARG","CG",".","15060","1"],["804",".","1","1","90","90","ARG","CD","C","13","43.540",".",".","1",".",".",".",".","90","ARG","CD",".","15060","1"],["805",".","1","1","90","90","ARG","N","N","15","118.950",".",".","1",".",".",".",".","90","ARG","N",".","15060","1"],["806",".","1","1","91","91","LEU","H","H","1","7.936",".",".","1",".",".",".",".","91","LEU","HN",".","15060","1"],["807",".","1","1","91","91","LEU","HA","H","1","4.350",".",".","1",".",".",".",".","91","LEU","HA",".","15060","1"],["808",".","1","1","91","91","LEU","HB2","H","1","1.700",".",".","2",".",".",".",".","91","LEU","HB1",".","15060","1"],["809",".","1","1","91","91","LEU","HB3","H","1","1.600",".",".","2",".",".",".",".","91","LEU","HB2",".","15060","1"],["810",".","1","1","91","91","LEU","HG","H","1","1.340",".",".","1",".",".",".",".","91","LEU","HG",".","15060","1"],["811",".","1","1","91","91","LEU","HD11","H","1","0.890",".",".","2",".",".",".",".","91","LEU","HD1",".","15060","1"],["812",".","1","1","91","91","LEU","HD12","H","1","0.890",".",".","2",".",".",".",".","91","LEU","HD1",".","15060","1"],["813",".","1","1","91","91","LEU","HD13","H","1","0.890",".",".","2",".",".",".",".","91","LEU","HD1",".","15060","1"],["814",".","1","1","91","91","LEU","HD21","H","1","0.960",".",".","2",".",".",".",".","91","LEU","HD2",".","15060","1"],["815",".","1","1","91","91","LEU","HD22","H","1","0.960",".",".","2",".",".",".",".","91","LEU","HD2",".","15060","1"],["816",".","1","1","91","91","LEU","HD23","H","1","0.960",".",".","2",".",".",".",".","91","LEU","HD2",".","15060","1"],["817",".","1","1","91","91","LEU","CA","C","13","55.314",".",".","1",".",".",".",".","91","LEU","CA",".","15060","1"],["818",".","1","1","91","91","LEU","CB","C","13","42.427",".",".","1",".",".",".",".","91","LEU","CB",".","15060","1"],["819",".","1","1","91","91","LEU","CG","C","13","26.930",".",".","1",".",".",".",".","91","LEU","CG",".","15060","1"],["820",".","1","1","91","91","LEU","CD1","C","13","23.320",".",".","1",".",".",".",".","91","LEU","CD1",".","15060","1"],["821",".","1","1","91","91","LEU","CD2","C","13","25.531",".",".","1",".",".",".",".","91","LEU","CD2",".","15060","1"],["822",".","1","1","91","91","LEU","N","N","15","121.017",".",".","1",".",".",".",".","91","LEU","N",".","15060","1"],["823",".","1","1","92","92","ASP","H","H","1","8.269",".",".","1",".",".",".",".","92","ASP","HN",".","15060","1"],["824",".","1","1","92","92","ASP","HA","H","1","4.620",".",".","1",".",".",".",".","92","ASP","HA",".","15060","1"],["825",".","1","1","92","92","ASP","HB3","H","1","2.730",".",".","2",".",".",".",".","92","ASP","HB2",".","15060","1"],["826",".","1","1","92","92","ASP","C","C","13","176.812",".",".","1",".",".",".",".","92","ASP","C",".","15060","1"],["827",".","1","1","92","92","ASP","CA","C","13","54.606",".",".","1",".",".",".",".","92","ASP","CA",".","15060","1"],["828",".","1","1","92","92","ASP","CB","C","13","41.257",".",".","1",".",".",".",".","92","ASP","CB",".","15060","1"],["829",".","1","1","92","92","ASP","N","N","15","120.647",".",".","1",".",".",".",".","92","ASP","N",".","15060","1"],["830",".","1","1","93","93","VAL","H","H","1","8.033",".",".","1",".",".",".",".","93","VAL","HN",".","15060","1"],["831",".","1","1","93","93","VAL","HA","H","1","4.050",".",".","1",".",".",".",".","93","VAL","HA",".","15060","1"],["832",".","1","1","93","93","VAL","HB","H","1","2.130",".",".","1",".",".",".",".","93","VAL","HB",".","15060","1"],["833",".","1","1","93","93","VAL","HG11","H","1","0.910",".",".","2",".",".",".",".","93","VAL","HG1",".","15060","1"],["834",".","1","1","93","93","VAL","HG12","H","1","0.910",".",".","2",".",".",".",".","93","VAL","HG1",".","15060","1"],["835",".","1","1","93","93","VAL","HG13","H","1","0.910",".",".","2",".",".",".",".","93","VAL","HG1",".","15060","1"],["836",".","1","1","93","93","VAL","HG21","H","1","0.970",".",".","2",".",".",".",".","93","VAL","HG2",".","15060","1"],["837",".","1","1","93","93","VAL","HG22","H","1","0.970",".",".","2",".",".",".",".","93","VAL","HG2",".","15060","1"],["838",".","1","1","93","93","VAL","HG23","H","1","0.970",".",".","2",".",".",".",".","93","VAL","HG2",".","15060","1"],["839",".","1","1","93","93","VAL","C","C","13","176.146",".",".","1",".",".",".",".","93","VAL","C",".","15060","1"],["840",".","1","1","93","93","VAL","CA","C","13","63.140",".",".","1",".",".",".",".","93","VAL","CA",".","15060","1"],["841",".","1","1","93","93","VAL","CB","C","13","32.010",".",".","1",".",".",".",".","93","VAL","CB",".","15060","1"],["842",".","1","1","93","93","VAL","CG1","C","13","20.700",".",".","1",".",".",".",".","93","VAL","CG1",".","15060","1"],["843",".","1","1","93","93","VAL","CG2","C","13","21.180",".",".","1",".",".",".",".","93","VAL","CG2",".","15060","1"],["844",".","1","1","93","93","VAL","N","N","15","119.731",".",".","1",".",".",".",".","93","VAL","N",".","15060","1"],["845",".","1","1","94","94","ASN","H","H","1","8.376",".",".","1",".",".",".",".","94","ASN","HN",".","15060","1"],["846",".","1","1","94","94","ASN","HA","H","1","4.690",".",".","1",".",".",".",".","94","ASN","HA",".","15060","1"],["847",".","1","1","94","94","ASN","HB2","H","1","2.740",".",".","1",".",".",".",".","94","ASN","HB1",".","15060","1"],["848",".","1","1","94","94","ASN","HB3","H","1","2.740",".",".","1",".",".",".",".","94","ASN","HB2",".","15060","1"],["849",".","1","1","94","94","ASN","HD21","H","1","7.684",".",".","2",".",".",".",".","94","ASN","HD21",".","15060","1"],["850",".","1","1","94","94","ASN","HD22","H","1","6.944",".",".","2",".",".",".",".","94","ASN","HD22",".","15060","1"],["851",".","1","1","94","94","ASN","C","C","13","175.222",".",".","1",".",".",".",".","94","ASN","C",".","15060","1"],["852",".","1","1","94","94","ASN","CA","C","13","53.605",".",".","1",".",".",".",".","94","ASN","CA",".","15060","1"],["853",".","1","1","94","94","ASN","CB","C","13","38.720",".",".","1",".",".",".",".","94","ASN","CB",".","15060","1"],["854",".","1","1","94","94","ASN","N","N","15","120.080",".",".","1",".",".",".",".","94","ASN","N",".","15060","1"],["855",".","1","1","94","94","ASN","ND2","N","15","113.553",".",".","1",".",".",".",".","94","ASN","ND2",".","15060","1"],["856",".","1","1","95","95","PHE","H","H","1","8.048",".",".","1",".",".",".",".","95","PHE","HN",".","15060","1"],["857",".","1","1","95","95","PHE","HA","H","1","4.502",".",".","1",".",".",".",".","95","PHE","HA",".","15060","1"],["858",".","1","1","95","95","PHE","HB2","H","1","3.130",".",".","1",".",".",".",".","95","PHE","HB1",".","15060","1"],["859",".","1","1","95","95","PHE","HB3","H","1","3.130",".",".","1",".",".",".",".","95","PHE","HB2",".","15060","1"],["860",".","1","1","95","95","PHE","HD1","H","1","7.261",".",".","3",".",".",".",".","95","PHE","HD1",".","15060","1"],["861",".","1","1","95","95","PHE","HE1","H","1","7.359",".",".","3",".",".",".",".","95","PHE","HE1",".","15060","1"],["862",".","1","1","95","95","PHE","HZ","H","1","7.309",".",".","1",".",".",".",".","95","PHE","HZ",".","15060","1"],["863",".","1","1","95","95","PHE","C","C","13","175.568",".",".","1",".",".",".",".","95","PHE","C",".","15060","1"],["864",".","1","1","95","95","PHE","CA","C","13","58.377",".",".","1",".",".",".",".","95","PHE","CA",".","15060","1"],["865",".","1","1","95","95","PHE","CB","C","13","39.288",".",".","1",".",".",".",".","95","PHE","CB",".","15060","1"],["866",".","1","1","95","95","PHE","N","N","15","120.616",".",".","1",".",".",".",".","95","PHE","N",".","15060","1"],["867",".","1","1","96","96","GLN","H","H","1","8.160",".",".","1",".",".",".",".","96","GLN","HN",".","15060","1"],["868",".","1","1","96","96","GLN","HA","H","1","4.240",".",".","1",".",".",".",".","96","GLN","HA",".","15060","1"],["869",".","1","1","96","96","GLN","HB2","H","1","2.018",".",".","2",".",".",".",".","96","GLN","HB1",".","15060","1"],["870",".","1","1","96","96","GLN","HB3","H","1","1.912",".",".","2",".",".",".",".","96","GLN","HB2",".","15060","1"],["871",".","1","1","96","96","GLN","HG2","H","1","2.280",".",".","1",".",".",".",".","96","GLN","HG1",".","15060","1"],["872",".","1","1","96","96","GLN","HG3","H","1","2.280",".",".","1",".",".",".",".","96","GLN","HG2",".","15060","1"],["873",".","1","1","96","96","GLN","HE21","H","1","7.519",".",".","2",".",".",".",".","96","GLN","HE21",".","15060","1"],["874",".","1","1","96","96","GLN","HE22","H","1","6.884",".",".","2",".",".",".",".","96","GLN","HE22",".","15060","1"],["875",".","1","1","96","96","GLN","C","C","13","175.470",".",".","1",".",".",".",".","96","GLN","C",".","15060","1"],["876",".","1","1","96","96","GLN","CA","C","13","55.770",".",".","1",".",".",".",".","96","GLN","CA",".","15060","1"],["877",".","1","1","96","96","GLN","CB","C","13","29.291",".",".","1",".",".",".",".","96","GLN","CB",".","15060","1"],["878",".","1","1","96","96","GLN","CG","C","13","35.570",".",".","1",".",".",".",".","96","GLN","CG",".","15060","1"],["879",".","1","1","96","96","GLN","N","N","15","121.289",".",".","1",".",".",".",".","96","GLN","N",".","15060","1"],["880",".","1","1","96","96","GLN","NE2","N","15","112.512",".",".","1",".",".",".",".","96","GLN","NE2",".","15060","1"],["881",".","1","1","97","97","ARG","H","H","1","8.204",".",".","1",".",".",".",".","97","ARG","HN",".","15060","1"],["882",".","1","1","97","97","ARG","HA","H","1","4.260",".",".","1",".",".",".",".","97","ARG","HA",".","15060","1"],["883",".","1","1","97","97","ARG","HB2","H","1","1.670",".",".","2",".",".",".",".","97","ARG","HB1",".","15060","1"],["884",".","1","1","97","97","ARG","HB3","H","1","1.810",".",".","2",".",".",".",".","97","ARG","HB2",".","15060","1"],["885",".","1","1","97","97","ARG","HG2","H","1","1.650",".",".","1",".",".",".",".","97","ARG","HG1",".","15060","1"],["886",".","1","1","97","97","ARG","HG3","H","1","1.650",".",".","1",".",".",".",".","97","ARG","HG2",".","15060","1"],["887",".","1","1","97","97","ARG","HD2","H","1","3.200",".",".","1",".",".",".",".","97","ARG","HD1",".","15060","1"],["888",".","1","1","97","97","ARG","HD3","H","1","3.200",".",".","1",".",".",".",".","97","ARG","HD2",".","15060","1"],["889",".","1","1","97","97","ARG","C","C","13","176.202",".",".","1",".",".",".",".","97","ARG","C",".","15060","1"],["890",".","1","1","97","97","ARG","CA","C","13","56.090",".",".","1",".",".",".",".","97","ARG","CA",".","15060","1"],["891",".","1","1","97","97","ARG","CB","C","13","30.770",".",".","1",".",".",".",".","97","ARG","CB",".","15060","1"],["892",".","1","1","97","97","ARG","CD","C","13","43.220",".",".","1",".",".",".",".","97","ARG","CD",".","15060","1"],["893",".","1","1","97","97","ARG","N","N","15","122.338",".",".","1",".",".",".",".","97","ARG","N",".","15060","1"],["894",".","1","1","98","98","LYS","H","H","1","8.441",".",".","1",".",".",".",".","98","LYS","HN",".","15060","1"],["895",".","1","1","98","98","LYS","HA","H","1","4.300",".",".","1",".",".",".",".","98","LYS","HA",".","15060","1"],["896",".","1","1","98","98","LYS","HB2","H","1","1.750",".",".","2",".",".",".",".","98","LYS","HB1",".","15060","1"],["897",".","1","1","98","98","LYS","HB3","H","1","1.810",".",".","2",".",".",".",".","98","LYS","HB2",".","15060","1"],["898",".","1","1","98","98","LYS","HG2","H","1","1.680",".",".","1",".",".",".",".","98","LYS","HG1",".","15060","1"],["899",".","1","1","98","98","LYS","HG3","H","1","1.680",".",".","1",".",".",".",".","98","LYS","HG2",".","15060","1"],["900",".","1","1","98","98","LYS","HD2","H","1","1.420",".",".","1",".",".",".",".","98","LYS","HD1",".","15060","1"],["901",".","1","1","98","98","LYS","HD3","H","1","1.420",".",".","1",".",".",".",".","98","LYS","HD2",".","15060","1"],["902",".","1","1","98","98","LYS","HE2","H","1","2.980",".",".","1",".",".",".",".","98","LYS","HE1",".","15060","1"],["903",".","1","1","98","98","LYS","HE3","H","1","2.980",".",".","1",".",".",".",".","98","LYS","HE2",".","15060","1"],["904",".","1","1","98","98","LYS","C","C","13","176.486",".",".","1",".",".",".",".","98","LYS","C",".","15060","1"],["905",".","1","1","98","98","LYS","CA","C","13","55.980",".",".","1",".",".",".",".","98","LYS","CA",".","15060","1"],["906",".","1","1","98","98","LYS","CB","C","13","33.050",".",".","1",".",".",".",".","98","LYS","CB",".","15060","1"],["907",".","1","1","98","98","LYS","CG","C","13","29.000",".",".","1",".",".",".",".","98","LYS","CG",".","15060","1"],["908",".","1","1","98","98","LYS","CD","C","13","24.760",".",".","1",".",".",".",".","98","LYS","CD",".","15060","1"],["909",".","1","1","98","98","LYS","CE","C","13","42.080",".",".","1",".",".",".",".","98","LYS","CE",".","15060","1"],["910",".","1","1","98","98","LYS","N","N","15","123.396",".",".","1",".",".",".",".","98","LYS","N",".","15060","1"],["911",".","1","1","99","99","LYS","H","H","1","8.522",".",".","1",".",".",".",".","99","LYS","HN",".","15060","1"],["912",".","1","1","99","99","LYS","CA","C","13","56.547",".",".","1",".",".",".",".","99","LYS","CA",".","15060","1"],["913",".","1","1","99","99","LYS","CB","C","13","33.003",".",".","1",".",".",".",".","99","LYS","CB",".","15060","1"],["914",".","1","1","99","99","LYS","N","N","15","123.539",".",".","1",".",".",".",".","99","LYS","N",".","15060","1"],["915",".","1","1","100","100","GLY","HA2","H","1","3.960",".",".","2",".",".",".",".","100","GLY","HA1",".","15060","1"],["916",".","1","1","100","100","GLY","HA3","H","1","4.000",".",".","2",".",".",".",".","100","GLY","HA2",".","15060","1"],["917",".","1","1","100","100","GLY","C","C","13","173.922",".",".","1",".",".",".",".","100","GLY","C",".","15060","1"],["918",".","1","1","100","100","GLY","CA","C","13","45.190",".",".","1",".",".",".",".","100","GLY","CA",".","15060","1"],["919",".","1","1","101","101","ASP","H","H","1","8.269",".",".","1",".",".",".",".","101","ASP","HN",".","15060","1"],["920",".","1","1","101","101","ASP","HA","H","1","4.630",".",".","1",".",".",".",".","101","ASP","HA",".","15060","1"],["921",".","1","1","101","101","ASP","HB2","H","1","2.660",".",".","2",".",".",".",".","101","ASP","HB1",".","15060","1"],["922",".","1","1","101","101","ASP","HB3","H","1","2.740",".",".","2",".",".",".",".","101","ASP","HB2",".","15060","1"],["923",".","1","1","101","101","ASP","CA","C","13","54.487",".",".","1",".",".",".",".","101","ASP","CA",".","15060","1"],["924",".","1","1","101","101","ASP","CB","C","13","41.259",".",".","1",".",".",".",".","101","ASP","CB",".","15060","1"],["925",".","1","1","101","101","ASP","N","N","15","120.647",".",".","1",".",".",".",".","101","ASP","N",".","15060","1"],["926",".","1","1","102","102","ASP","H","H","1","8.376",".",".","1",".",".",".",".","102","ASP","HN",".","15060","1"],["927",".","1","1","102","102","ASP","HA","H","1","4.609",".",".","1",".",".",".",".","102","ASP","HA",".","15060","1"],["928",".","1","1","102","102","ASP","HB2","H","1","2.666",".",".","2",".",".",".",".","102","ASP","HB1",".","15060","1"],["929",".","1","1","102","102","ASP","HB3","H","1","2.670",".",".","2",".",".",".",".","102","ASP","HB2",".","15060","1"],["930",".","1","1","102","102","ASP","C","C","13","176.282",".",".","1",".",".",".",".","102","ASP","C",".","15060","1"],["931",".","1","1","102","102","ASP","CA","C","13","54.572",".",".","1",".",".",".",".","102","ASP","CA",".","15060","1"],["932",".","1","1","102","102","ASP","CB","C","13","41.040",".",".","1",".",".",".",".","102","ASP","CB",".","15060","1"],["933",".","1","1","102","102","ASP","N","N","15","120.080",".",".","1",".",".",".",".","102","ASP","N",".","15060","1"],["934",".","1","1","103","103","SER","H","H","1","8.239",".",".","1",".",".",".",".","103","SER","HN",".","15060","1"],["935",".","1","1","103","103","SER","HA","H","1","4.420",".",".","1",".",".",".",".","103","SER","HA",".","15060","1"],["936",".","1","1","103","103","SER","HB2","H","1","3.870",".",".","1",".",".",".",".","103","SER","HB1",".","15060","1"],["937",".","1","1","103","103","SER","HB3","H","1","3.870",".",".","1",".",".",".",".","103","SER","HB2",".","15060","1"],["938",".","1","1","103","103","SER","C","C","13","174.385",".",".","1",".",".",".",".","103","SER","C",".","15060","1"],["939",".","1","1","103","103","SER","CA","C","13","58.470",".",".","1",".",".",".",".","103","SER","CA",".","15060","1"],["940",".","1","1","103","103","SER","CB","C","13","64.280",".",".","1",".",".",".",".","103","SER","CB",".","15060","1"],["941",".","1","1","103","103","SER","N","N","15","115.602",".",".","1",".",".",".",".","103","SER","N",".","15060","1"],["942",".","1","1","104","104","ASP","H","H","1","8.409",".",".","1",".",".",".",".","104","ASP","HN",".","15060","1"],["943",".","1","1","104","104","ASP","HA","H","1","4.640",".",".","1",".",".",".",".","104","ASP","HA",".","15060","1"],["944",".","1","1","104","104","ASP","HB2","H","1","2.664",".",".","2",".",".",".",".","104","ASP","HB1",".","15060","1"],["945",".","1","1","104","104","ASP","HB3","H","1","2.740",".",".","2",".",".",".",".","104","ASP","HB2",".","15060","1"],["946",".","1","1","104","104","ASP","C","C","13","176.192",".",".","1",".",".",".",".","104","ASP","C",".","15060","1"],["947",".","1","1","104","104","ASP","CA","C","13","54.567",".",".","1",".",".",".",".","104","ASP","CA",".","15060","1"],["948",".","1","1","104","104","ASP","CB","C","13","41.250",".",".","1",".",".",".",".","104","ASP","CB",".","15060","1"],["949",".","1","1","104","104","ASP","N","N","15","122.658",".",".","1",".",".",".",".","104","ASP","N",".","15060","1"],["950",".","1","1","105","105","GLU","H","H","1","8.269",".",".","1",".",".",".",".","105","GLU","HN",".","15060","1"],["951",".","1","1","105","105","GLU","HA","H","1","4.271",".",".","1",".",".",".",".","105","GLU","HA",".","15060","1"],["952",".","1","1","105","105","GLU","HB2","H","1","2.080",".",".","2",".",".",".",".","105","GLU","HB1",".","15060","1"],["953",".","1","1","105","105","GLU","HB3","H","1","1.900",".",".","2",".",".",".",".","105","GLU","HB2",".","15060","1"],["954",".","1","1","105","105","GLU","HG2","H","1","2.260",".",".","1",".",".",".",".","105","GLU","HG1",".","15060","1"],["955",".","1","1","105","105","GLU","HG3","H","1","2.260",".",".","1",".",".",".",".","105","GLU","HG2",".","15060","1"],["956",".","1","1","105","105","GLU","C","C","13","176.313",".",".","1",".",".",".",".","105","GLU","C",".","15060","1"],["957",".","1","1","105","105","GLU","CA","C","13","56.521",".",".","1",".",".",".",".","105","GLU","CA",".","15060","1"],["958",".","1","1","105","105","GLU","CB","C","13","30.363",".",".","1",".",".",".",".","105","GLU","CB",".","15060","1"],["959",".","1","1","105","105","GLU","N","N","15","120.647",".",".","1",".",".",".",".","105","GLU","N",".","15060","1"],["960",".","1","1","106","106","GLU","H","H","1","8.391",".",".","1",".",".",".",".","106","GLU","HN",".","15060","1"],["961",".","1","1","106","106","GLU","HA","H","1","4.300",".",".","1",".",".",".",".","106","GLU","HA",".","15060","1"],["962",".","1","1","106","106","GLU","HB2","H","1","2.070",".",".","2",".",".",".",".","106","GLU","HB1",".","15060","1"],["963",".","1","1","106","106","GLU","HB3","H","1","1.910",".",".","2",".",".",".",".","106","GLU","HB2",".","15060","1"],["964",".","1","1","106","106","GLU","HG2","H","1","2.260",".",".","1",".",".",".",".","106","GLU","HG1",".","15060","1"],["965",".","1","1","106","106","GLU","HG3","H","1","2.260",".",".","1",".",".",".",".","106","GLU","HG2",".","15060","1"],["966",".","1","1","106","106","GLU","C","C","13","175.388",".",".","1",".",".",".",".","106","GLU","C",".","15060","1"],["967",".","1","1","106","106","GLU","CA","C","13","56.400",".",".","1",".",".",".",".","106","GLU","CA",".","15060","1"],["968",".","1","1","106","106","GLU","CB","C","13","30.640",".",".","1",".",".",".",".","106","GLU","CB",".","15060","1"],["969",".","1","1","106","106","GLU","CG","C","13","36.160",".",".","1",".",".",".",".","106","GLU","CG",".","15060","1"],["970",".","1","1","106","106","GLU","N","N","15","122.119",".",".","1",".",".",".",".","106","GLU","N",".","15060","1"],["971",".","1","1","107","107","ASP","H","H","1","8.048",".",".","1",".",".",".",".","107","ASP","HN",".","15060","1"],["972",".","1","1","107","107","ASP","CA","C","13","56.208",".",".","1",".",".",".",".","107","ASP","CA",".","15060","1"],["973",".","1","1","107","107","ASP","CB","C","13","42.204",".",".","1",".",".",".",".","107","ASP","CB",".","15060","1"],["974",".","1","1","107","107","ASP","N","N","15","127.146",".",".","1",".",".",".",".","107","ASP","N",".","15060","1"]],"tags":["ID","Assembly_atom_ID","Entity_assembly_ID","Entity_ID","Comp_index_ID","Seq_ID","Comp_ID","Atom_ID","Atom_type","Atom_isotope_number","Val","Val_err","Assign_fig_of_merit","Ambiguity_code","Occupancy","Resonance_ID","Auth_entity_assembly_ID","Auth_asym_ID","Auth_seq_ID","Auth_comp_ID","Auth_atom_ID","Details","Entry_ID","Assigned_chem_shift_list_ID"]}]}}' x <- fromJSON( json ) checkTrue( is.list(x) ) checkTrue( length(x) == 1 ) checkTrue( is.list(x[["15060"]]) ) checkTrue( length(x[["15060"]][["Atom_chem_shift"]]) == 1 ) } rjson/inst/unittests/test.array.r0000644000176200001440000000151513646044300016705 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.array <- function() { json <- "[]" x <- fromJSON( json ) checkIdentical( x, list() ) failing_json <- c( "[", "[12313", "[132,", "[132,1", "[1,5,4,3,", "[1,3}" ) for( bad_json in failing_json ) { x <- try( fromJSON( bad_json ), silent = TRUE ) checkTrue( any( class( x ) == "try-error" ) ) } json <- "[1]" x <- fromJSON( json ) checkIdentical( x, 1 ) json <- "[1,5,200]" x <- fromJSON( json ) checkIdentical( x, c(1,5,200) ) #multiple types are saved as a list json <- "[1,5,\"hello\"]" x <- fromJSON( json ) checkIdentical( x, list(1,5,"hello") ) ##test arrays with arrays #json <- "[[[]],[]]" #x <- fromJSON( json ) #checkIdentical( x, list( list(list()), list() ) ) json <- "[null,[]]" x <- fromJSON( json ) checkIdentical( x, list( NULL, list() ) ) } rjson/inst/unittests/test.tojson.r0000644000176200001440000000417713646044300017112 0ustar liggesusers.setUp <- function() {} .tearDown <- function() {} test.tojson <- function() { x <- 15433 j <- toJSON( x, "C" ) checkIdentical( j, "15433" ) x <- 15.543 j <- toJSON( x, "C" ) checkIdentical( j, "15.543" ) x <- TRUE j <- toJSON( x, "C" ) checkIdentical( j, "true" ) x <- FALSE j <- toJSON( x, "C" ) checkIdentical( j, "false" ) x <- NULL j <- toJSON( x, "C" ) checkIdentical( j, "null" ) #Test strings x <- "hello" j <- toJSON( x, "C" ) checkIdentical( j, "\"hello\"" ) x <- "hel\"lo" j <- toJSON( x, "C" ) checkIdentical( j, "\"hel\\\"lo\"" ) x <- "hel\n" j <- toJSON( x, "C" ) checkIdentical( j, "\"hel\\n\"" ) x <- "\n\r\t" j <- toJSON( x, "C" ) checkIdentical( j, "\"\\n\\r\\t\"" ) x <- "" j <- toJSON( x, "C" ) checkIdentical( j, "\"\"" ) x <- "\u0041\u006c\u0065\u0078\u002B" j <- toJSON( x, "C" ) checkIdentical( j, "\"Alex+\"" ) x <- "\u018E" j <- toJSON( x, "C" ) checkIdentical( j, "\"\\u018e\"" ) x <- "\u3020" j <- toJSON( x, "C" ) checkIdentical( j, "\"\\u3020\"" ) #test arrays x <- c(10, 50, 30) j <- toJSON( x, "C" ) checkIdentical( j, "[10,50,30]" ) x <- list(10, 50, 30) j <- toJSON( x, "C" ) checkIdentical( j, "[10,50,30]" ) x <- list(10, 50, TRUE) j <- toJSON( x, "C" ) checkIdentical( j, "[10,50,true]" ) x <- list(10, 50, list()) j <- toJSON( x, "C" ) checkIdentical( j, "[10,50,[]]" ) x <- list(10, 50, NULL) j <- toJSON( x, "C" ) checkIdentical( j, "[10,50,null]" ) x <- list() j <- toJSON( x, "C" ) checkIdentical( j, "[]" ) x <- c(T,T,F,F,T,F) j <- toJSON( x, "C" ) checkIdentical( j, "[true,true,false,false,true,false]" ) #test dicts x <- list(key="value") j <- toJSON( x, "C" ) checkIdentical( j, "{\"key\":\"value\"}" ) x <- c(key="value") j <- toJSON( x, "C" ) checkIdentical( j, "{\"key\":\"value\"}" ) x <- c(key=TRUE, car=FALSE) j <- toJSON( x, "C" ) checkIdentical( j, "{\"key\":true,\"car\":false}" ) x <- list(key=TRUE, car=FALSE, apple=c(10.5, 28)) j <- toJSON( x, "C" ) checkIdentical( j, "{\"key\":true,\"car\":false,\"apple\":[10.5,28]}" ) x <- c(a=T,b=F) j <- toJSON( x, "C" ) checkIdentical( j, "{\"a\":true,\"b\":false}" ) } rjson/inst/unittests/test.big.r0000644000176200001440000022677413646044300016350 0ustar liggesusers test.big <- function() { x <- "{\"client_crash_date\": \"2011-03-07 05:13:12.0\", \"dump\": \"OS|Windows NT|5.1.2600 Service Pack 3\\nCPU|x86|GenuineIntel family 15 model 4 stepping 9|1\\nCrash|EXCEPTION_BREAKPOINT|0x7d1a39|35\\nModule|mozsqlite3.dll|3.7.4.0|mozsqlite3.pdb|CCD45CF588204B1A8CEF6FECB6B93E792|0x002f0000|0x003adfff|1\\nModule|nspr4.dll|4.8.7.0|nspr4.pdb|FDA5820F749843EC874389EAB4E93BE31|0x003b0000|0x003e0fff|0\\nModule|plc4.dll|4.8.7.0|plc4.pdb|D597300208DE4FC280BF6EE27D65B2CA1|0x003f0000|0x003f6fff|0\\nModule|firefox.exe|2.0.0.4070|firefox.pdb|C4A306AC5FEF4AEC8C1D4B5FB67AC5962|0x00400000|0x004dffff|0\\nModule|mozjs.dll||mozjs.pdb|52A98E4CEEFF4B49B3CCFB5F982EEB502|0x004e0000|0x006a9fff|0\\nModule|smime3.dll|3.12.9.0|smime3.pdb|C4A927FA7F2C40F2A4CE92ECFD85AB8F1|0x006b0000|0x006c7fff|0\\nModule|nss3.dll|3.12.9.0|nss3.pdb|2BA2153B4E9B4E9584B1607C74B49D731|0x006d0000|0x0076cfff|0\\nModule|nssutil3.dll|3.12.9.0|nssutil3.pdb|8AF09479D67149F49A1D6A449114A7151|0x00770000|0x00783fff|0\\nModule|plds4.dll|4.8.7.0|plds4.pdb|E415FC709E07498198C66014653CC5411|0x00790000|0x00796fff|0\\nModule|ssl3.dll|3.12.9.0|ssl3.pdb|24D906A8F8A0487591D3824EED19DFC41|0x007a0000|0x007c0fff|0\\nModule|mozalloc.dll|2.0.0.4070|mozalloc.pdb|584764FC91694A68BFB321843787472E2|0x007d0000|0x007d5fff|0\\nModule|xpcom.dll|2.0.0.4070|xpcom.pdb|8DF06173F9764BA1B96E8137AC7D8B952|0x007e0000|0x007e6fff|0\\nModule|Iminent.WinCore.dll|3.47.0.0|||0x012e0000|0x012edfff|0\\nModule|browsercomps.dll|2.0.0.4070|browsercomps.pdb|ECF64DE0EC534626B0A3463F506FB4172|0x02800000|0x02820fff|0\\nModule|F3HKSTUB.DLL|1.0.0.0|f3hkstub.pdb|4C75A6EB1|0x02920000|0x02925fff|0\\nModule|RadioWMPCore.dll||RadioWMPCore.pdb|165E7A3FF5404CF28E6E55658F2466D51|0x02a30000|0x02a4afff|0\\nModule|softokn3.dll|3.12.9.0|softokn3.pdb|F43E2E3D6CE54276B054B916557C99301|0x03600000|0x03626fff|0\\nModule|nssdbm3.dll|3.12.9.0|nssdbm3.pdb|671501D946A64CF7A375B506033131F01|0x03630000|0x03647fff|0\\nModule|freebl3.dll|3.12.9.0|freebl3.pdb|0716E0E00A644CC09C0070C3966B0F961|0x03650000|0x03693fff|0\\nModule|nssckbi.dll|1.81.0.0|nssckbi.pdb|FF4BEC1F2A1D4069BF727A4088E5FEC71|0x036a0000|0x036f1fff|0\\nModule|xpsp2res.dll|5.1.2600.5512|||0x03900000|0x03bd5fff|0\\nModule|NPMYWEBS.DLL|1.0.0.0|NPMyWebS.pdb|4C75A6D41|0x05b60000|0x05b65fff|0\\nModule|M3PLUGIN.DLL|1.1.0.6|m3Plugin.pdb|4C75A6D81|0x05b70000|0x05b7dfff|0\\nModule|MWSOESTB.DLL|1.2.4.0|mwsoestb.pdb|4B2AF61A1|0x07f50000|0x07f5afff|0\\nModule|normaliz.dll|6.0.5441.0|normaliz.pdb|D0658E322B2D4DDCA57FB9C9715C6CAD1|0x094e0000|0x094e8fff|0\\nModule|xul.dll|2.0.0.4070|xul.pdb|EAD6C11B057D423D976392142725A5382|0x10000000|0x10daefff|0\\nModule|mdnsNSP.dll|1.0.3.1|mdnsNSP.pdb|0AF2F131804446D8BC574BC39DEF79F91|0x16080000|0x16098fff|0\\nModule|netapi32.dll|5.1.2600.5512|netapi32.pdb|FB9EEF3B11C949BA95FBD378260A07B02|0x597f0000|0x59844fff|0\\nModule|uxtheme.dll|6.0.2900.5512|uxtheme.pdb|E99E16308F094767B1F07FB5C3E5E2462|0x5b150000|0x5b187fff|0\\nModule|dbghelp.dll|5.1.2600.5512|dbghelp.pdb|7FA1C63A9BF54470BCA31E35A94F49971|0x5d4b0000|0x5d550fff|0\\nModule|iertutil.dll|7.0.5730.13|iertutil.pdb|EE4D411A91474AA79C2966293E0B73DA2|0x5dca0000|0x5dce4fff|0\\nModule|snxhk.dll|5.1.889.0|snxhk.pdb|6C3E58D898DF46A0BD5CDC2E19CD87DA1|0x64d00000|0x64d30fff|0\\nModule|hnetcfg.dll|5.1.2600.5512|HNetCfg.pdb|87332C2BFF6E42FCB89784A1D24EC2711|0x66740000|0x66798fff|0\\nModule|rsaenh.dll|5.1.2600.5507|rsaenh.pdb|893323FC16E048E8943A01E789A49C9B1|0x68000000|0x68035fff|0\\nModule|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x68040000|0x68300fff|0\\nModule|feclient.dll|5.1.2600.5512|feclient.pdb|D063E98372D14444BE0B1ECEABF191271|0x698d0000|0x698d8fff|0\\nModule|mswsock.dll|5.1.2600.5512|mswsock.pdb|0BC563E52F9E43E49E074DA97D4171712|0x719d0000|0x71a0ffff|0\\nModule|wshtcpip.dll|5.1.2600.5512|wshtcpip.pdb|DE2E52603FFB406D9052C8D884A1AD722|0x71a10000|0x71a17fff|0\\nModule|ws2help.dll|5.1.2600.5512|ws2help.pdb|6049CF5877C54E2AB512ABC1B4B2E7992|0x71a20000|0x71a27fff|0\\nModule|ws2_32.dll|5.1.2600.5512|ws2_32.pdb|A7605F8695A34329B38DDB8421A004CA2|0x71a30000|0x71a46fff|0\\nModule|wsock32.dll|5.1.2600.5512|wsock32.pdb|2B38FE8F84144DACB8A4FD07C05E49FC2|0x71a50000|0x71a59fff|0\\nModule|mpr.dll|5.1.2600.5512|mpr.pdb|A9B542306C364AA2BAF25EFE9F3C2B5A2|0x71aa0000|0x71ab1fff|0\\nModule|samlib.dll|5.1.2600.5512|samlib.pdb|4BB85DE79B104F1595F96DF1ADAC91C82|0x71b90000|0x71ba2fff|0\\nModule|msacm32.drv|5.1.2600.0|msacm32.pdb|3B7D82B51|0x72c90000|0x72c97fff|0\\nModule|wdmaud.drv|5.1.2600.5512|wdmdrv.pdb|CC3EC71E05C44E6595271A6773E15AF21|0x72ca0000|0x72ca8fff|0\\nModule|winspool.drv|5.1.2600.5512|winspool.pdb|5199B63B39904A05A517CEE5158071522|0x72f80000|0x72fa5fff|0\\nModule|vbscript.dll|5.7.0.16599|vbscript.pdb|22EE02E44C844093937E481AF7C079C12|0x73280000|0x732e9fff|0\\nModule|mscms.dll|5.1.2600.5512|mscms.pdb|58640C648DA24D56912927158414FA8C2|0x73ab0000|0x73ac4fff|0\\nModule|t2embed.dll|5.1.2600.5512|t2embed.pdb|731403DF32C24A29AFB4DC3D4825E4411|0x73c60000|0x73c7ffff|0\\nModule|lz32.dll|5.1.2600.0|lz32.pdb|3B7D84BD1|0x73d40000|0x73d42fff|0\\nModule|MSCTF.dll|5.1.2600.5512|msctf.pdb|C52F0B4C00E94556AE999F228B0019662|0x746b0000|0x746fbfff|0\\nModule|usp10.dll|1.420.2600.5512|usp10.pdb|0F289BC0C9A94139BC1C31EDEDBF52311|0x74d20000|0x74d8afff|0\\nModule|MSCTFIME.IME|5.1.2600.5512|msctfime.pdb|602288883AF44453979369233E091E641|0x75160000|0x7518dfff|0\\nModule|msimg32.dll|5.1.2600.5512|msimg32.pdb|D2E18526D8234F4BB5A85DE12E71DE812|0x76330000|0x76334fff|0\\nModule|imm32.dll|5.1.2600.5512|imm32.pdb|F7A5B5DB13324153B57AAF340C77EA512|0x76340000|0x7635cfff|0\\nModule|comdlg32.dll|6.0.2900.5512|comdlg32.pdb|026A6FF770FD4E6186ADBBE96DFFA99C2|0x76360000|0x763a9fff|0\\nModule|userenv.dll|5.1.2600.5512|userenv.pdb|9FEE774E547347799689D6BAF9DAB4102|0x76630000|0x766e4fff|0\\nModule|cryptui.dll|5.131.2600.5512|cryptui.pdb|EBC7B38E15F9461D9BBC9317BBB7E8D42|0x76890000|0x76913fff|0\\nModule|sxs.dll|5.1.2600.5512|sxs.pdb|13300A765A3B4E9BAE52C373053C152F2|0x76980000|0x76a30fff|0\\nModule|winmm.dll|5.1.2600.5512|winmm.pdb|90FC96D5AD8440A2B14855895BD92ED62|0x76b00000|0x76b2dfff|0\\nModule|psapi.dll|5.1.2600.5512|psapi.pdb|B9875A55C874489384EA8FB805322C312|0x76bb0000|0x76bbafff|0\\nModule|wintrust.dll|5.131.2600.5512|wintrust.pdb|91992FC368B7419889AC7597420354F52|0x76bf0000|0x76c1dfff|0\\nModule|imagehlp.dll|5.1.2600.5512|imagehlp.pdb|111D199988C249ACA0335F467A6311412|0x76c50000|0x76c77fff|0\\nModule|iphlpapi.dll|5.1.2600.5512|iphlpapi.pdb|9B09F073003F4CA48F9980B3C091448F2|0x76d20000|0x76d38fff|0\\nModule|dnsapi.dll|5.1.2600.5512|dnsapi.pdb|2602DE4D984348A8A8C36DD43F02E2152|0x76ee0000|0x76f06fff|0\\nModule|wldap32.dll|5.1.2600.5512|wldap32.pdb|AC04BCF6FF294FCEAC8B8D937CBA3A172|0x76f20000|0x76f4cfff|0\\nModule|winrnr.dll|5.1.2600.5512|winrnr.pdb|9FE1A4669B69400FAC821A4367AA9CC52|0x76f70000|0x76f77fff|0\\nModule|rasadhlp.dll|5.1.2600.5512|rasadhlp.pdb|CCA669B1582847D0B330D7ABDB446A472|0x76f80000|0x76f85fff|0\\nModule|clbcatq.dll|2001.12.4414.700|clbcatq.pdb|8AE9C54730824764AAF39EA69F8D87582|0x76f90000|0x7700efff|0\\nModule|comres.dll|2001.12.4414.700|COMRes.pdb|A02453A3EB42413FBFF95326893E977Df|0x77010000|0x770dffff|0\\nModule|oleaut32.dll|5.1.2600.5512|oleaut32.pdb|F2A209009B694EFCAD1A6CE9D992EBC12|0x770f0000|0x7717afff|0\\nModule|wininet.dll|7.0.5730.13|wininet.pdb|9EA644C8A78041C1BB0FC6D6ACFE8E202|0x771b0000|0x7727dfff|0\\nModule|comctl32.dll|6.0.2900.5512|MicrosoftWindowsCommon-Controls-6.0.2600.5512-comctl32.pdb|505057971C40416FB39FED1D39BED0571|0x773a0000|0x774a2fff|0\\nModule|ole32.dll|5.1.2600.5512|ole32.pdb|ED517599D2C14CF19200861833059C142|0x774b0000|0x775ecfff|0\\nModule|ntmarta.dll|5.1.2600.5512|ntmarta.pdb|EB9B3E21F92F4F51AD85D86F4D7741A82|0x77660000|0x77680fff|0\\nModule|setupapi.dll|5.1.2600.5512|setupapi.pdb|9D52182415AA4179960B37F4C694F90D2|0x778f0000|0x779e6fff|0\\nModule|crypt32.dll|5.131.2600.5512|crypt32.pdb|3D2E43BF4FF5446B83957512615FD0942|0x77a50000|0x77ae5fff|0\\nModule|msasn1.dll|5.1.2600.5512|msasn1.pdb|DBFCEAEE0AB647F7BB94623535C531262|0x77af0000|0x77b01fff|0\\nModule|midimap.dll|5.1.2600.5512|midimap.pdb|D9AE872F08744C789E5170943BBBD10D1|0x77ba0000|0x77ba6fff|0\\nModule|msacm32.dll|5.1.2600.5512|msacm32.pdb|8256BD89DE024F3C970B66B9B5E5D8992|0x77bb0000|0x77bc4fff|0\\nModule|version.dll|5.1.2600.5512|version.pdb|EA3D1BD3FE65475C8449C8D8B00722962|0x77bd0000|0x77bd7fff|0\\nModule|msvcrt.dll|7.0.2600.5512|msvcrt.pdb|7BCF30D8C91B4F1B85FA4E55896250111|0x77be0000|0x77c37fff|0\\nModule|advapi32.dll|5.1.2600.5512|advapi32.pdb|5EFB9BF42CC64024AB64802E467394642|0x77da0000|0x77e4bfff|0\\nModule|rpcrt4.dll|5.1.2600.5512|rpcrt4.pdb|CCD4FE9B704E48B6B8A12F31E112AA6F2|0x77e50000|0x77ee1fff|0\\nModule|gdi32.dll|5.1.2600.5512|gdi32.pdb|740F60A99F2A417E96C387400994588D2|0x77ef0000|0x77f38fff|0\\nModule|shlwapi.dll|6.0.2900.5512|shlwapi.pdb|8519E3403447478884CFFE7F1A91BAE02|0x77f40000|0x77fb5fff|0\\nModule|secur32.dll|5.1.2600.5512|secur32.pdb|E8D378740B8E4A46B19CAFCD2D6DDF7D2|0x77fc0000|0x77fd0fff|0\\nModule|mozcrt19.dll|8.0.0.0|MOZCRT19.pdb|14FCEDCA1CE34BD2A90401CBC9260D2D1|0x78130000|0x781defff|0\\nModule|mozcpp19.dll|8.0.0.0|MOZCPP19.pdb|68AC85FFFBB84AA58FCA4B9883BE11D91|0x7c420000|0x7c4cefff|0\\nModule|kernel32.dll|5.1.2600.5512|kernel32.pdb|34560E80F5C54175B208848EF863C5BD2|0x7c800000|0x7c902fff|0\\nModule|ntdll.dll|5.1.2600.5512|ntdll.pdb|1751003260CA42598C0FB326585000ED2|0x7c910000|0x7c9c4fff|0\\nModule|shdocvw.dll|6.0.2900.5512|shdocvw.pdb|709A33A5D8EE48BB8A437827FE342C0C2|0x7e210000|0x7e380fff|0\\nModule|user32.dll|5.1.2600.5512|user32.pdb|D18A41B74E7F458CAAAC1847E2D8BF022|0x7e390000|0x7e420fff|0\\nModule|shell32.dll|6.0.2900.5512|shell32.pdb|69B3829BB6884926A5B97BF04E812C6B2|0x7e6a0000|0x7eec0fff|0\\n\\n35|0|mozalloc.dll|mozalloc_abort(char const * const)|hg:hg.mozilla.org/mozilla-central:memory/mozalloc/mozalloc_abort.cpp:d322a1c8537e|77|0x0\\n35|1|xul.dll|NS_DebugBreak_P|hg:hg.mozilla.org/mozilla-central:xpcom/base/nsDebugImpl.cpp:d322a1c8537e|350|0xc\\n35|2|xul.dll|nsCycleCollectingAutoRefCnt::decr(nsISupports *)|||0x38\\n35|3|xul.dll|nsGlobalChromeWindow::Release()|hg:hg.mozilla.org/mozilla-central:dom/base/nsGlobalWindow.cpp:d322a1c8537e|1336|0x1a\\n35|4|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x4cabd\\n35|5|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0xaca7\\n35|6|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f3e01\\n35|7|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0xafd7\\n35|8|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x11258\\n35|9|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x82298\\n35|10|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f978a\\n35|11|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x82537\\n35|12|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x19ce51\\n35|13|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x20de7f\\n35|14|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x19d6df\\n35|15|ntdll.dll|LdrLoadDll|||0x14a\\n35|16|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x20df3f\\n35|17|kernel32.dll|BaseThreadStart|||0x36\\n35|18|ntdll.dll|LdrLoadDll|||0x14a\\n35|19|kernel32.dll|GetCodePageFileInfo|||0x138\\n0|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n0|1|user32.dll|NtUserWaitMessage|||0xb\\n0|2|xul.dll|nsAppShell::ProcessNextNativeEvent(int)|hg:hg.mozilla.org/mozilla-central:widget/src/windows/nsAppShell.cpp:d322a1c8537e|343|0x5\\n0|3|xul.dll|nsAbsoluteContainingBlock::ReflowAbsoluteFrame(nsIFrame *,nsPresContext *,nsHTMLReflowState const &,int,int,int,nsIFrame *,unsigned int &,nsOverflowAreas *)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsAbsoluteContainingBlock.cpp:d322a1c8537e|500|0x9\\n1|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n1|1|ntdll.dll|NtCreateSection|||0xb\\n1|2|kernel32.dll|MapViewOfFile|||0x31\\n1|3|ntdll.dll|RtlQueryInformationActivationContext|||0x14e\\n1|4|kernel32.dll|CloseHandle|||0x43\\n2|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n2|1|ntdll.dll|ZwRemoveIoCompletion|||0xb\\n2|2|kernel32.dll|GetQueuedCompletionStatus|||0x28\\n2|3|xul.dll|base::MessagePumpForIO::GetIOItem(unsigned long,base::MessagePumpForIO::IOItem *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.cc:d322a1c8537e|528|0x24\\n2|4|xul.dll|base::MessagePumpForIO::WaitForIOCompletion(unsigned long,base::MessagePumpForIO::IOHandler *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.cc:d322a1c8537e|499|0xb\\n2|5|xul.dll|base::MessagePumpForIO::WaitForWork()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.cc:d322a1c8537e|492|0xb\\n2|6|xul.dll|base::MessagePumpForIO::DoRunLoop()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.cc:d322a1c8537e|477|0x5\\n2|7|xul.dll|base::MessagePumpWin::RunWithDispatcher(base::MessagePump::Delegate *,base::MessagePumpWin::Dispatcher *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.cc:d322a1c8537e|52|0x6\\n2|8|xul.dll|base::MessagePumpWin::Run(base::MessagePump::Delegate *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_pump_win.h:d322a1c8537e|78|0xb\\n2|9|xul.dll|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:d322a1c8537e|219|0x8\\n2|10|xul.dll|MessageLoop::RunHandler()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:d322a1c8537e|202|0x4\\n2|11|xul.dll|base::ThreadLocalPlatform::SetValueInSlot(int &,void *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/thread_local_win.cc:d322a1c8537e|33|0xa\\n2|12|xul.dll|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:d322a1c8537e|176|0x6\\n2|13|xul.dll|base::Thread::ThreadMain()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/thread.cc:d322a1c8537e|156|0x8\\n2|14|xul.dll|`anonymous namespace'::ThreadFunc(void *)|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/platform_thread_win.cc:d322a1c8537e|26|0x8\\n2|15|kernel32.dll|BaseThreadStart|||0x36\\n3|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n3|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n3|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n3|3|kernel32.dll|WaitForSingleObject|||0x11\\n3|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n3|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n3|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n3|7|xul.dll|nsCycleCollectorRunner::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/base/nsCycleCollector.cpp:d322a1c8537e|3315|0xa\\n3|8|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|633|0x13\\n3|9|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n3|10|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n3|11|ntdll.dll|_SEH_epilog|||0x19\\n3|12|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n3|13|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n3|14|ntdll.dll|_SEH_epilog|||0x19\\n3|15|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n3|16|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n3|17|ntdll.dll|_SEH_epilog|||0x19\\n4|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n4|1|user32.dll|NtUserPostMessage|||0xb\\n4|2|xul.dll|nsThread::Dispatch(nsIRunnable *,unsigned int)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|433|0x42\\n4|3|xul.dll|nsTimerImpl::PostTimerEvent()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsTimerImpl.cpp:d322a1c8537e|552|0x18\\n4|4|xul.dll|TimerThread::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TimerThread.cpp:d322a1c8537e|313|0x6\\n4|5|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|633|0x13\\n4|6|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n4|7|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n4|8|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n4|9|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n4|10|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n4|11|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n4|12|kernel32.dll|GetCodePageFileInfo|||0x138\\n5|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n5|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n5|2|kernel32.dll|CreateFileMappingA|||0x85\\n5|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n5|4|xul.dll|nsNotifyAddrListener::Run()|hg:hg.mozilla.org/mozilla-central:netwerk/system/win32/nsNotifyAddrListener.cpp:d322a1c8537e|192|0xf\\n5|5|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|633|0x13\\n5|6|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n5|7|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n5|8|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n5|9|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n5|10|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n5|11|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n5|12|mozjs.dll||||0x19006d\\n6|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n6|1|ntdll.dll|ZwRemoveIoCompletion|||0xb\\n6|2|mswsock.dll|SockAsyncThread|||0x59\\n6|3|kernel32.dll|BaseThreadStart|||0x36\\n7|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n7|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n7|2|mswsock.dll|SockBuildSockaddr|||0x135\\n7|3|mswsock.dll|SockReleaseRwLockExclusive|||0x40\\n7|4|ws2_32.dll|select|||0xa6\\n7|5|nspr4.dll|_PR_MD_PR_POLL|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w32poll.c:d322a1c8537e|279|0xe\\n7|6|nspr4.dll|PR_Poll|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/io/prio.c:d322a1c8537e|173|0x12\\n7|7|xul.dll|nsSocketTransportService::Poll(int,unsigned int *)|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsSocketTransportService2.cpp:d322a1c8537e|358|0xc\\n7|8|xul.dll|nsSocketTransportService::DoPollIteration(int)|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsSocketTransportService2.cpp:d322a1c8537e|673|0x10\\n7|9|xul.dll|nsSocketTransportService::OnProcessNextEvent(nsIThreadInternal *,int,unsigned int)|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsSocketTransportService2.cpp:d322a1c8537e|551|0xc\\n7|10|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|597|0x1\\n7|11|xul.dll|NS_ProcessPendingEvents_P(nsIThread *,unsigned int)|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|200|0xb\\n7|12|xul.dll|NS_ProcessNextEvent_P(nsIThread *,int)|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|250|0xc\\n7|13|xul.dll|nsSocketTransportService::Run()|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsSocketTransportService2.cpp:d322a1c8537e|594|0x9\\n7|14|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|633|0x13\\n7|15|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n7|16|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n7|17|ntdll.dll|RtlpAdjustHeapLookasideDepth|||0x2d3\\n7|18|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n7|19|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n7|20|ntdll.dll|RtlpAdjustHeapLookasideDepth|||0x2d3\\n7|21|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n7|22|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n7|23|ntdll.dll|RtlpAdjustHeapLookasideDepth|||0x2d3\\n8|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n8|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n8|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n8|3|kernel32.dll|WaitForSingleObject|||0x11\\n8|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n8|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n8|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n8|7|mozjs.dll|js::GCHelperThread::threadLoop(JSRuntime *)|hg:hg.mozilla.org/mozilla-central:js/src/jsgc.cpp:d322a1c8537e|2084|0xb\\n8|8|mozjs.dll|js::GCHelperThread::threadMain(void *)|hg:hg.mozilla.org/mozilla-central:js/src/jsgc.cpp:d322a1c8537e|2070|0xe\\n8|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n8|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n8|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n8|12|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n8|13|kernel32.dll|BaseThreadStart|||0x36\\n9|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n9|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n9|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n9|3|kernel32.dll|WaitForSingleObject|||0x11\\n9|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n9|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n9|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n9|7|xul.dll|XPCJSRuntime::WatchdogMain(void *)|hg:hg.mozilla.org/mozilla-central:js/src/xpconnect/src/xpcjsruntime.cpp:d322a1c8537e|988|0xc\\n9|8|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n9|9|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n9|10|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n9|11|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n9|12|kernel32.dll|BaseThreadStart|||0x36\\n10|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n10|1|ntdll.dll|NtReplyWaitReceivePortEx|||0xb\\n10|2|rpcrt4.dll|RpcpPurgeEEInfoFromThreadIfNecessary(THREAD *)|||0x48\\n10|3|rpcrt4.dll|RecvLotsaCallsWrapper(LRPC_ADDRESS *)|||0xc\\n10|4|rpcrt4.dll|BaseCachedThreadRoutine(CACHED_THREAD *)|||0x52\\n10|5|rpcrt4.dll|ThreadStartRoutine(THREAD *)|||0x19\\n10|6|kernel32.dll|BaseThreadStart|||0x36\\n11|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n11|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n11|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n11|3|kernel32.dll|WaitForSingleObject|||0x11\\n11|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n11|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n11|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n11|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n11|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n11|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n11|10|ole32.dll|CheckDownloadRegistrySettings()|||0x59\\n11|11|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n11|12|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n11|13|ole32.dll|CheckDownloadRegistrySettings()|||0x59\\n11|14|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n11|15|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n11|16|kernel32.dll|GetCodePageFileInfo|||0x138\\n12|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n12|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n12|2|kernel32.dll|CreateFileMappingA|||0x85\\n12|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n12|4|wdmaud.drv|MixerCallbackThread|||0x41\\n12|5|kernel32.dll|BaseThreadStart|||0x36\\n13|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n13|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n13|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n13|3|kernel32.dll|WaitForSingleObject|||0x11\\n13|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n13|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n13|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n13|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n13|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n13|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n13|10|nspr4.dll|PR_ExitMonitor|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|132|0x6\\n13|11|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n13|12|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n13|13|nspr4.dll|PR_ExitMonitor|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|132|0x6\\n13|14|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n13|15|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n13|16|kernel32.dll|GetCodePageFileInfo|||0x138\\n14|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n14|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n14|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n14|3|kernel32.dll|WaitForSingleObject|||0x11\\n14|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n14|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n14|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n14|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n14|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n14|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n14|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n14|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n14|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n14|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n14|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n15|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n15|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n15|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n15|3|kernel32.dll|WaitForSingleObject|||0x11\\n15|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n15|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n15|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n15|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n15|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n15|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n15|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n15|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n15|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n15|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n15|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n16|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n16|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n16|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n16|3|kernel32.dll|WaitForSingleObject|||0x11\\n16|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n16|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n16|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n16|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n16|8|xul.dll|nsThreadStartupEvent::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|207|0xf\\n16|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n16|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n16|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n16|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n16|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n16|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n17|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n17|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n17|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n17|3|kernel32.dll|WaitForSingleObject|||0x11\\n17|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n17|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n17|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n17|7|xul.dll|nsSSLThread::Run()|hg:hg.mozilla.org/mozilla-central:security/manager/ssl/src/nsSSLThread.cpp:d322a1c8537e|980|0xa\\n17|8|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n17|9|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n17|10|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n17|11|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n17|12|kernel32.dll|BaseThreadStart|||0x36\\n18|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n18|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n18|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n18|3|kernel32.dll|WaitForSingleObject|||0x11\\n18|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n18|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n18|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n18|7|xul.dll|nsCertVerificationThread::Run()|hg:hg.mozilla.org/mozilla-central:security/manager/ssl/src/nsCertVerificationThread.cpp:d322a1c8537e|138|0xa\\n18|8|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n18|9|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n18|10|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n18|11|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n18|12|kernel32.dll|BaseThreadStart|||0x36\\n19|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n19|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n19|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n19|3|kernel32.dll|WaitForSingleObject|||0x11\\n19|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n19|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n19|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n19|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n19|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n19|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n19|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n19|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n19|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n19|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n19|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n20|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n20|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n20|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n20|3|kernel32.dll|WaitForSingleObject|||0x11\\n20|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n20|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n20|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n20|7|xul.dll|nsHostResolver::GetHostToLookup(nsHostRecord * *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|777|0xe\\n20|8|xul.dll|nsHostResolver::ThreadFunc(void *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|881|0x9\\n20|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n20|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n20|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n20|12|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n20|13|kernel32.dll|BaseThreadStart|||0x36\\n21|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n21|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n21|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n21|3|kernel32.dll|WaitForSingleObject|||0x11\\n21|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n21|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n21|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n21|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n21|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n21|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n21|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n21|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n21|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n21|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n21|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n22|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n22|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n22|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n22|3|kernel32.dll|WaitForSingleObject|||0x11\\n22|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n22|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n22|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n22|7|xul.dll|nsHostResolver::GetHostToLookup(nsHostRecord * *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|777|0xe\\n22|8|xul.dll|nsHostResolver::ThreadFunc(void *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|881|0x9\\n22|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n22|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n22|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n22|12|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n22|13|kernel32.dll|BaseThreadStart|||0x36\\n23|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n23|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n23|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n23|3|kernel32.dll|WaitForSingleObject|||0x11\\n23|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n23|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n23|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n23|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n23|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n23|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n23|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n23|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n23|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n23|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n23|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n24|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n24|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n24|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n24|3|kernel32.dll|WaitForSingleObject|||0x11\\n24|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n24|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n24|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n24|7|xul.dll|nsHostResolver::GetHostToLookup(nsHostRecord * *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|777|0xe\\n24|8|xul.dll|nsHostResolver::ThreadFunc(void *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|881|0x9\\n24|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n24|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n24|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n24|12|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n24|13|kernel32.dll|BaseThreadStart|||0x36\\n25|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n25|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n25|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n25|3|kernel32.dll|WaitForSingleObject|||0x11\\n25|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n25|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n25|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n25|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n25|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n25|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n25|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n25|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n25|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n25|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n25|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n26|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n26|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n26|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n26|3|kernel32.dll|WaitForSingleObject|||0x11\\n26|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n26|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n26|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/prmon.c:d322a1c8537e|184|0x13\\n26|7|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:d322a1c8537e|616|0x8\\n26|8|xul.dll|nsRunnable::Release()|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsThreadUtils.cpp:d322a1c8537e|55|0x2a\\n26|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n26|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n26|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n26|12|mozcrt19.dll|__dllonexit|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/onexit.c:d322a1c8537e|276|0x5\\n26|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n26|14|kernel32.dll|GetCodePageFileInfo|||0x138\\n27|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n27|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n27|2|kernel32.dll|CreateFileMappingA|||0x85\\n27|3|advapi32.dll|WmipEventPump|||0x1a6\\n27|4|kernel32.dll|BaseThreadStart|||0x36\\n28|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n28|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n28|2|kernel32.dll|CreateFileMappingA|||0x85\\n28|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n28|4|xul.dll|nsDownloadScannerWatchdog::WatchdogThread(void *)|hg:hg.mozilla.org/mozilla-central:toolkit/components/downloads/src/nsDownloadScanner.cpp:d322a1c8537e|704|0x1b\\n28|5|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n28|6|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n28|7|kernel32.dll|BaseThreadStart|||0x36\\n29|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n29|1|ntdll.dll|NtFlushBuffersFile|||0xb\\n29|2|kernel32.dll|FlushFileBuffers|||0x49\\n29|3|nspr4.dll|FileSync|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/io/prfile.c:d322a1c8537e|222|0x10\\n29|4|xul.dll|nsFileOutputStream::Flush()|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsFileStreams.cpp:d322a1c8537e|610|0x6\\n29|5|xul.dll|nsSafeFileOutputStream::Finish()|hg:hg.mozilla.org/mozilla-central:netwerk/base/src/nsFileStreams.cpp:d322a1c8537e|715|0x8\\n29|6|xul.dll|nsCOMPtr_base::assign_from_qi(nsQueryInterface,nsID const &)|hg:hg.mozilla.org/mozilla-central:obj-firefox/xpcom/build/nsCOMPtr.cpp:d322a1c8537e|98|0x7\\n29|7|nspr4.dll||||0x1b38f\\n30|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n30|1|ntdll.dll|NtReplyWaitReceivePortEx|||0xb\\n30|2|rpcrt4.dll|RpcpPurgeEEInfoFromThreadIfNecessary(THREAD *)|||0x48\\n30|3|rpcrt4.dll|RecvLotsaCallsWrapper(LRPC_ADDRESS *)|||0xc\\n30|4|rpcrt4.dll|BaseCachedThreadRoutine(CACHED_THREAD *)|||0x52\\n30|5|rpcrt4.dll|ThreadStartRoutine(THREAD *)|||0x19\\n30|6|kernel32.dll|BaseThreadStart|||0x36\\n31|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n31|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n31|2|ntdll.dll|RtlpWaitThread|||0x126\\n31|3|kernel32.dll|BaseThreadStart|||0x36\\n32|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n32|1|ntdll.dll|ZwDelayExecution|||0xb\\n32|2|ntdll.dll|RtlpTimerThread|||0x46\\n32|3|kernel32.dll|BaseThreadStart|||0x36\\n33|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n33|1|ntdll.dll|ZwRemoveIoCompletion|||0xb\\n33|2|ntdll.dll|RtlpWorkerThread|||0x3c\\n33|3|kernel32.dll|BaseThreadStart|||0x36\\n34|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n34|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n34|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n34|3|kernel32.dll|WaitForSingleObject|||0x11\\n34|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95cv.c:d322a1c8537e|280|0xd\\n34|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|204|0x1b\\n34|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/prucv.c:d322a1c8537e|547|0xa\\n34|7|xul.dll|nsHostResolver::GetHostToLookup(nsHostRecord * *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|777|0xe\\n34|8|xul.dll|nsHostResolver::ThreadFunc(void *)|hg:hg.mozilla.org/mozilla-central:netwerk/dns/nsHostResolver.cpp:d322a1c8537e|881|0x9\\n34|9|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/threads/combined/pruthr.c:d322a1c8537e|426|0x8\\n34|10|nspr4.dll|pr_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/md/windows/w95thred.c:d322a1c8537e|122|0xc\\n34|11|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|348|0x8\\n34|12|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/mozilla-central:obj-firefox/memory/jemalloc/crtsrc/threadex.c:d322a1c8537e|326|0x4\\n34|13|kernel32.dll|BaseThreadStart|||0x36\\n36|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n36|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n36|2|kernel32.dll|CreateFileMappingA|||0x85\\n36|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n36|4|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x4e8b6\\n36|5|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x506fc\\n36|6|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5094f\\n36|7|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5515\\n36|8|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x3f73b\\n36|9|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2a07\\n36|10|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1ffa0f\\n36|11|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0xbf79\\n36|12|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x2554bb\\n36|13|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2ee7\\n36|14|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0xd1155\\n36|15|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1ff6af\\n36|16|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x10fabe\\n36|17|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x2051ca\\n36|18|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x90033\\n36|19|ntdll.dll|LdrpGetProcedureAddress|||0xe6\\n36|20|ntdll.dll|LdrpGetProcedureAddress|||0x18b\\n36|21|ntdll.dll|MD5Final|||0x2bc\\n36|22|ntdll.dll|LdrpGetProcedureAddress|||0x135\\n36|23|snxhk.dll||||0x28b81\\n36|24|ole32.dll|GetNextContextId(_ULARGE_INTEGER &)|||0x28\\n36|25|ole32.dll|IFillLockBytes_FillAppend_Proxy|||0x9dd\\n36|26|ntdll.dll|LdrLoadDll|||0x14a\\n37|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n37|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n37|2|kernel32.dll|CreateFileMappingA|||0x85\\n37|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n37|4|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x4e8b6\\n37|5|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x506fc\\n37|6|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5094f\\n37|7|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5515\\n37|8|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1ffa0f\\n37|9|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x87c9\\n37|10|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x255497\\n37|11|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2c4f\\n37|12|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x8ff2f\\n37|13|ntdll.dll|LdrpGetProcedureAddress|||0xe6\\n37|14|ntdll.dll|LdrpGetProcedureAddress|||0x18b\\n37|15|ntdll.dll|MD5Final|||0x2bc\\n37|16|ntdll.dll|LdrpGetProcedureAddress|||0x135\\n37|17|snxhk.dll||||0x28b81\\n37|18|ole32.dll|GetNextContextId(_ULARGE_INTEGER &)|||0x28\\n37|19|ole32.dll|IFillLockBytes_FillAppend_Proxy|||0x9dd\\n37|20|ntdll.dll|LdrLoadDll|||0x14a\\n38|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n38|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n38|2|kernel32.dll|CreateFileMappingA|||0x85\\n38|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n38|4|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x4e8b6\\n38|5|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x506fc\\n38|6|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5094f\\n38|7|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5515\\n38|8|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1ffa0f\\n38|9|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x87c9\\n38|10|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x255497\\n38|11|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2c4f\\n38|12|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x8ff2f\\n38|13|ntdll.dll|LdrpGetProcedureAddress|||0xe6\\n38|14|ntdll.dll|LdrpGetProcedureAddress|||0x18b\\n38|15|ntdll.dll|MD5Final|||0x2bc\\n38|16|ntdll.dll|LdrpGetProcedureAddress|||0x135\\n38|17|snxhk.dll||||0x28b81\\n38|18|ole32.dll|GetNextContextId(_ULARGE_INTEGER &)|||0x28\\n38|19|ole32.dll|IFillLockBytes_FillAppend_Proxy|||0x9dd\\n38|20|ntdll.dll|LdrLoadDll|||0x14a\\n39|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n39|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n39|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n39|3|kernel32.dll|WaitForSingleObject|||0x11\\n39|4|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x4914e\\n39|5|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f498a\\n39|6|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x49500\\n39|7|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x5681\\n39|8|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x3f90b\\n39|9|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2a07\\n39|10|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1ffa0f\\n39|11|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0xa460\\n39|12|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x2554cb\\n39|13|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f2f17\\n39|14|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x711de\\n39|15|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x6f298\\n39|16|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x71547\\n39|17|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x1f8890\\n39|18|2aaf317e-9a06-558b-cf88-894fbb0dd11b.dll||||0x8ff0f\\n39|19|ntdll.dll|LdrpGetProcedureAddress|||0xe6\\n39|20|ntdll.dll|LdrpGetProcedureAddress|||0x18b\\n39|21|ntdll.dll|MD5Final|||0x2bc\\n39|22|ntdll.dll|LdrpGetProcedureAddress|||0x135\\n39|23|snxhk.dll||||0x28b81\\n39|24|ole32.dll|GetNextContextId(_ULARGE_INTEGER &)|||0x28\\n39|25|ole32.dll|IFillLockBytes_FillAppend_Proxy|||0x9dd\\n39|26|ntdll.dll|LdrLoadDll|||0x14a\\n40|0|kernel32.dll|BaseThreadStartThunk|||0x0\", \"startedDateTime\": \"2011-03-06 21:14:01.327981\", \"product\": \"Firefox\", \"crashedThread\": 35, \"cpu_info\": \"GenuineIntel family 15 model 4 stepping 9 | 1\", \"install_age\": 567924, \"distributor\": null, \"topmost_filenames\": [\"hg:hg.mozilla.org/mozilla-central:memory/mozalloc/mozalloc_abort.cpp:d322a1c8537e\"], \"id\": 227423740, \"user_comments\": null, \"build_date\": \"2011-02-22 21:00:00.0\", \"uptime\": 291, \"uuid\": \"dabea982-548f-4b71-ae4f-b9ebf2110306\", \"flash_version\": \"[blank]\", \"os_version\": \"5.1.2600 Service Pack 3\", \"distributor_version\": null, \"truncated\": false, \"process_type\": null, \"processor_notes\": \"\", \"hangid\": null, \"version\": \"4.0b12\", \"build\": \"20110222210221\", \"addons_checked\": null, \"app_notes\": \"AdapterVendorID: 1106, AdapterDeviceID: 3344, AdapterDriverVersion: 6.14.10.275\\nxpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/rel-cen-w32-bld/build/xpcom/base/nsCycleCollector.cpp, line 1195)xpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/rel-cen-w32-bld/build/xpcom/base/nsCycleCollector.cpp, line 1195)xpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/rel-cen-w32-bld/build/xpcom/base/nsCycleCollector.cpp, line 1195)xpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/rel-cen-w32-bld/build/xpcom/base/nsCycleCollector.cpp, line 1195)xpcom_runtime_abort(###!!! ABORT: Main-thread-only object used off the main thread: file e:/builds/moz2_slave/rel-cen-w32-bld/build/xpcom/base/nsCycleCollector.cpp, line 1195)\", \"os_name\": \"Windows NT\", \"last_crash\": 299, \"date_processed\": \"2011-03-06 21:13:18.528463\", \"cpu_name\": \"x86\", \"reason\": \"EXCEPTION_BREAKPOINT\", \"address\": \"0x7d1a39\", \"completeddatetime\": \"2011-03-06 21:14:03.975606\", \"signature\": \"mozalloc_abort(char const* const) | NS_DebugBreak_P | nsCycleCollectingAutoRefCnt::decr(nsISupports*)\", \"addons\": [[\"engine@conduit.com\", \"3.2.5.2\"], [\"{ac6fad42-419e-4f3a-abde-1bc6ce916b7d}\", \"3.2.5.2\"], [\"m3ffxtbr@mywebsearch.com\", \"1.1\"], [\"testpilot@labs.mozilla.com\", \"1.0.6\"], [\"{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}\", \"1.1.1\"], [\"{c5134213-7204-f204-7748-3faf7674a27f}\", \"4.6.7.8\"], [\"{0974848a-b5bc-49f2-9778-307742b4a55d}\", \"3.2.5.2\"], [\"{972ce4c6-7e08-4474-a285-3208198ce6fd}\", \"4.0b12\"]]}" jdata <- fromJSON( x ) checkTrue( is.list( jdata ) ) } test.big <- function() { x <- "{\"client_crash_date\": \"2011-03-03 02:06:41.0\", \"dump\": \"OS|Windows NT|5.1.2600 Service Pack 3\\nCPU|x86|AuthenticAMD family 16 model 6 stepping 2|1\\nCrash|EXCEPTION_ACCESS_VIOLATION_READ|0x9|0\\nModule|sqlite3.dll|3.6.10.0|sqlite3.pdb|33F22CE2B2B54C128F26B1AEB209DB3E1|0x00280000|0x002ebfff|1\\nModule|js3250.dll|4.0.0.0|js3250.pdb|3D2BE64A2A27418AB874AF1FC37FC28F2|0x002f0000|0x003d2fff|0\\nModule|smime3.dll|3.12.3.0|smime3.pdb|C691873CEC8A45CEBB8D577029D6A05C1|0x003e0000|0x003f7fff|0\\nModule|firefox.exe|1.9.1.3483|firefox.pdb|E820A6C3DA3E4D41B4D4856FBE95A9682|0x00400000|0x004defff|0\\nModule|nspr4.dll|4.8.0.0|nspr4.pdb|90B401B223E44E29B52427A96E5030B61|0x004e0000|0x00508fff|0\\nModule|nss3.dll|3.12.3.0|nss3.pdb|417FBFD301594DDBB3B1B0FDD01AD18D1|0x00510000|0x005a9fff|0\\nModule|nssutil3.dll|3.12.3.0|nssutil3.pdb|271849D3653A4011AFF4DD803713F75E1|0x005b0000|0x005c3fff|0\\nModule|plc4.dll|4.8.0.0|plc4.pdb|0466C3D1BA904897B48B818A47271E3D1|0x005d0000|0x005d6fff|0\\nModule|plds4.dll|4.8.0.0|plds4.pdb|ADE9A225ED1E47189DCC30DFB885B9F31|0x005e0000|0x005e6fff|0\\nModule|ssl3.dll|3.12.3.0|ssl3.pdb|D2CBA6C4FEBA43069A78E69B1434DB131|0x005f0000|0x0060ffff|0\\nModule|xpcom.dll|1.9.1.3483|xpcom.pdb|2CD83B094C064BA4B1936C48EC3FA9E62|0x00610000|0x00616fff|0\\nModule|UnlockerHook.dll||||0x012c0000|0x012c3fff|0\\nModule|PowerMenuHook.dll|1.5.1.0|||0x012d0000|0x012e2fff|0\\nModule|browserdirprovider.dll|1.9.1.3483|browserdirprovider.pdb|C3E953EDEF68402183B21895E689408D2|0x01340000|0x01347fff|0\\nModule|idmmzcc.dll|5.17.3.0|||0x01450000|0x01480fff|0\\nModule|normaliz.dll|6.0.5441.0|normaliz.pdb|D0658E322B2D4DDCA57FB9C9715C6CAD1|0x01490000|0x01498fff|0\\nModule|urlmon.dll|8.0.6001.22867|urlmon.pdb|04FFFD62B65746BD856B698C3822F4652|0x014a0000|0x015d0fff|0\\nModule|GoogleDesktopMozilla.dll||GoogleDesktopMozilla.pdb|AEB53B67E2FF42E8A4ED5107357E98347|0x01950000|0x0196efff|0\\nModule|brwsrcmp.dll|1.9.1.3483|brwsrcmp.pdb|A5B4105204D34EF4BCED190336D634872|0x02200000|0x02223fff|0\\nModule|xpsp2res.dll|5.1.2600.5512|||0x02330000|0x02689fff|0\\nModule|xul.dll|1.9.1.3483|xul.pdb|9FCED407A8D3411DBF5E80A72845BD062|0x10000000|0x10a59fff|0\\nModule|wininet.dll|8.0.6001.22873|wininet.pdb|2ED0AC45A8584A6095BFE16577D154332|0x3d930000|0x3da15fff|0\\nModule|iertutil.dll|8.0.6001.22867|iertutil.pdb|A6E8574FA7054FDCA22D42F9946ADCCC2|0x3dfd0000|0x3e1b7fff|0\\nModule|dbghelp.dll|5.1.2600.5512|dbghelp.pdb|7FA1C63A9BF54470BCA31E35A94F49971|0x59a60000|0x59b00fff|0\\nModule|uxtheme.dll|6.0.2900.5512|uxtheme.pdb|E99E16308F094767B1F07FB5C3E5E2462|0x5ad70000|0x5ada7fff|0\\nModule|GoogleDesktopAPI2.dll||GoogleDesktopAPI2.pdb|16952BAF76A047D7A83483F202EE6A6A8|0x60000000|0x6001dfff|0\\nModule|GoogleDesktopResources_en.dll||GoogleDesktopResources_en.pdb|5158D620219E4E779E02BC472BD772BE2|0x62000000|0x62031fff|0\\nModule|lpk.dll|5.1.2600.5512|lpk.pdb|4B6570DF2CFF45AAB60E416993385EAC1|0x629c0000|0x629c8fff|0\\nModule|hnetcfg.dll|5.1.2600.5589|HNetCfg.pdb|C441D43BD4354A8E9F22229506BCBE591|0x662b0000|0x66307fff|0\\nModule|mswsock.dll|5.1.2600.5649|mswsock.pdb|93FEC2ABF4254F5AA4EBFE33B2DEBAD62|0x71a50000|0x71a8efff|0\\nModule|wshtcpip.dll|5.1.2600.5512|wshtcpip.pdb|DE2E52603FFB406D9052C8D884A1AD722|0x71a90000|0x71a97fff|0\\nModule|ws2help.dll|5.1.2600.5512|ws2help.pdb|6049CF5877C54E2AB512ABC1B4B2E7992|0x71aa0000|0x71aa7fff|0\\nModule|ws2_32.dll|5.1.2600.5512|ws2_32.pdb|A7605F8695A34329B38DDB8421A004CA2|0x71ab0000|0x71ac6fff|0\\nModule|wsock32.dll|5.1.2600.5512|wsock32.pdb|2B38FE8F84144DACB8A4FD07C05E49FC2|0x71ad0000|0x71ad8fff|0\\nModule|winspool.drv|5.1.2600.5512|winspool.pdb|5199B63B39904A05A517CEE5158071522|0x73000000|0x73025fff|0\\nModule|t2embed.dll|5.1.2600.5830|t2embed.pdb|82C3ABFC4D2349E0A74C50B18FC0D8EA1|0x73ce0000|0x73d00fff|0\\nModule|lz32.dll|5.1.2600.0|lz32.pdb|3B7D84BD1|0x73dc0000|0x73dc2fff|0\\nModule|MSCTF.dll|5.1.2600.5655|msctf.pdb|3DB44EF7B1F64554AA80C5F5116A5DFE2|0x74720000|0x7476bfff|0\\nModule|usp10.dll|1.420.2600.5512|usp10.pdb|0F289BC0C9A94139BC1C31EDEDBF52311|0x74d90000|0x74dfafff|0\\nModule|MSCTFIME.IME|5.1.2600.5768|msctfime.pdb|3C615F3A72FC4192A60AA2A1F52449AC1|0x755c0000|0x755edfff|0\\nModule|msimg32.dll|5.1.2600.5512|msimg32.pdb|D2E18526D8234F4BB5A85DE12E71DE812|0x76380000|0x76384fff|0\\nModule|imm32.dll|5.1.2600.5512|imm32.pdb|F7A5B5DB13324153B57AAF340C77EA512|0x76390000|0x763acfff|0\\nModule|comdlg32.dll|6.0.2900.5512|comdlg32.pdb|026A6FF770FD4E6186ADBBE96DFFA99C2|0x763b0000|0x763f8fff|0\\nModule|winmm.dll|5.1.2600.5512|winmm.pdb|90FC96D5AD8440A2B14855895BD92ED62|0x76b40000|0x76b6cfff|0\\nModule|psapi.dll|5.1.2600.5512|psapi.pdb|B9875A55C874489384EA8FB805322C312|0x76bf0000|0x76bfafff|0\\nModule|iphlpapi.dll|5.1.2600.5512|iphlpapi.pdb|9B09F073003F4CA48F9980B3C091448F2|0x76d60000|0x76d78fff|0\\nModule|dnsapi.dll|5.1.2600.5649|dnsapi.pdb|32D68E409B0B4F58968A103CB7CB8CA92|0x76f20000|0x76f46fff|0\\nModule|wldap32.dll|5.1.2600.5512|wldap32.pdb|AC04BCF6FF294FCEAC8B8D937CBA3A172|0x76f60000|0x76f8bfff|0\\nModule|winrnr.dll|5.1.2600.5512|winrnr.pdb|9FE1A4669B69400FAC821A4367AA9CC52|0x76fb0000|0x76fb7fff|0\\nModule|clbcatq.dll|2001.12.4414.700|clbcatq.pdb|8AE9C54730824764AAF39EA69F8D87582|0x76fd0000|0x7704efff|0\\nModule|comres.dll|2001.12.4414.700|COMRes.pdb|A02453A3EB42413FBFF95326893E977Df|0x77050000|0x77114fff|0\\nModule|oleaut32.dll|5.1.2600.5512|oleaut32.pdb|F2A209009B694EFCAD1A6CE9D992EBC12|0x77120000|0x771aafff|0\\nModule|comctl32.dll|6.0.2900.5512|MicrosoftWindowsCommon-Controls-6.0.2600.5512-comctl32.pdb|505057971C40416FB39FED1D39BED0571|0x773d0000|0x774d2fff|0\\nModule|ole32.dll|5.1.2600.5685|ole32.pdb|9A4C05DDE0EC40CBBB843A4AD8FEF3C42|0x774e0000|0x7761dfff|0\\nModule|setupapi.dll|5.1.2600.5603|setupapi.pdb|D4ED459F85A948E7A94E123D65DFCC332|0x77920000|0x77a12fff|0\\nModule|version.dll|5.1.2600.5512|version.pdb|EA3D1BD3FE65475C8449C8D8B00722962|0x77c00000|0x77c07fff|0\\nModule|msvcrt.dll|7.0.2600.5701|msvcrt.pdb|F46BE85D442A476EAADBC8CC2B727C681|0x77c10000|0x77c67fff|0\\nModule|advapi32.dll|5.1.2600.5755|advapi32.pdb|8F800AAE525541239E4110B8821F5ECD2|0x77dd0000|0x77e6afff|0\\nModule|rpcrt4.dll|5.1.2600.5795|rpcrt4.pdb|759EF1C510534614A5537861C559C4282|0x77e70000|0x77f01fff|0\\nModule|gdi32.dll|5.1.2600.5698|gdi32.pdb|005002194FA345B5957493744A01376E2|0x77f10000|0x77f58fff|0\\nModule|shlwapi.dll|6.0.2900.5512|shlwapi.pdb|8519E3403447478884CFFE7F1A91BAE02|0x77f60000|0x77fd5fff|0\\nModule|secur32.dll|5.1.2600.5753|secur32.pdb|F6CC06B49B764C5AA7C4C320ECB139F42|0x77fe0000|0x77ff0fff|0\\nModule|mozcrt19.dll|8.0.0.0|mozcrt19.pdb|06D6AEABD62C4346BF4F11E4D3BF37B61|0x78130000|0x781e0fff|0\\nModule|kernel32.dll|5.1.2600.5781|kernel32.pdb|F3F783A50DA64DD2AA9357ED6DAF9A252|0x7c800000|0x7c8f5fff|0\\nModule|ntdll.dll|5.1.2600.5755|ntdll.pdb|99192024C5EB4830AC602195086637082|0x7c900000|0x7c9b1fff|0\\nModule|shell32.dll|6.0.2900.5672|shell32.pdb|69B3829BB6884926A5B97BF04E812C6B2|0x7c9c0000|0x7e0f5fff|0\\nModule|user32.dll|5.1.2600.5512|user32.pdb|D18A41B74E7F458CAAAC1847E2D8BF022|0x7e410000|0x7e4aefff|0\\n\\n0|0|GoogleDesktopMozilla.dll||||0x5512\\n0|1|GoogleDesktopMozilla.dll||||0x4b7e\\n0|2|xul.dll||||0x30b591\\n0|3|xul.dll|CallPeekFunc|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsInputStreamPump.cpp:c6f51c76fb5d|125|0x10\\n0|4|xul.dll|nsPipeInputStream::ReadSegments(unsigned int (*)(nsIInputStream *,void *,char const *,unsigned int,unsigned int,unsigned int *),void *,unsigned int,unsigned int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/io/nsPipe3.cpp:c6f51c76fb5d|799|0x1c\\n0|5|xul.dll|nsFileChannel::QueryInterface(nsID const &,void * *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/protocol/file/src/nsFileChannel.cpp:c6f51c76fb5d|400|0x79\\n0|6|xul.dll|nsBaseChannel::GetStatus(unsigned int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsBaseChannel.cpp:c6f51c76fb5d|323|0xe\\n0|7|xul.dll|nsBaseChannel::OnStartRequest(nsIRequest *,nsISupports *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsBaseChannel.cpp:c6f51c76fb5d|665|0x23\\n0|8|xul.dll|nsInputStreamPump::OnStateStart()|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsInputStreamPump.cpp:c6f51c76fb5d|439|0x1c\\n0|9|xul.dll|nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsInputStreamPump.cpp:c6f51c76fb5d|395|0x7\\n0|10|xul.dll|nsInputStreamReadyEvent::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/io/nsStreamUtils.cpp:c6f51c76fb5d|111|0x8\\n0|11|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|510|0x13\\n0|12|xul.dll|nsBaseAppShell::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:widget/src/xpwidgets/nsBaseAppShell.cpp:c6f51c76fb5d|170|0x23\\n0|13|xul.dll|nsAppStartup::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:toolkit/components/startup/src/nsAppStartup.cpp:c6f51c76fb5d|193|0xc\\n0|14|nspr4.dll||||0xbaff\\n0|15|firefox.exe|wmain|hg:hg.mozilla.org/releases/mozilla-1.9.1:toolkit/xre/nsWindowsWMain.cpp:c6f51c76fb5d|110|0xe5\\n0|16|firefox.exe|__tmainCRTStartup|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/crtexe.c:c6f51c76fb5d|591|0x18\\n0|17|kernel32.dll|BaseProcessStart|||0x22\\n1|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n1|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n1|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n1|3|kernel32.dll|WaitForSingleObject|||0x11\\n1|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w95cv.c:c6f51c76fb5d|280|0xd\\n1|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/prucv.c:c6f51c76fb5d|204|0x27\\n1|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/prucv.c:c6f51c76fb5d|547|0xc\\n1|7|xul.dll|TimerThread::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/TimerThread.cpp:c6f51c76fb5d|345|0x12\\n1|8|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|510|0x13\\n1|9|xul.dll|nsThread::ThreadFunc(void *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|254|0xb\\n1|10|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/pruthr.c:c6f51c76fb5d|426|0x8\\n1|11|nspr4.dll|pr_root|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w95thred.c:c6f51c76fb5d|122|0xc\\n1|12|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|348|0x8\\n1|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|326|0x4\\n1|14|kernel32.dll|BaseThreadStart|||0x36\\n2|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n2|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n2|2|kernel32.dll|CreateFileMappingA|||0x85\\n2|3|advapi32.dll|WmipEventPump|||0x1a6\\n2|4|kernel32.dll|BaseThreadStart|||0x36\\n3|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n3|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n3|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n3|3|kernel32.dll|WaitForSingleObject|||0x11\\n3|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w95cv.c:c6f51c76fb5d|280|0xd\\n3|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/prucv.c:c6f51c76fb5d|204|0x27\\n3|6|nspr4.dll|PR_WaitCondVar|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/prucv.c:c6f51c76fb5d|547|0xc\\n3|7|xul.dll|XPCJSRuntime::WatchdogMain(void *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:js/src/xpconnect/src/xpcjsruntime.cpp:c6f51c76fb5d|823|0x12\\n3|8|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/pruthr.c:c6f51c76fb5d|426|0x8\\n3|9|msvcrt.dll|_fptrap|||0xa76e\\n3|10|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|326|0x4\\n3|11|kernel32.dll|BaseThreadStart|||0x36\\n4|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n4|1|ntdll.dll|ZwRemoveIoCompletion|||0xb\\n4|2|mswsock.dll|SockAsyncThread|||0x59\\n4|3|kernel32.dll|BaseThreadStart|||0x36\\n5|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n5|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n5|2|mswsock.dll|SockWaitForSingleObject|||0x39\\n5|3|mswsock.dll|SockReleaseRwLockExclusive|||0x40\\n5|4|ws2_32.dll|select|||0xa6\\n5|5|nspr4.dll|_PR_MD_PR_POLL|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w32poll.c:c6f51c76fb5d|279|0xe\\n5|6|nspr4.dll||||0xca1f\\n6|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n6|1|ntdll.dll|NtWaitForMultipleObjects|||0xb\\n6|2|kernel32.dll|CreateFileMappingA|||0x85\\n6|3|kernel32.dll|WaitForMultipleObjects|||0x17\\n6|4|xul.dll|nsNotifyAddrListener::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/system/win32/nsNotifyAddrListener.cpp:c6f51c76fb5d|185|0xe\\n6|5|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|510|0x13\\n6|6|xul.dll|nsThread::ThreadFunc(void *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|254|0xb\\n6|7|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/pruthr.c:c6f51c76fb5d|426|0x8\\n6|8|nspr4.dll|pr_root|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w95thred.c:c6f51c76fb5d|122|0xc\\n6|9|mozcrt19.dll|_callthreadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|348|0x8\\n6|10|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|326|0x4\\n6|11|kernel32.dll|BaseThreadStart|||0x36\\n7|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n7|1|user32.dll|NtUserGetMessage|||0xb\\n7|2|GoogleDesktopMozilla.dll||||0x5cbe\\n7|3|GoogleDesktopMozilla.dll||||0xb87a\\n7|4|kernel32.dll|BaseThreadStart|||0x36\\n8|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n8|1|ntdll.dll|ZwWaitForSingleObject|||0xb\\n8|2|kernel32.dll|WaitForSingleObjectEx|||0x8a\\n8|3|kernel32.dll|WaitForSingleObject|||0x11\\n8|4|nspr4.dll|_PR_MD_WAIT_CV|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/md/windows/w95cv.c:c6f51c76fb5d|280|0xd\\n8|5|nspr4.dll|_PR_WaitCondVar|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/prucv.c:c6f51c76fb5d|204|0x27\\n8|6|nspr4.dll|PR_Wait|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/prmon.c:c6f51c76fb5d|184|0x19\\n8|7|xul.dll|nsAutoMonitor::Wait(unsigned int)|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/dist/include/xpcom/nsAutoLock.h:c6f51c76fb5d|340|0xb\\n8|8|xul.dll|nsThreadPool::Run()|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThreadPool.cpp:c6f51c76fb5d|210|0xd\\n8|9|xul.dll|nsThread::ProcessNextEvent(int,int *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|510|0x13\\n8|10|xul.dll|nsThread::ThreadFunc(void *)|hg:hg.mozilla.org/releases/mozilla-1.9.1:xpcom/threads/nsThread.cpp:c6f51c76fb5d|254|0xb\\n8|11|nspr4.dll|_PR_NativeRunThread|hg:hg.mozilla.org/releases/mozilla-1.9.1:nsprpub/pr/src/threads/combined/pruthr.c:c6f51c76fb5d|426|0x8\\n8|12|js3250.dll||||0x4a9f\\n8|13|mozcrt19.dll|_threadstartex|hg:hg.mozilla.org/releases/mozilla-1.9.1:obj-firefox/memory/jemalloc/src/threadex.c:c6f51c76fb5d|326|0x4\\n8|14|kernel32.dll|BaseThreadStart|||0x36\\n9|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n9|1|ntdll.dll|NtReplyWaitReceivePortEx|||0xb\\n9|2|rpcrt4.dll|RpcpPurgeEEInfoFromThreadIfNecessary(THREAD *)|||0x48\\n9|3|rpcrt4.dll|RecvLotsaCallsWrapper(LRPC_ADDRESS *)|||0xc\\n9|4|rpcrt4.dll|BaseCachedThreadRoutine(CACHED_THREAD *)|||0x52\\n9|5|rpcrt4.dll|ThreadStartRoutine(THREAD *)|||0x19\\n9|6|kernel32.dll|BaseThreadStart|||0x36\\n10|0|ntdll.dll|KiFastSystemCallRet|||0x0\\n10|1|ntdll.dll|ZwDelayExecution|||0xb\\n10|2|kernel32.dll|SleepEx|||0x50\\n10|3|kernel32.dll|Sleep|||0xe\\n10|4|ole32.dll|CROIDTable::WorkerThreadLoop(void *)|||0x13\\n10|5|ole32.dll|CRpcThread::WorkerLoop()|||0x1d\\n10|6|||||0x774dffff\\n10|7|kernel32.dll|BaseThreadStart|||0x36\", \"startedDateTime\": \"2011-03-02 18:07:40.147016\", \"product\": \"Firefox\", \"crashedThread\": 0, \"cpu_info\": \"AuthenticAMD family 16 model 6 stepping 2 | 1\", \"install_age\": 6246, \"distributor\": null, \"topmost_filenames\": [\"hg:hg.mozilla.org/releases/mozilla-1.9.1:netwerk/base/src/nsInputStreamPump.cpp:c6f51c76fb5d\"], \"id\": 225856774, \"user_comments\": \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n05\\r\\n\\r\\n\\r\\n.\\r\\n+\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\", \"build_date\": \"2009-07-15 09:00:00.0\", \"uptime\": 1, \"uuid\": \"48b5ddb1-6029-4375-84b0-5f8ab2110302\", \"flash_version\": \"[blank]\", \"os_version\": \"5.1.2600 Service Pack 3\", \"distributor_version\": null, \"truncated\": false, \"process_type\": null, \"processor_notes\": \"\", \"hangid\": null, \"version\": \"3.5.1\", \"build\": \"20090715094852\", \"addons_checked\": null, \"app_notes\": null, \"os_name\": \"Windows NT\", \"last_crash\": 1, \"date_processed\": \"2011-03-02 18:07:17.892535\", \"cpu_name\": \"x86\", \"reason\": \"EXCEPTION_ACCESS_VIOLATION_READ\", \"address\": \"0x9\", \"completeddatetime\": \"2011-03-02 18:07:42.889052\", \"signature\": \"GoogleDesktopMozilla.dll@0x5512\", \"addons\": [[\"jqs@sun.com\", \"1.0\"], [\"mozilla_cc@internetdownloadmanager.com\", \"6.4\"], [\"{972ce4c6-7e08-4474-a285-3208198ce6fd}\", \"3.5.1\"]]}" jdata <- fromJSON( x ) checkTrue( is.list( jdata ) ) }