diff --git a/common/common.cpp b/common/common.cpp index 38c9435c54..9f78186a38 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -21,25 +21,25 @@ */ /* Standard page sizes in 1/1000 inch */ -Ki_PageDescr g_Sheet_A4( wxSize( 11700, 8267 ), wxPoint( 0, 0 ), wxT( "A4" ) ); -Ki_PageDescr g_Sheet_A3( wxSize( 16535, 11700 ), wxPoint( 0, 0 ), wxT( "A3" ) ); -Ki_PageDescr g_Sheet_A2( wxSize( 23400, 16535 ), wxPoint( 0, 0 ), wxT( "A2" ) ); -Ki_PageDescr g_Sheet_A1( wxSize( 33070, 23400 ), wxPoint( 0, 0 ), wxT( "A1" ) ); -Ki_PageDescr g_Sheet_A0( wxSize( 46800, 33070 ), wxPoint( 0, 0 ), wxT( "A0" ) ); -Ki_PageDescr g_Sheet_A( wxSize( 11000, 8500 ), wxPoint( 0, 0 ), wxT( "A" ) ); -Ki_PageDescr g_Sheet_B( wxSize( 17000, 11000 ), wxPoint( 0, 0 ), wxT( "B" ) ); -Ki_PageDescr g_Sheet_C( wxSize( 22000, 17000 ), wxPoint( 0, 0 ), wxT( "C" ) ); -Ki_PageDescr g_Sheet_D( wxSize( 34000, 22000 ), wxPoint( 0, 0 ), wxT( "D" ) ); -Ki_PageDescr g_Sheet_E( wxSize( 44000, 34000 ), wxPoint( 0, 0 ), wxT( "E" ) ); -Ki_PageDescr g_Sheet_GERBER( wxSize( 32000, 32000 ), wxPoint( 0, 0 ), +Ki_PageDescr g_Sheet_A4( wxSize( 11700, 8267 ), wxPoint( 0, 0 ), wxT( "A4" ) ); +Ki_PageDescr g_Sheet_A3( wxSize( 16535, 11700 ), wxPoint( 0, 0 ), wxT( "A3" ) ); +Ki_PageDescr g_Sheet_A2( wxSize( 23400, 16535 ), wxPoint( 0, 0 ), wxT( "A2" ) ); +Ki_PageDescr g_Sheet_A1( wxSize( 33070, 23400 ), wxPoint( 0, 0 ), wxT( "A1" ) ); +Ki_PageDescr g_Sheet_A0( wxSize( 46800, 33070 ), wxPoint( 0, 0 ), wxT( "A0" ) ); +Ki_PageDescr g_Sheet_A( wxSize( 11000, 8500 ), wxPoint( 0, 0 ), wxT( "A" ) ); +Ki_PageDescr g_Sheet_B( wxSize( 17000, 11000 ), wxPoint( 0, 0 ), wxT( "B" ) ); +Ki_PageDescr g_Sheet_C( wxSize( 22000, 17000 ), wxPoint( 0, 0 ), wxT( "C" ) ); +Ki_PageDescr g_Sheet_D( wxSize( 34000, 22000 ), wxPoint( 0, 0 ), wxT( "D" ) ); +Ki_PageDescr g_Sheet_E( wxSize( 44000, 34000 ), wxPoint( 0, 0 ), wxT( "E" ) ); +Ki_PageDescr g_Sheet_GERBER( wxSize( 32000, 32000 ), wxPoint( 0, 0 ), wxT( "GERBER" ) ); -Ki_PageDescr g_Sheet_user( wxSize( 17000, 11000 ), wxPoint( 0, 0 ), +Ki_PageDescr g_Sheet_user( wxSize( 17000, 11000 ), wxPoint( 0, 0 ), wxT( "User" ) ); Ki_PageDescr* g_SheetSizeList[NB_ITEMS + 1] = { - &g_Sheet_A4, &g_Sheet_A3, &g_Sheet_A2, &g_Sheet_A1, &g_Sheet_A0, - &g_Sheet_A, &g_Sheet_B, &g_Sheet_C, &g_Sheet_D, &g_Sheet_E, + &g_Sheet_A4, &g_Sheet_A3, &g_Sheet_A2, &g_Sheet_A1, &g_Sheet_A0, + &g_Sheet_A, &g_Sheet_B, &g_Sheet_C, &g_Sheet_D, &g_Sheet_E, &g_Sheet_user, NULL }; @@ -57,33 +57,33 @@ const wxString PdfFileExtension( wxT( "pdf" ) ); /* Proper wxFileDialog wild card definitions. */ const wxString ProjectFileWildcard( _( "Kicad project files (*.pro)|*.pro" ) ); -const wxString BoardFileWildcard( _( "Kicad PCB files (*.brd)|*.brd") ); +const wxString BoardFileWildcard( _( "Kicad PCB files (*.brd)|*.brd" ) ); const wxString SchematicFileWildcard( _( "Kicad schematic files (*.sch)|*.sch" ) ); const wxString NetlistFileWildcard( _( "Kicad netlist files (*.net)|*.net" ) ); const wxString GerberFileWildcard( _( "Gerber files (*.pho)|*.pho" ) ); const wxString PdfFileWildcard( _( "Portable document format files (*.pdf)|*.pdf" ) ); -const wxString AllFilesWildcard( _( "All files (*)|*") ); +const wxString AllFilesWildcard( _( "All files (*)|*" ) ); -wxString g_ProductName = wxT( "KiCad E.D.A. " ); -bool g_ShowPageLimits = true; -int g_GridColor = DARKGRAY; -wxString g_UserLibDirBuffer; -int g_DebugLevel; -int g_MouseOldButtons; -int g_KeyPressed; +wxString g_ProductName = wxT( "KiCad E.D.A. " ); +bool g_ShowPageLimits = true; +int g_GridColor = DARKGRAY; +wxString g_UserLibDirBuffer; +int g_DebugLevel; +int g_MouseOldButtons; +int g_KeyPressed; // Nom (full file name) du file Configuration par defaut (kicad.pro) -wxString g_Prj_Default_Config_FullFilename; +wxString g_Prj_Default_Config_FullFilename; // Nom du file Configuration local (.pro) -wxString g_Prj_Config_LocalFilename; +wxString g_Prj_Config_LocalFilename; // Handle the preferd editor for browsing report files: -int g_UnitMetric; // display units mm = 1, inches = 0, cm = 2 +int g_UnitMetric; // display units mm = 1, inches = 0, cm = 2 /* Draw color for moving objects: */ -int g_GhostColor; +int g_GhostColor; /* predefined colors used in kicad. * Please: if you change a value, remember these values are carefully chosen @@ -92,45 +92,43 @@ int g_GhostColor; */ StructColors ColorRefs[NBCOLOR] = { - { 0, 0, 0, BLACK, wxT("BLACK"), DARKDARKGRAY}, - { 192, 0, 0, BLUE, wxT("BLUE"), LIGHTBLUE}, - { 0, 160, 0, GREEN, wxT("GREEN"), LIGHTGREEN }, - { 160, 160, 0, CYAN, wxT("CYAN"), LIGHTCYAN }, - { 0, 0, 160, RED, wxT("RED"), LIGHTRED }, - { 160, 0, 160, MAGENTA, wxT("MAGENTA"), LIGHTMAGENTA }, - { 0, 128, 128, BROWN, wxT("BROWN"), YELLOW }, - { 192, 192, 192, LIGHTGRAY, wxT("GRAY"), WHITE }, - { 128, 128, 128, DARKGRAY, wxT("DARKGRAY"), LIGHTGRAY }, - { 255, 0, 0, LIGHTBLUE, wxT("LIGHTBLUE"), LIGHTBLUE }, - { 0, 255, 0, LIGHTGREEN, wxT("LIGHTGREEN"), LIGHTGREEN }, - { 255, 255, 0, LIGHTCYAN, wxT("LIGHTCYAN"), LIGHTCYAN }, - { 0, 0, 255, LIGHTRED, wxT("LIGHTRED"), LIGHTRED }, - { 255, 0, 255, LIGHTMAGENTA, wxT("LIGHTMAGENTA"), LIGHTMAGENTA }, - { 0, 255, 255, YELLOW, wxT("YELLOW"), YELLOW }, - { 255, 255, 255, WHITE, wxT("WHITE"), WHITE }, - { 64, 64, 64, DARKDARKGRAY, wxT("DARKDARKGRAY"), DARKGRAY }, - { 64, 0, 0, DARKBLUE, wxT("DARKBLUE"), BLUE }, - { 0, 64, 0, DARKGREEN, wxT("DARKGREEN"), GREEN }, - { 64, 64, 0, DARKCYAN, wxT("DARKCYAN"), CYAN }, - { 0, 0, 80, DARKRED, wxT("DARKRED"), RED }, - { 64, 0, 64, DARKMAGENTA, wxT("DARKMAGENTA"), MAGENTA }, - { 0, 64, 64, DARKBROWN, wxT("DARKBROWN"), BROWN }, - { 128, 255, 255, LIGHTYELLOW, wxT("LIGHTYELLOW"), LIGHTYELLOW } + { 0, 0, 0, BLACK, wxT( "BLACK" ), DARKDARKGRAY }, + { 192, 0, 0, BLUE, wxT( "BLUE" ), LIGHTBLUE }, + { 0, 160, 0, GREEN, wxT( "GREEN" ), LIGHTGREEN }, + { 160, 160, 0, CYAN, wxT( "CYAN" ), LIGHTCYAN }, + { 0, 0, 160, RED, wxT( "RED" ), LIGHTRED }, + { 160, 0, 160, MAGENTA, wxT( "MAGENTA" ), LIGHTMAGENTA }, + { 0, 128, 128, BROWN, wxT( "BROWN" ), YELLOW }, + { 192, 192, 192, LIGHTGRAY, wxT( "GRAY" ), WHITE }, + { 128, 128, 128, DARKGRAY, wxT( "DARKGRAY" ), LIGHTGRAY }, + { 255, 0, 0, LIGHTBLUE, wxT( "LIGHTBLUE" ), LIGHTBLUE }, + { 0, 255, 0, LIGHTGREEN, wxT( "LIGHTGREEN" ), LIGHTGREEN }, + { 255, 255, 0, LIGHTCYAN, wxT( "LIGHTCYAN" ), LIGHTCYAN }, + { 0, 0, 255, LIGHTRED, wxT( "LIGHTRED" ), LIGHTRED }, + { 255, 0, 255, LIGHTMAGENTA, wxT( "LIGHTMAGENTA" ), LIGHTMAGENTA }, + { 0, 255, 255, YELLOW, wxT( "YELLOW" ), YELLOW }, + { 255, 255, 255, WHITE, wxT( "WHITE" ), WHITE }, + { 64, 64, 64, DARKDARKGRAY, wxT( "DARKDARKGRAY" ), DARKGRAY }, + { 64, 0, 0, DARKBLUE, wxT( "DARKBLUE" ), BLUE }, + { 0, 64, 0, DARKGREEN, wxT( "DARKGREEN" ), GREEN }, + { 64, 64, 0, DARKCYAN, wxT( "DARKCYAN" ), CYAN }, + { 0, 0, 80, DARKRED, wxT( "DARKRED" ), RED }, + { 64, 0, 64, DARKMAGENTA, wxT( "DARKMAGENTA" ), MAGENTA }, + { 0, 64, 64, DARKBROWN, wxT( "DARKBROWN" ), BROWN }, + { 128, 255, 255, LIGHTYELLOW, wxT( "LIGHTYELLOW" ), LIGHTYELLOW } }; -/* +/** Function GetBuildVersion() * Return the build date */ -/****************/ wxString GetBuildVersion() -/****************/ { return g_BuildVersion; } -/* +/** Function GetAboutBuildVersion() * Return custom build date for about dialog */ wxString GetAboutBuildVersion() @@ -140,15 +138,15 @@ wxString GetAboutBuildVersion() /** function SetLocaleTo_C_standard -* because kicad is internationalized, switch internatization to "C" standard -* i.e. uses the . (dot) as separator in print/read float numbers -* (some contries (France, Germany ..) use , (comma) as separator) -* This function must be called before read or write ascii files using float numbers in data -* the SetLocaleTo_C_standard function must be called after reading or writing the file -* -* This is wrapper to the C setlocale( LC_NUMERIC, "C" ) function, -* but could make more easier an optional use of locale in kicad -*/ + * because kicad is internationalized, switch internatization to "C" standard + * i.e. uses the . (dot) as separator in print/read float numbers + * (some contries (France, Germany ..) use , (comma) as separator) + * This function must be called before read or write ascii files using float numbers in data + * the SetLocaleTo_C_standard function must be called after reading or writing the file + * + * This is wrapper to the C setlocale( LC_NUMERIC, "C" ) function, + * but could make more easier an optional use of locale in kicad + */ /********************************/ void SetLocaleTo_C_standard( void ) { @@ -157,13 +155,13 @@ void SetLocaleTo_C_standard( void ) /** function SetLocaleTo_Default - * because kicad is internationalized, switch internatization to default - * to use the default separator in print/read float numbers - * (. (dot) but some contries (France, Germany ..) use , (comma) as separator) - * This function must be called after a call to SetLocaleTo_C_standard + * because kicad is internationalized, switch internatization to default + * to use the default separator in print/read float numbers + * (. (dot) but some contries (France, Germany ..) use , (comma) as separator) + * This function must be called after a call to SetLocaleTo_C_standard * - * This is wrapper to the C setlocale( LC_NUMERIC, "" ) function, - * but could make more easier an optional use of locale in kicad + * This is wrapper to the C setlocale( LC_NUMERIC, "" ) function, + * but could make more easier an optional use of locale in kicad */ /********************************/ void SetLocaleTo_Default( void ) @@ -174,24 +172,25 @@ void SetLocaleTo_Default( void ) /********************************************************************/ -bool EnsureTextCtrlWidth(wxTextCtrl* aCtrl, - const wxString* aString ) +bool EnsureTextCtrlWidth( wxTextCtrl* aCtrl, + const wxString* aString ) /********************************************************************/ { - wxWindow* window = aCtrl->GetParent(); + wxWindow* window = aCtrl->GetParent(); + if( !window ) window = aCtrl; - wxString ctrlText; + wxString ctrlText; if( !aString ) { ctrlText = aCtrl->GetValue(); - aString = &ctrlText; + aString = &ctrlText; } - wxCoord width; - wxCoord height; + wxCoord width; + wxCoord height; { wxClientDC dc( window ); @@ -211,9 +210,9 @@ bool EnsureTextCtrlWidth(wxTextCtrl* aCtrl, /*********************************************************************************************/ -Ki_PageDescr::Ki_PageDescr(const wxSize& size, - const wxPoint& offset, - const wxString& name ) +Ki_PageDescr::Ki_PageDescr( const wxSize& size, + const wxPoint& offset, + const wxString& name ) /*********************************************************************************************/ { // All sizes are in 1/1000 inch @@ -223,12 +222,12 @@ Ki_PageDescr::Ki_PageDescr(const wxSize& size, // Adjust the default value for margins to 400 mils (0,4 inch or 10 mm) #if defined(KICAD_GOST) - m_LeftMargin = LEFTMARGIN; - m_RightMargin = RIGHTMARGIN; - m_TopMargin = TOPMARGIN; + m_LeftMargin = LEFTMARGIN; + m_RightMargin = RIGHTMARGIN; + m_TopMargin = TOPMARGIN; m_BottomMargin = BOTTOMMARGIN; #else - m_LeftMargin = m_RightMargin = m_TopMargin = m_BottomMargin = 400; + m_LeftMargin = m_RightMargin = m_TopMargin = m_BottomMargin = 400; #endif } @@ -323,9 +322,9 @@ wxString ReturnStringFromValue( int aUnits, int aValue, int aInternal_Unit, StringValue << aValue; else { - value_to_print = To_User_Unit( (bool)aUnits, aValue, aInternal_Unit ); + value_to_print = To_User_Unit( (bool) aUnits, aValue, aInternal_Unit ); StringValue.Printf( ( aInternal_Unit > 1000 ) ? wxT( "%.4f" ) : wxT( "%.3f" ), - value_to_print ); + value_to_print ); } if( aAdd_unit_symbol ) @@ -366,11 +365,12 @@ int ReturnValueFromString( int Units, const wxString& TextValue, if( Units >= CENTIMETRE ) Value = wxRound( dtmp ); else - Value = From_User_Unit( (bool)Units, dtmp, Internal_Unit ); + Value = From_User_Unit( (bool) Units, dtmp, Internal_Unit ); return Value; } + /** * Function wxStringSplit * Split a String to a String List when founding 'splitter' @@ -379,25 +379,26 @@ int ReturnValueFromString( int Units, const wxString& TextValue, * @param splitter : wxChar : the 'split' character */ /**********************************************************/ -wxArrayString* wxStringSplit(wxString txt, wxChar splitter) +wxArrayString* wxStringSplit( wxString txt, wxChar splitter ) /**********************************************************/ { wxArrayString* list = new wxArrayString(); - while (1) - { - int index=txt.Find(splitter); - if (index == wxNOT_FOUND) - break; - wxString tmp; - tmp = txt.Mid(0,index); - txt = txt.Mid( index+1, txt.size() - index); - list->Add(tmp); + while( 1 ) + { + int index = txt.Find( splitter ); + if( index == wxNOT_FOUND ) + break; + + wxString tmp; + tmp = txt.Mid( 0, index ); + txt = txt.Mid( index + 1, txt.size() - index ); + list->Add( tmp ); } - if (!txt.IsEmpty()) + if( !txt.IsEmpty() ) { - list->Add(txt); + list->Add( txt ); } return list; @@ -407,6 +408,7 @@ wxArrayString* wxStringSplit(wxString txt, wxChar splitter) /******************************************************************/ double To_User_Unit( bool is_metric, int val, int internal_unit_value ) /******************************************************************/ + /** * Function To_User_Unit * Convert in inch or mm the variable "val" (double)given in internal units @@ -419,18 +421,20 @@ double To_User_Unit( bool is_metric, int val, int internal_unit_value ) double value; if( is_metric ) - value = (double) (val) * 25.4 / internal_unit_value; + value = (double) ( val ) * 25.4 / internal_unit_value; else - value = (double) (val) / internal_unit_value; + value = (double) ( val ) / internal_unit_value; return value; } + /******************************************************************/ -double To_User_Unit( bool is_metric, - double val, - int internal_unit_value ) +double To_User_Unit( bool is_metric, + double val, + int internal_unit_value ) /******************************************************************/ + /** * Function To_User_Unit * Convert in inch or mm the variable "val" (double)given in internal units @@ -451,7 +455,6 @@ double To_User_Unit( bool is_metric, } - /* * Return in internal units the value "val" given in inch or mm */ @@ -490,8 +493,8 @@ wxString GenDate() time( &buftime ); Date = gmtime( &buftime ); string_date.Printf( wxT( "%d %s %d" ), Date->tm_mday, - mois[Date->tm_mon].GetData(), - Date->tm_year + 1900 ); + mois[Date->tm_mon].GetData(), + Date->tm_year + 1900 ); return string_date; } @@ -580,7 +583,8 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding ) // These are only default layer names. For PCBNEW, the copper names // may be over-ridden in the BOARD file *.brd. - static const wxString layer_name_list[] = { + static const wxString layer_name_list[] = + { _( "Copper " ), _( "Inner L1 " ), _( "Inner L2 " ), _( "Inner L3 " ), _( "Inner L4 " ), _( "Inner L5 " ), _( "Inner L6 " ), _( "Inner L7 " ), _( "Inner L8 " ), _( "Inner L9 " ), _( "Inner L10" ), _( "Inner L11" ), @@ -622,22 +626,22 @@ EVT_CLOSE( WinEDA_TextFrame::OnClose ) END_EVENT_TABLE() /***************************************************************************/ -WinEDA_TextFrame::WinEDA_TextFrame( wxWindow* parent, +WinEDA_TextFrame::WinEDA_TextFrame( wxWindow* parent, const wxString& title ) : - wxDialog( parent, - -1, title, - wxPoint( -1, -1 ), - wxSize( 250, 350 ), - wxDEFAULT_DIALOG_STYLE | - wxFRAME_FLOAT_ON_PARENT | - MAYBE_RESIZE_BORDER ) + wxDialog( parent, + -1, title, + wxPoint( -1, -1 ), + wxSize( 250, 350 ), + wxDEFAULT_DIALOG_STYLE | + wxFRAME_FLOAT_ON_PARENT | + MAYBE_RESIZE_BORDER ) /***************************************************************************/ { /* - * TODO background and foreground colors of WinEDA_TextFrame should be - * controllable / settable with project settings or config file and not - * hardcoded in binairy ! - */ + * TODO background and foreground colors of WinEDA_TextFrame should be + * controllable / settable with project settings or config file and not + * hardcoded in binairy ! + */ wxSize size; diff --git a/common/trigo.cpp b/common/trigo.cpp index a3509743ea..40e966e12b 100644 --- a/common/trigo.cpp +++ b/common/trigo.cpp @@ -7,28 +7,40 @@ #include "fctsys.h" #include "trigo.h" +/** Function TestSegmentHit + * test for hit on line segment + * i.e. cursor within a given distance from segment + * @param aRefPoint = cursor (point to test) coords + * @param aStart is the first end-point of the line segment + * @param aEnd is the second end-point of the line segment + * @param aDist = maximum distance for hit + */ +bool TestSegmentHit( wxPoint aRefPoint, wxPoint aStart, wxPoint aEnd, int aDist ) +{ + // make coordinates relatives to aStart: + aEnd -= aStart; + aRefPoint -= aStart; + return DistanceTest( aDist, aEnd.x, aEnd.y, aRefPoint.x, aRefPoint.y ); +} + /************************************************************************/ bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ) /************************************************************************/ -/* +/** Function DistanceTest * Calcul de la distance du curseur souris a un segment de droite : - * ( piste, edge, contour module .. * retourne: * false si distance > seuil * true si distance <= seuil - * Variables utilisees ( doivent etre initialisees avant appel , et - * sont ramenees au repere centre sur l'origine du segment) - * dx, dy = coord de l'extremite segment. - * spot_cX,spot_cY = coord du curseur souris - * la recherche se fait selon 4 cas: - * segment horizontal - * segment vertical - * segment 45 - * segment quelconque */ { +/* We can have 4 cases:: + * horizontal segment + * vertical segment + * 45 degrees segment + * other slopes + */ int cXrot, cYrot, /* coord du point (souris) dans le repere tourne */ segX, segY; /* coord extremite segment tj >= 0 */ int pointX, pointY; /* coord point a tester dans repere modifie dans lequel @@ -66,7 +78,8 @@ bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ) } if( (pointX > segX) && ( pointX <= (segX + seuil) ) ) { - if( ( ( (pointX - segX) * (pointX - segX) ) + (pointY * pointY) ) <= (seuil * seuil) ) + if( ( ( (pointX - segX) * (pointX - segX) ) + (pointY * pointY) ) <= + (seuil * seuil) ) return true; } } @@ -84,7 +97,8 @@ bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ) } if( (pointY > segY) && ( pointY <= (segY + seuil) ) ) { - if( ( ( (pointY - segY) * (pointY - segY) ) + (pointX * pointX) ) <= (seuil * seuil) ) + if( ( ( (pointY - segY) * (pointY - segY) ) + (pointX * pointX) ) <= + (seuil * seuil) ) return true; } } @@ -97,7 +111,7 @@ bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ) * et le segment de piste est alors horizontal. * recalcul des coord de la souris ( sin45 = cos45 = .707 = 7/10 * remarque : sin ou cos45 = .707, et lors du recalcul des coord - * dx45 et dy45, lec coeff .707 est neglige, dx et dy sont en fait .707 fois + * dx45 et dy45, lec coeff .707 est neglige, dx et dy sont en fait 0.707 fois * trop grands. (c.a.d trop petits) * spot_cX,Y doit etre * par .707 * .707 = 0.5 */ @@ -136,7 +150,7 @@ bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ) * de piste soit horizontal dans le nouveau repere */ int angle; - angle = (int) ( atan2( (double) segY, (double) segX ) * 1800 / M_PI ); + angle = wxRound( ( atan2( (double) segY, (double) segX ) * 1800.0 / M_PI ) ); cXrot = pointX; cYrot = pointY; @@ -402,1449 +416,1449 @@ void RotatePoint( double* pX, double* pY, int angle ) double fsinus[3600] = { 0.0000000000, 0.0017453284, 0.0034906514, 0.0052359638, - 0.0069812603, 0.0087265355, 0.0104717841, 0.0122170008, 0.0139621803, - 0.0157073173, 0.0174524064, 0.0191974424, 0.0209424199, 0.0226873336, - 0.0244321782, 0.0261769483, 0.0279216387, 0.0296662441, 0.0314107591, - 0.0331551784, 0.0348994967, 0.0366437087, 0.0383878091, 0.0401317925, - 0.0418756537, 0.0436193874, 0.0453629881, 0.0471064507, 0.0488497698, - 0.0505929401, 0.0523359562, 0.0540788130, 0.0558215050, 0.0575640270, - 0.0593063736, 0.0610485395, 0.0627905195, 0.0645323083, 0.0662739004, - 0.0680152907, 0.0697564737, 0.0714974443, 0.0732381971, 0.0749787268, - 0.0767190281, 0.0784590957, 0.0801989243, 0.0819385086, 0.0836778433, - 0.0854169231, 0.0871557427, 0.0888942969, 0.0906325802, 0.0923705874, - 0.0941083133, 0.0958457525, 0.0975828998, 0.0993197497, 0.1010562972, - 0.1027925368, 0.1045284633, 0.1062640713, 0.1079993557, 0.1097343111, - 0.1114689322, 0.1132032138, 0.1149371505, 0.1166707371, 0.1184039683, - 0.1201368388, 0.1218693434, 0.1236014767, 0.1253332336, 0.1270646086, - 0.1287955966, 0.1305261922, 0.1322563903, 0.1339861854, 0.1357155724, - 0.1374445460, 0.1391731010, 0.1409012319, 0.1426289337, 0.1443562010, - 0.1460830286, 0.1478094111, 0.1495353434, 0.1512608202, 0.1529858363, - 0.1547103863, 0.1564344650, 0.1581580673, 0.1598811877, 0.1616038211, - 0.1633259622, 0.1650476059, 0.1667687467, 0.1684893796, 0.1702094992, - 0.1719291003, 0.1736481777, 0.1753667261, 0.1770847403, 0.1788022151, - 0.1805191453, 0.1822355255, 0.1839513506, 0.1856666154, 0.1873813146, - 0.1890954430, 0.1908089954, 0.1925219665, 0.1942343512, 0.1959461442, - 0.1976573404, 0.1993679344, 0.2010779211, 0.2027872954, 0.2044960518, - 0.2062041854, 0.2079116908, 0.2096185629, 0.2113247965, 0.2130303863, - 0.2147353272, 0.2164396139, 0.2181432414, 0.2198462044, 0.2215484976, - 0.2232501160, 0.2249510543, 0.2266513074, 0.2283508701, 0.2300497372, - 0.2317479035, 0.2334453639, 0.2351421131, 0.2368381461, 0.2385334576, - 0.2402280425, 0.2419218956, 0.2436150118, 0.2453073859, 0.2469990127, - 0.2486898872, 0.2503800041, 0.2520693582, 0.2537579446, 0.2554457579, - 0.2571327932, 0.2588190451, 0.2605045086, 0.2621891786, 0.2638730500, - 0.2655561175, 0.2672383761, 0.2689198206, 0.2706004460, 0.2722802470, - 0.2739592187, 0.2756373558, 0.2773146533, 0.2789911060, 0.2806667089, - 0.2823414568, 0.2840153447, 0.2856883674, 0.2873605198, 0.2890317969, - 0.2907021936, 0.2923717047, 0.2940403252, 0.2957080500, 0.2973748741, - 0.2990407923, 0.3007057995, 0.3023698908, 0.3040330609, 0.3056953050, - 0.3073566178, 0.3090169944, 0.3106764296, 0.3123349185, 0.3139924560, - 0.3156490369, 0.3173046564, 0.3189593093, 0.3206129906, 0.3222656952, - 0.3239174182, 0.3255681545, 0.3272178990, 0.3288666467, 0.3305143927, - 0.3321611319, 0.3338068592, 0.3354515698, 0.3370952584, 0.3387379202, - 0.3403795502, 0.3420201433, 0.3436596946, 0.3452981990, 0.3469356516, - 0.3485720473, 0.3502073813, 0.3518416484, 0.3534748438, 0.3551069624, - 0.3567379993, 0.3583679495, 0.3599968081, 0.3616245701, 0.3632512305, - 0.3648767843, 0.3665012267, 0.3681245527, 0.3697467573, 0.3713678356, - 0.3729877826, 0.3746065934, 0.3762242631, 0.3778407868, 0.3794561595, - 0.3810703764, 0.3826834324, 0.3842953227, 0.3859060423, 0.3875155865, - 0.3891239501, 0.3907311285, 0.3923371166, 0.3939419096, 0.3955455026, - 0.3971478906, 0.3987490689, 0.4003490326, 0.4019477767, 0.4035452964, - 0.4051415868, 0.4067366431, 0.4083304604, 0.4099230338, 0.4115143586, - 0.4131044298, 0.4146932427, 0.4162807923, 0.4178670738, 0.4194520824, - 0.4210358134, 0.4226182617, 0.4241994227, 0.4257792916, 0.4273578634, - 0.4289351334, 0.4305110968, 0.4320857488, 0.4336590846, 0.4352310994, - 0.4368017884, 0.4383711468, 0.4399391699, 0.4415058528, 0.4430711908, - 0.4446351792, 0.4461978131, 0.4477590878, 0.4493189986, 0.4508775407, - 0.4524347093, 0.4539904997, 0.4555449072, 0.4570979271, 0.4586495545, - 0.4601997848, 0.4617486132, 0.4632960351, 0.4648420457, 0.4663866403, - 0.4679298143, 0.4694715628, 0.4710118812, 0.4725507649, 0.4740882090, - 0.4756242091, 0.4771587603, 0.4786918579, 0.4802234974, 0.4817536741, - 0.4832823833, 0.4848096202, 0.4863353804, 0.4878596591, 0.4893824517, - 0.4909037536, 0.4924235601, 0.4939418666, 0.4954586684, 0.4969739610, - 0.4984877398, 0.5000000000, 0.5015107372, 0.5030199466, 0.5045276238, - 0.5060337641, 0.5075383630, 0.5090414158, 0.5105429179, 0.5120428649, - 0.5135412521, 0.5150380749, 0.5165333289, 0.5180270094, 0.5195191119, - 0.5210096318, 0.5224985647, 0.5239859060, 0.5254716511, 0.5269557955, - 0.5284383347, 0.5299192642, 0.5313985795, 0.5328762761, 0.5343523494, - 0.5358267950, 0.5372996083, 0.5387707850, 0.5402403205, 0.5417082103, - 0.5431744500, 0.5446390350, 0.5461019610, 0.5475632235, 0.5490228180, - 0.5504807401, 0.5519369853, 0.5533915492, 0.5548444274, 0.5562956155, - 0.5577451090, 0.5591929035, 0.5606389946, 0.5620833779, 0.5635260489, - 0.5649670034, 0.5664062369, 0.5678437451, 0.5692795234, 0.5707135677, - 0.5721458734, 0.5735764364, 0.5750052520, 0.5764323162, 0.5778576244, - 0.5792811723, 0.5807029557, 0.5821229702, 0.5835412114, 0.5849576750, - 0.5863723567, 0.5877852523, 0.5891963574, 0.5906056676, 0.5920131788, - 0.5934188866, 0.5948227868, 0.5962248750, 0.5976251470, 0.5990235985, - 0.6004202253, 0.6018150232, 0.6032079877, 0.6045991149, 0.6059884003, - 0.6073758397, 0.6087614290, 0.6101451639, 0.6115270402, 0.6129070537, - 0.6142852001, 0.6156614753, 0.6170358751, 0.6184083954, 0.6197790318, - 0.6211477803, 0.6225146366, 0.6238795967, 0.6252426563, 0.6266038114, - 0.6279630576, 0.6293203910, 0.6306758074, 0.6320293027, 0.6333808726, - 0.6347305132, 0.6360782203, 0.6374239897, 0.6387678175, 0.6401096995, - 0.6414496316, 0.6427876097, 0.6441236298, 0.6454576877, 0.6467897795, - 0.6481199011, 0.6494480483, 0.6507742173, 0.6520984038, 0.6534206040, - 0.6547408137, 0.6560590290, 0.6573752458, 0.6586894601, 0.6600016680, - 0.6613118653, 0.6626200482, 0.6639262127, 0.6652303547, 0.6665324702, - 0.6678325555, 0.6691306064, 0.6704266190, 0.6717205893, 0.6730125135, - 0.6743023876, 0.6755902076, 0.6768759697, 0.6781596699, 0.6794413043, - 0.6807208690, 0.6819983601, 0.6832737737, 0.6845471059, 0.6858183529, - 0.6870875108, 0.6883545757, 0.6896195437, 0.6908824111, 0.6921431739, - 0.6934018283, 0.6946583705, 0.6959127966, 0.6971651029, 0.6984152854, - 0.6996633405, 0.7009092643, 0.7021530530, 0.7033947028, 0.7046342100, - 0.7058715707, 0.7071067812, 0.7083398377, 0.7095707365, 0.7107994739, - 0.7120260460, 0.7132504492, 0.7144726796, 0.7156927337, 0.7169106077, - 0.7181262978, 0.7193398003, 0.7205511117, 0.7217602281, 0.7229671459, - 0.7241718614, 0.7253743710, 0.7265746710, 0.7277727577, 0.7289686274, - 0.7301622766, 0.7313537016, 0.7325428988, 0.7337298645, 0.7349145951, - 0.7360970871, 0.7372773368, 0.7384553406, 0.7396310950, 0.7408045963, - 0.7419758410, 0.7431448255, 0.7443115462, 0.7454759997, 0.7466381823, - 0.7477980905, 0.7489557208, 0.7501110696, 0.7512641335, 0.7524149089, - 0.7535633923, 0.7547095802, 0.7558534692, 0.7569950557, 0.7581343362, - 0.7592713073, 0.7604059656, 0.7615383075, 0.7626683297, 0.7637960286, - 0.7649214009, 0.7660444431, 0.7671651518, 0.7682835236, 0.7693995550, - 0.7705132428, 0.7716245834, 0.7727335735, 0.7738402097, 0.7749444887, - 0.7760464071, 0.7771459615, 0.7782431485, 0.7793379649, 0.7804304073, - 0.7815204724, 0.7826081569, 0.7836934573, 0.7847763705, 0.7858568932, - 0.7869350220, 0.7880107536, 0.7890840848, 0.7901550124, 0.7912235330, - 0.7922896434, 0.7933533403, 0.7944146205, 0.7954734809, 0.7965299180, - 0.7975839288, 0.7986355100, 0.7996846585, 0.8007313709, 0.8017756442, - 0.8028174752, 0.8038568606, 0.8048937974, 0.8059282822, 0.8069603121, - 0.8079898839, 0.8090169944, 0.8100416404, 0.8110638190, 0.8120835269, - 0.8131007610, 0.8141155184, 0.8151277957, 0.8161375901, 0.8171448983, - 0.8181497174, 0.8191520443, 0.8201518759, 0.8211492091, 0.8221440410, - 0.8231363685, 0.8241261886, 0.8251134983, 0.8260982945, 0.8270805743, - 0.8280603346, 0.8290375726, 0.8300122851, 0.8309844693, 0.8319541221, - 0.8329212407, 0.8338858221, 0.8348478633, 0.8358073614, 0.8367643135, - 0.8377187166, 0.8386705679, 0.8396198645, 0.8405666035, 0.8415107819, - 0.8424523970, 0.8433914458, 0.8443279255, 0.8452618332, 0.8461931661, - 0.8471219214, 0.8480480962, 0.8489716876, 0.8498926930, 0.8508111094, - 0.8517269341, 0.8526401644, 0.8535507973, 0.8544588301, 0.8553642602, - 0.8562670846, 0.8571673007, 0.8580649057, 0.8589598969, 0.8598522716, - 0.8607420270, 0.8616291604, 0.8625136692, 0.8633955506, 0.8642748020, - 0.8651514206, 0.8660254038, 0.8668967489, 0.8677654534, 0.8686315144, - 0.8694949295, 0.8703556959, 0.8712138111, 0.8720692724, 0.8729220773, - 0.8737722230, 0.8746197071, 0.8754645270, 0.8763066800, 0.8771461637, - 0.8779829754, 0.8788171127, 0.8796485729, 0.8804773535, 0.8813034521, - 0.8821268660, 0.8829475929, 0.8837656301, 0.8845809752, 0.8853936258, - 0.8862035792, 0.8870108332, 0.8878153851, 0.8886172327, 0.8894163733, - 0.8902128046, 0.8910065242, 0.8917975296, 0.8925858185, 0.8933713883, - 0.8941542368, 0.8949343616, 0.8957117602, 0.8964864304, 0.8972583697, - 0.8980275758, 0.8987940463, 0.8995577790, 0.9003187714, 0.9010770213, - 0.9018325264, 0.9025852843, 0.9033352929, 0.9040825497, 0.9048270525, - 0.9055687990, 0.9063077870, 0.9070440143, 0.9077774785, 0.9085081775, - 0.9092361090, 0.9099612709, 0.9106836608, 0.9114032766, 0.9121201162, - 0.9128341772, 0.9135454576, 0.9142539552, 0.9149596678, 0.9156625933, - 0.9163627296, 0.9170600744, 0.9177546257, 0.9184463813, 0.9191353393, - 0.9198214973, 0.9205048535, 0.9211854056, 0.9218631516, 0.9225380895, - 0.9232102171, 0.9238795325, 0.9245460336, 0.9252097184, 0.9258705848, - 0.9265286309, 0.9271838546, 0.9278362539, 0.9284858269, 0.9291325715, - 0.9297764859, 0.9304175680, 0.9310558159, 0.9316912276, 0.9323238012, - 0.9329535348, 0.9335804265, 0.9342044743, 0.9348256764, 0.9354440308, - 0.9360595357, 0.9366721892, 0.9372819895, 0.9378889346, 0.9384930228, - 0.9390942521, 0.9396926208, 0.9402881270, 0.9408807690, 0.9414705448, - 0.9420574528, 0.9426414911, 0.9432226579, 0.9438009516, 0.9443763702, - 0.9449489122, 0.9455185756, 0.9460853588, 0.9466492601, 0.9472102777, - 0.9477684100, 0.9483236552, 0.9488760116, 0.9494254776, 0.9499720515, - 0.9505157316, 0.9510565163, 0.9515944039, 0.9521293927, 0.9526614813, - 0.9531906678, 0.9537169507, 0.9542403285, 0.9547607995, 0.9552783621, - 0.9557930148, 0.9563047560, 0.9568135841, 0.9573194975, 0.9578224948, - 0.9583225745, 0.9588197349, 0.9593139745, 0.9598052920, 0.9602936857, - 0.9607791542, 0.9612616959, 0.9617413095, 0.9622179935, 0.9626917464, - 0.9631625668, 0.9636304532, 0.9640954042, 0.9645574185, 0.9650164945, - 0.9654726309, 0.9659258263, 0.9663760793, 0.9668233886, 0.9672677528, - 0.9677091705, 0.9681476404, 0.9685831611, 0.9690157314, 0.9694453499, - 0.9698720153, 0.9702957263, 0.9707164816, 0.9711342799, 0.9715491200, - 0.9719610006, 0.9723699204, 0.9727758782, 0.9731788728, 0.9735789029, - 0.9739759673, 0.9743700648, 0.9747611942, 0.9751493543, 0.9755345439, - 0.9759167619, 0.9762960071, 0.9766722783, 0.9770455744, 0.9774158943, - 0.9777832368, 0.9781476007, 0.9785089851, 0.9788673888, 0.9792228106, - 0.9795752496, 0.9799247046, 0.9802711746, 0.9806146585, 0.9809551553, - 0.9812926640, 0.9816271834, 0.9819587127, 0.9822872507, 0.9826127965, - 0.9829353491, 0.9832549076, 0.9835714708, 0.9838850379, 0.9841956080, - 0.9845031800, 0.9848077530, 0.9851093262, 0.9854078985, 0.9857034691, - 0.9859960371, 0.9862856015, 0.9865721616, 0.9868557164, 0.9871362651, - 0.9874138068, 0.9876883406, 0.9879598658, 0.9882283814, 0.9884938868, - 0.9887563810, 0.9890158634, 0.9892723330, 0.9895257891, 0.9897762309, - 0.9900236577, 0.9902680687, 0.9905094632, 0.9907478405, 0.9909831997, - 0.9912155403, 0.9914448614, 0.9916711624, 0.9918944426, 0.9921147013, - 0.9923319379, 0.9925461516, 0.9927573419, 0.9929655081, 0.9931706495, - 0.9933727656, 0.9935718557, 0.9937679192, 0.9939609555, 0.9941509640, - 0.9943379441, 0.9945218954, 0.9947028171, 0.9948807088, 0.9950555700, - 0.9952274000, 0.9953961984, 0.9955619646, 0.9957246982, 0.9958843986, - 0.9960410654, 0.9961946981, 0.9963452962, 0.9964928592, 0.9966373868, - 0.9967788785, 0.9969173337, 0.9970527522, 0.9971851335, 0.9973144772, - 0.9974407829, 0.9975640503, 0.9976842788, 0.9978014683, 0.9979156183, - 0.9980267284, 0.9981347984, 0.9982398279, 0.9983418166, 0.9984407642, - 0.9985366703, 0.9986295348, 0.9987193572, 0.9988061373, 0.9988898750, - 0.9989705698, 0.9990482216, 0.9991228301, 0.9991943951, 0.9992629164, - 0.9993283938, 0.9993908270, 0.9994502159, 0.9995065604, 0.9995598601, - 0.9996101150, 0.9996573250, 0.9997014898, 0.9997426093, 0.9997806835, - 0.9998157121, 0.9998476952, 0.9998766325, 0.9999025240, 0.9999253697, - 0.9999451694, 0.9999619231, 0.9999756307, 0.9999862922, 0.9999939077, - 0.9999984769, 1.0000000000, 0.9999984769, 0.9999939077, 0.9999862922, - 0.9999756307, 0.9999619231, 0.9999451694, 0.9999253697, 0.9999025240, - 0.9998766325, 0.9998476952, 0.9998157121, 0.9997806835, 0.9997426093, - 0.9997014898, 0.9996573250, 0.9996101150, 0.9995598601, 0.9995065604, - 0.9994502159, 0.9993908270, 0.9993283938, 0.9992629164, 0.9991943951, - 0.9991228301, 0.9990482216, 0.9989705698, 0.9988898750, 0.9988061373, - 0.9987193572, 0.9986295348, 0.9985366703, 0.9984407642, 0.9983418166, - 0.9982398279, 0.9981347984, 0.9980267284, 0.9979156183, 0.9978014683, - 0.9976842788, 0.9975640503, 0.9974407829, 0.9973144772, 0.9971851335, - 0.9970527522, 0.9969173337, 0.9967788785, 0.9966373868, 0.9964928592, - 0.9963452962, 0.9961946981, 0.9960410654, 0.9958843986, 0.9957246982, - 0.9955619646, 0.9953961984, 0.9952274000, 0.9950555700, 0.9948807088, - 0.9947028171, 0.9945218954, 0.9943379441, 0.9941509640, 0.9939609555, - 0.9937679192, 0.9935718557, 0.9933727656, 0.9931706495, 0.9929655081, - 0.9927573419, 0.9925461516, 0.9923319379, 0.9921147013, 0.9918944426, - 0.9916711624, 0.9914448614, 0.9912155403, 0.9909831997, 0.9907478405, - 0.9905094632, 0.9902680687, 0.9900236577, 0.9897762309, 0.9895257891, - 0.9892723330, 0.9890158634, 0.9887563810, 0.9884938868, 0.9882283814, - 0.9879598658, 0.9876883406, 0.9874138068, 0.9871362651, 0.9868557164, - 0.9865721616, 0.9862856015, 0.9859960371, 0.9857034691, 0.9854078985, - 0.9851093262, 0.9848077530, 0.9845031800, 0.9841956080, 0.9838850379, - 0.9835714708, 0.9832549076, 0.9829353491, 0.9826127965, 0.9822872507, - 0.9819587127, 0.9816271834, 0.9812926640, 0.9809551553, 0.9806146585, - 0.9802711746, 0.9799247046, 0.9795752496, 0.9792228106, 0.9788673888, - 0.9785089851, 0.9781476007, 0.9777832368, 0.9774158943, 0.9770455744, - 0.9766722783, 0.9762960071, 0.9759167619, 0.9755345439, 0.9751493543, - 0.9747611942, 0.9743700648, 0.9739759673, 0.9735789029, 0.9731788728, - 0.9727758782, 0.9723699204, 0.9719610006, 0.9715491200, 0.9711342799, - 0.9707164816, 0.9702957263, 0.9698720153, 0.9694453499, 0.9690157314, - 0.9685831611, 0.9681476404, 0.9677091705, 0.9672677528, 0.9668233886, - 0.9663760793, 0.9659258263, 0.9654726309, 0.9650164945, 0.9645574185, - 0.9640954042, 0.9636304532, 0.9631625668, 0.9626917464, 0.9622179935, - 0.9617413095, 0.9612616959, 0.9607791542, 0.9602936857, 0.9598052920, - 0.9593139745, 0.9588197349, 0.9583225745, 0.9578224948, 0.9573194975, - 0.9568135841, 0.9563047560, 0.9557930148, 0.9552783621, 0.9547607995, - 0.9542403285, 0.9537169507, 0.9531906678, 0.9526614813, 0.9521293927, - 0.9515944039, 0.9510565163, 0.9505157316, 0.9499720515, 0.9494254776, - 0.9488760116, 0.9483236552, 0.9477684100, 0.9472102777, 0.9466492601, - 0.9460853588, 0.9455185756, 0.9449489122, 0.9443763702, 0.9438009516, - 0.9432226579, 0.9426414911, 0.9420574528, 0.9414705448, 0.9408807690, - 0.9402881270, 0.9396926208, 0.9390942521, 0.9384930228, 0.9378889346, - 0.9372819895, 0.9366721892, 0.9360595357, 0.9354440308, 0.9348256764, - 0.9342044743, 0.9335804265, 0.9329535348, 0.9323238012, 0.9316912276, - 0.9310558159, 0.9304175680, 0.9297764859, 0.9291325715, 0.9284858269, - 0.9278362539, 0.9271838546, 0.9265286309, 0.9258705848, 0.9252097184, - 0.9245460336, 0.9238795325, 0.9232102171, 0.9225380895, 0.9218631516, - 0.9211854056, 0.9205048535, 0.9198214973, 0.9191353393, 0.9184463813, - 0.9177546257, 0.9170600744, 0.9163627296, 0.9156625933, 0.9149596678, - 0.9142539552, 0.9135454576, 0.9128341772, 0.9121201162, 0.9114032766, - 0.9106836608, 0.9099612709, 0.9092361090, 0.9085081775, 0.9077774785, - 0.9070440143, 0.9063077870, 0.9055687990, 0.9048270525, 0.9040825497, - 0.9033352929, 0.9025852843, 0.9018325264, 0.9010770213, 0.9003187714, - 0.8995577790, 0.8987940463, 0.8980275758, 0.8972583697, 0.8964864304, - 0.8957117602, 0.8949343616, 0.8941542368, 0.8933713883, 0.8925858185, - 0.8917975296, 0.8910065242, 0.8902128046, 0.8894163733, 0.8886172327, - 0.8878153851, 0.8870108332, 0.8862035792, 0.8853936258, 0.8845809752, - 0.8837656301, 0.8829475929, 0.8821268660, 0.8813034521, 0.8804773535, - 0.8796485729, 0.8788171127, 0.8779829754, 0.8771461637, 0.8763066800, - 0.8754645270, 0.8746197071, 0.8737722230, 0.8729220773, 0.8720692724, - 0.8712138111, 0.8703556959, 0.8694949295, 0.8686315144, 0.8677654534, - 0.8668967489, 0.8660254038, 0.8651514206, 0.8642748020, 0.8633955506, - 0.8625136692, 0.8616291604, 0.8607420270, 0.8598522716, 0.8589598969, - 0.8580649057, 0.8571673007, 0.8562670846, 0.8553642602, 0.8544588301, - 0.8535507973, 0.8526401644, 0.8517269341, 0.8508111094, 0.8498926930, - 0.8489716876, 0.8480480962, 0.8471219214, 0.8461931661, 0.8452618332, - 0.8443279255, 0.8433914458, 0.8424523970, 0.8415107819, 0.8405666035, - 0.8396198645, 0.8386705679, 0.8377187166, 0.8367643135, 0.8358073614, - 0.8348478633, 0.8338858221, 0.8329212407, 0.8319541221, 0.8309844693, - 0.8300122851, 0.8290375726, 0.8280603346, 0.8270805743, 0.8260982945, - 0.8251134983, 0.8241261886, 0.8231363685, 0.8221440410, 0.8211492091, - 0.8201518759, 0.8191520443, 0.8181497174, 0.8171448983, 0.8161375901, - 0.8151277957, 0.8141155184, 0.8131007610, 0.8120835269, 0.8110638190, - 0.8100416404, 0.8090169944, 0.8079898839, 0.8069603121, 0.8059282822, - 0.8048937974, 0.8038568606, 0.8028174752, 0.8017756442, 0.8007313709, - 0.7996846585, 0.7986355100, 0.7975839288, 0.7965299180, 0.7954734809, - 0.7944146205, 0.7933533403, 0.7922896434, 0.7912235330, 0.7901550124, - 0.7890840848, 0.7880107536, 0.7869350220, 0.7858568932, 0.7847763705, - 0.7836934573, 0.7826081569, 0.7815204724, 0.7804304073, 0.7793379649, - 0.7782431485, 0.7771459615, 0.7760464071, 0.7749444887, 0.7738402097, - 0.7727335735, 0.7716245834, 0.7705132428, 0.7693995550, 0.7682835236, - 0.7671651518, 0.7660444431, 0.7649214009, 0.7637960286, 0.7626683297, - 0.7615383075, 0.7604059656, 0.7592713073, 0.7581343362, 0.7569950557, - 0.7558534692, 0.7547095802, 0.7535633923, 0.7524149089, 0.7512641335, - 0.7501110696, 0.7489557208, 0.7477980905, 0.7466381823, 0.7454759997, - 0.7443115462, 0.7431448255, 0.7419758410, 0.7408045963, 0.7396310950, - 0.7384553406, 0.7372773368, 0.7360970871, 0.7349145951, 0.7337298645, - 0.7325428988, 0.7313537016, 0.7301622766, 0.7289686274, 0.7277727577, - 0.7265746710, 0.7253743710, 0.7241718614, 0.7229671459, 0.7217602281, - 0.7205511117, 0.7193398003, 0.7181262978, 0.7169106077, 0.7156927337, - 0.7144726796, 0.7132504492, 0.7120260460, 0.7107994739, 0.7095707365, - 0.7083398377, 0.7071067812, 0.7058715707, 0.7046342100, 0.7033947028, - 0.7021530530, 0.7009092643, 0.6996633405, 0.6984152854, 0.6971651029, - 0.6959127966, 0.6946583705, 0.6934018283, 0.6921431739, 0.6908824111, - 0.6896195437, 0.6883545757, 0.6870875108, 0.6858183529, 0.6845471059, - 0.6832737737, 0.6819983601, 0.6807208690, 0.6794413043, 0.6781596699, - 0.6768759697, 0.6755902076, 0.6743023876, 0.6730125135, 0.6717205893, - 0.6704266190, 0.6691306064, 0.6678325555, 0.6665324702, 0.6652303547, - 0.6639262127, 0.6626200482, 0.6613118653, 0.6600016680, 0.6586894601, - 0.6573752458, 0.6560590290, 0.6547408137, 0.6534206040, 0.6520984038, - 0.6507742173, 0.6494480483, 0.6481199011, 0.6467897795, 0.6454576877, - 0.6441236298, 0.6427876097, 0.6414496316, 0.6401096995, 0.6387678175, - 0.6374239897, 0.6360782203, 0.6347305132, 0.6333808726, 0.6320293027, - 0.6306758074, 0.6293203910, 0.6279630576, 0.6266038114, 0.6252426563, - 0.6238795967, 0.6225146366, 0.6211477803, 0.6197790318, 0.6184083954, - 0.6170358751, 0.6156614753, 0.6142852001, 0.6129070537, 0.6115270402, - 0.6101451639, 0.6087614290, 0.6073758397, 0.6059884003, 0.6045991149, - 0.6032079877, 0.6018150232, 0.6004202253, 0.5990235985, 0.5976251470, - 0.5962248750, 0.5948227868, 0.5934188866, 0.5920131788, 0.5906056676, - 0.5891963574, 0.5877852523, 0.5863723567, 0.5849576750, 0.5835412114, - 0.5821229702, 0.5807029557, 0.5792811723, 0.5778576244, 0.5764323162, - 0.5750052520, 0.5735764364, 0.5721458734, 0.5707135677, 0.5692795234, - 0.5678437451, 0.5664062369, 0.5649670034, 0.5635260489, 0.5620833779, - 0.5606389946, 0.5591929035, 0.5577451090, 0.5562956155, 0.5548444274, - 0.5533915492, 0.5519369853, 0.5504807401, 0.5490228180, 0.5475632235, - 0.5461019610, 0.5446390350, 0.5431744500, 0.5417082103, 0.5402403205, - 0.5387707850, 0.5372996083, 0.5358267950, 0.5343523494, 0.5328762761, - 0.5313985795, 0.5299192642, 0.5284383347, 0.5269557955, 0.5254716511, - 0.5239859060, 0.5224985647, 0.5210096318, 0.5195191119, 0.5180270094, - 0.5165333289, 0.5150380749, 0.5135412521, 0.5120428649, 0.5105429179, - 0.5090414158, 0.5075383630, 0.5060337641, 0.5045276238, 0.5030199466, - 0.5015107372, 0.5000000000, 0.4984877398, 0.4969739610, 0.4954586684, - 0.4939418666, 0.4924235601, 0.4909037536, 0.4893824517, 0.4878596591, - 0.4863353804, 0.4848096202, 0.4832823833, 0.4817536741, 0.4802234974, - 0.4786918579, 0.4771587603, 0.4756242091, 0.4740882090, 0.4725507649, - 0.4710118812, 0.4694715628, 0.4679298143, 0.4663866403, 0.4648420457, - 0.4632960351, 0.4617486132, 0.4601997848, 0.4586495545, 0.4570979271, - 0.4555449072, 0.4539904997, 0.4524347093, 0.4508775407, 0.4493189986, - 0.4477590878, 0.4461978131, 0.4446351792, 0.4430711908, 0.4415058528, - 0.4399391699, 0.4383711468, 0.4368017884, 0.4352310994, 0.4336590846, - 0.4320857488, 0.4305110968, 0.4289351334, 0.4273578634, 0.4257792916, - 0.4241994227, 0.4226182617, 0.4210358134, 0.4194520824, 0.4178670738, - 0.4162807923, 0.4146932427, 0.4131044298, 0.4115143586, 0.4099230338, - 0.4083304604, 0.4067366431, 0.4051415868, 0.4035452964, 0.4019477767, - 0.4003490326, 0.3987490689, 0.3971478906, 0.3955455026, 0.3939419096, - 0.3923371166, 0.3907311285, 0.3891239501, 0.3875155865, 0.3859060423, - 0.3842953227, 0.3826834324, 0.3810703764, 0.3794561595, 0.3778407868, - 0.3762242631, 0.3746065934, 0.3729877826, 0.3713678356, 0.3697467573, - 0.3681245527, 0.3665012267, 0.3648767843, 0.3632512305, 0.3616245701, - 0.3599968081, 0.3583679495, 0.3567379993, 0.3551069624, 0.3534748438, - 0.3518416484, 0.3502073813, 0.3485720473, 0.3469356516, 0.3452981990, - 0.3436596946, 0.3420201433, 0.3403795502, 0.3387379202, 0.3370952584, - 0.3354515698, 0.3338068592, 0.3321611319, 0.3305143927, 0.3288666467, - 0.3272178990, 0.3255681545, 0.3239174182, 0.3222656952, 0.3206129906, - 0.3189593093, 0.3173046564, 0.3156490369, 0.3139924560, 0.3123349185, - 0.3106764296, 0.3090169944, 0.3073566178, 0.3056953050, 0.3040330609, - 0.3023698908, 0.3007057995, 0.2990407923, 0.2973748741, 0.2957080500, - 0.2940403252, 0.2923717047, 0.2907021936, 0.2890317969, 0.2873605198, - 0.2856883674, 0.2840153447, 0.2823414568, 0.2806667089, 0.2789911060, - 0.2773146533, 0.2756373558, 0.2739592187, 0.2722802470, 0.2706004460, - 0.2689198206, 0.2672383761, 0.2655561175, 0.2638730500, 0.2621891786, - 0.2605045086, 0.2588190451, 0.2571327932, 0.2554457579, 0.2537579446, - 0.2520693582, 0.2503800041, 0.2486898872, 0.2469990127, 0.2453073859, - 0.2436150118, 0.2419218956, 0.2402280425, 0.2385334576, 0.2368381461, - 0.2351421131, 0.2334453639, 0.2317479035, 0.2300497372, 0.2283508701, - 0.2266513074, 0.2249510543, 0.2232501160, 0.2215484976, 0.2198462044, - 0.2181432414, 0.2164396139, 0.2147353272, 0.2130303863, 0.2113247965, - 0.2096185629, 0.2079116908, 0.2062041854, 0.2044960518, 0.2027872954, - 0.2010779211, 0.1993679344, 0.1976573404, 0.1959461442, 0.1942343512, - 0.1925219665, 0.1908089954, 0.1890954430, 0.1873813146, 0.1856666154, - 0.1839513506, 0.1822355255, 0.1805191453, 0.1788022151, 0.1770847403, - 0.1753667261, 0.1736481777, 0.1719291003, 0.1702094992, 0.1684893796, - 0.1667687467, 0.1650476059, 0.1633259622, 0.1616038211, 0.1598811877, - 0.1581580673, 0.1564344650, 0.1547103863, 0.1529858363, 0.1512608202, - 0.1495353434, 0.1478094111, 0.1460830286, 0.1443562010, 0.1426289337, - 0.1409012319, 0.1391731010, 0.1374445460, 0.1357155724, 0.1339861854, - 0.1322563903, 0.1305261922, 0.1287955966, 0.1270646086, 0.1253332336, - 0.1236014767, 0.1218693434, 0.1201368388, 0.1184039683, 0.1166707371, - 0.1149371505, 0.1132032138, 0.1114689322, 0.1097343111, 0.1079993557, - 0.1062640713, 0.1045284633, 0.1027925368, 0.1010562972, 0.0993197497, - 0.0975828998, 0.0958457525, 0.0941083133, 0.0923705874, 0.0906325802, - 0.0888942969, 0.0871557427, 0.0854169231, 0.0836778433, 0.0819385086, - 0.0801989243, 0.0784590957, 0.0767190281, 0.0749787268, 0.0732381971, - 0.0714974443, 0.0697564737, 0.0680152907, 0.0662739004, 0.0645323083, - 0.0627905195, 0.0610485395, 0.0593063736, 0.0575640270, 0.0558215050, - 0.0540788130, 0.0523359562, 0.0505929401, 0.0488497698, 0.0471064507, - 0.0453629881, 0.0436193874, 0.0418756537, 0.0401317925, 0.0383878091, - 0.0366437087, 0.0348994967, 0.0331551784, 0.0314107591, 0.0296662441, - 0.0279216387, 0.0261769483, 0.0244321782, 0.0226873336, 0.0209424199, - 0.0191974424, 0.0174524064, 0.0157073173, 0.0139621803, 0.0122170008, - 0.0104717841, 0.0087265355, 0.0069812603, 0.0052359638, 0.0034906514, - 0.0017453284, 0.0000000000, -0.0017453284, -0.0034906514, -0.0052359638, - -0.0069812603, -0.0087265355, -0.0104717841, -0.0122170008, -0.0139621803, - -0.0157073173, -0.0174524064, -0.0191974424, -0.0209424199, -0.0226873336, - -0.0244321782, -0.0261769483, -0.0279216387, -0.0296662441, -0.0314107591, - -0.0331551784, -0.0348994967, -0.0366437087, -0.0383878091, -0.0401317925, - -0.0418756537, -0.0436193874, -0.0453629881, -0.0471064507, -0.0488497698, - -0.0505929401, -0.0523359562, -0.0540788130, -0.0558215050, -0.0575640270, - -0.0593063736, -0.0610485395, -0.0627905195, -0.0645323083, -0.0662739004, - -0.0680152907, -0.0697564737, -0.0714974443, -0.0732381971, -0.0749787268, - -0.0767190281, -0.0784590957, -0.0801989243, -0.0819385086, -0.0836778433, - -0.0854169231, -0.0871557427, -0.0888942969, -0.0906325802, -0.0923705874, - -0.0941083133, -0.0958457525, -0.0975828998, -0.0993197497, -0.1010562972, - -0.1027925368, -0.1045284633, -0.1062640713, -0.1079993557, -0.1097343111, - -0.1114689322, -0.1132032138, -0.1149371505, -0.1166707371, -0.1184039683, - -0.1201368388, -0.1218693434, -0.1236014767, -0.1253332336, -0.1270646086, - -0.1287955966, -0.1305261922, -0.1322563903, -0.1339861854, -0.1357155724, - -0.1374445460, -0.1391731010, -0.1409012319, -0.1426289337, -0.1443562010, - -0.1460830286, -0.1478094111, -0.1495353434, -0.1512608202, -0.1529858363, - -0.1547103863, -0.1564344650, -0.1581580673, -0.1598811877, -0.1616038211, - -0.1633259622, -0.1650476059, -0.1667687467, -0.1684893796, -0.1702094992, - -0.1719291003, -0.1736481777, -0.1753667261, -0.1770847403, -0.1788022151, - -0.1805191453, -0.1822355255, -0.1839513506, -0.1856666154, -0.1873813146, - -0.1890954430, -0.1908089954, -0.1925219665, -0.1942343512, -0.1959461442, - -0.1976573404, -0.1993679344, -0.2010779211, -0.2027872954, -0.2044960518, - -0.2062041854, -0.2079116908, -0.2096185629, -0.2113247965, -0.2130303863, - -0.2147353272, -0.2164396139, -0.2181432414, -0.2198462044, -0.2215484976, - -0.2232501160, -0.2249510543, -0.2266513074, -0.2283508701, -0.2300497372, - -0.2317479035, -0.2334453639, -0.2351421131, -0.2368381461, -0.2385334576, - -0.2402280425, -0.2419218956, -0.2436150118, -0.2453073859, -0.2469990127, - -0.2486898872, -0.2503800041, -0.2520693582, -0.2537579446, -0.2554457579, - -0.2571327932, -0.2588190451, -0.2605045086, -0.2621891786, -0.2638730500, - -0.2655561175, -0.2672383761, -0.2689198206, -0.2706004460, -0.2722802470, - -0.2739592187, -0.2756373558, -0.2773146533, -0.2789911060, -0.2806667089, - -0.2823414568, -0.2840153447, -0.2856883674, -0.2873605198, -0.2890317969, - -0.2907021936, -0.2923717047, -0.2940403252, -0.2957080500, -0.2973748741, - -0.2990407923, -0.3007057995, -0.3023698908, -0.3040330609, -0.3056953050, - -0.3073566178, -0.3090169944, -0.3106764296, -0.3123349185, -0.3139924560, - -0.3156490369, -0.3173046564, -0.3189593093, -0.3206129906, -0.3222656952, - -0.3239174182, -0.3255681545, -0.3272178990, -0.3288666467, -0.3305143927, - -0.3321611319, -0.3338068592, -0.3354515698, -0.3370952584, -0.3387379202, - -0.3403795502, -0.3420201433, -0.3436596946, -0.3452981990, -0.3469356516, - -0.3485720473, -0.3502073813, -0.3518416484, -0.3534748438, -0.3551069624, - -0.3567379993, -0.3583679495, -0.3599968081, -0.3616245701, -0.3632512305, - -0.3648767843, -0.3665012267, -0.3681245527, -0.3697467573, -0.3713678356, - -0.3729877826, -0.3746065934, -0.3762242631, -0.3778407868, -0.3794561595, - -0.3810703764, -0.3826834324, -0.3842953227, -0.3859060423, -0.3875155865, - -0.3891239501, -0.3907311285, -0.3923371166, -0.3939419096, -0.3955455026, - -0.3971478906, -0.3987490689, -0.4003490326, -0.4019477767, -0.4035452964, - -0.4051415868, -0.4067366431, -0.4083304604, -0.4099230338, -0.4115143586, - -0.4131044298, -0.4146932427, -0.4162807923, -0.4178670738, -0.4194520824, - -0.4210358134, -0.4226182617, -0.4241994227, -0.4257792916, -0.4273578634, - -0.4289351334, -0.4305110968, -0.4320857488, -0.4336590846, -0.4352310994, - -0.4368017884, -0.4383711468, -0.4399391699, -0.4415058528, -0.4430711908, - -0.4446351792, -0.4461978131, -0.4477590878, -0.4493189986, -0.4508775407, - -0.4524347093, -0.4539904997, -0.4555449072, -0.4570979271, -0.4586495545, - -0.4601997848, -0.4617486132, -0.4632960351, -0.4648420457, -0.4663866403, - -0.4679298143, -0.4694715628, -0.4710118812, -0.4725507649, -0.4740882090, - -0.4756242091, -0.4771587603, -0.4786918579, -0.4802234974, -0.4817536741, - -0.4832823833, -0.4848096202, -0.4863353804, -0.4878596591, -0.4893824517, - -0.4909037536, -0.4924235601, -0.4939418666, -0.4954586684, -0.4969739610, - -0.4984877398, -0.5000000000, -0.5015107372, -0.5030199466, -0.5045276238, - -0.5060337641, -0.5075383630, -0.5090414158, -0.5105429179, -0.5120428649, - -0.5135412521, -0.5150380749, -0.5165333289, -0.5180270094, -0.5195191119, - -0.5210096318, -0.5224985647, -0.5239859060, -0.5254716511, -0.5269557955, - -0.5284383347, -0.5299192642, -0.5313985795, -0.5328762761, -0.5343523494, - -0.5358267950, -0.5372996083, -0.5387707850, -0.5402403205, -0.5417082103, - -0.5431744500, -0.5446390350, -0.5461019610, -0.5475632235, -0.5490228180, - -0.5504807401, -0.5519369853, -0.5533915492, -0.5548444274, -0.5562956155, - -0.5577451090, -0.5591929035, -0.5606389946, -0.5620833779, -0.5635260489, - -0.5649670034, -0.5664062369, -0.5678437451, -0.5692795234, -0.5707135677, - -0.5721458734, -0.5735764364, -0.5750052520, -0.5764323162, -0.5778576244, - -0.5792811723, -0.5807029557, -0.5821229702, -0.5835412114, -0.5849576750, - -0.5863723567, -0.5877852523, -0.5891963574, -0.5906056676, -0.5920131788, - -0.5934188866, -0.5948227868, -0.5962248750, -0.5976251470, -0.5990235985, - -0.6004202253, -0.6018150232, -0.6032079877, -0.6045991149, -0.6059884003, - -0.6073758397, -0.6087614290, -0.6101451639, -0.6115270402, -0.6129070537, - -0.6142852001, -0.6156614753, -0.6170358751, -0.6184083954, -0.6197790318, - -0.6211477803, -0.6225146366, -0.6238795967, -0.6252426563, -0.6266038114, - -0.6279630576, -0.6293203910, -0.6306758074, -0.6320293027, -0.6333808726, - -0.6347305132, -0.6360782203, -0.6374239897, -0.6387678175, -0.6401096995, - -0.6414496316, -0.6427876097, -0.6441236298, -0.6454576877, -0.6467897795, - -0.6481199011, -0.6494480483, -0.6507742173, -0.6520984038, -0.6534206040, - -0.6547408137, -0.6560590290, -0.6573752458, -0.6586894601, -0.6600016680, - -0.6613118653, -0.6626200482, -0.6639262127, -0.6652303547, -0.6665324702, - -0.6678325555, -0.6691306064, -0.6704266190, -0.6717205893, -0.6730125135, - -0.6743023876, -0.6755902076, -0.6768759697, -0.6781596699, -0.6794413043, - -0.6807208690, -0.6819983601, -0.6832737737, -0.6845471059, -0.6858183529, - -0.6870875108, -0.6883545757, -0.6896195437, -0.6908824111, -0.6921431739, - -0.6934018283, -0.6946583705, -0.6959127966, -0.6971651029, -0.6984152854, - -0.6996633405, -0.7009092643, -0.7021530530, -0.7033947028, -0.7046342100, - -0.7058715707, -0.7071067812, -0.7083398377, -0.7095707365, -0.7107994739, - -0.7120260460, -0.7132504492, -0.7144726796, -0.7156927337, -0.7169106077, - -0.7181262978, -0.7193398003, -0.7205511117, -0.7217602281, -0.7229671459, - -0.7241718614, -0.7253743710, -0.7265746710, -0.7277727577, -0.7289686274, - -0.7301622766, -0.7313537016, -0.7325428988, -0.7337298645, -0.7349145951, - -0.7360970871, -0.7372773368, -0.7384553406, -0.7396310950, -0.7408045963, - -0.7419758410, -0.7431448255, -0.7443115462, -0.7454759997, -0.7466381823, - -0.7477980905, -0.7489557208, -0.7501110696, -0.7512641335, -0.7524149089, - -0.7535633923, -0.7547095802, -0.7558534692, -0.7569950557, -0.7581343362, - -0.7592713073, -0.7604059656, -0.7615383075, -0.7626683297, -0.7637960286, - -0.7649214009, -0.7660444431, -0.7671651518, -0.7682835236, -0.7693995550, - -0.7705132428, -0.7716245834, -0.7727335735, -0.7738402097, -0.7749444887, - -0.7760464071, -0.7771459615, -0.7782431485, -0.7793379649, -0.7804304073, - -0.7815204724, -0.7826081569, -0.7836934573, -0.7847763705, -0.7858568932, - -0.7869350220, -0.7880107536, -0.7890840848, -0.7901550124, -0.7912235330, - -0.7922896434, -0.7933533403, -0.7944146205, -0.7954734809, -0.7965299180, - -0.7975839288, -0.7986355100, -0.7996846585, -0.8007313709, -0.8017756442, - -0.8028174752, -0.8038568606, -0.8048937974, -0.8059282822, -0.8069603121, - -0.8079898839, -0.8090169944, -0.8100416404, -0.8110638190, -0.8120835269, - -0.8131007610, -0.8141155184, -0.8151277957, -0.8161375901, -0.8171448983, - -0.8181497174, -0.8191520443, -0.8201518759, -0.8211492091, -0.8221440410, - -0.8231363685, -0.8241261886, -0.8251134983, -0.8260982945, -0.8270805743, - -0.8280603346, -0.8290375726, -0.8300122851, -0.8309844693, -0.8319541221, - -0.8329212407, -0.8338858221, -0.8348478633, -0.8358073614, -0.8367643135, - -0.8377187166, -0.8386705679, -0.8396198645, -0.8405666035, -0.8415107819, - -0.8424523970, -0.8433914458, -0.8443279255, -0.8452618332, -0.8461931661, - -0.8471219214, -0.8480480962, -0.8489716876, -0.8498926930, -0.8508111094, - -0.8517269341, -0.8526401644, -0.8535507973, -0.8544588301, -0.8553642602, - -0.8562670846, -0.8571673007, -0.8580649057, -0.8589598969, -0.8598522716, - -0.8607420270, -0.8616291604, -0.8625136692, -0.8633955506, -0.8642748020, - -0.8651514206, -0.8660254038, -0.8668967489, -0.8677654534, -0.8686315144, - -0.8694949295, -0.8703556959, -0.8712138111, -0.8720692724, -0.8729220773, - -0.8737722230, -0.8746197071, -0.8754645270, -0.8763066800, -0.8771461637, - -0.8779829754, -0.8788171127, -0.8796485729, -0.8804773535, -0.8813034521, - -0.8821268660, -0.8829475929, -0.8837656301, -0.8845809752, -0.8853936258, - -0.8862035792, -0.8870108332, -0.8878153851, -0.8886172327, -0.8894163733, - -0.8902128046, -0.8910065242, -0.8917975296, -0.8925858185, -0.8933713883, - -0.8941542368, -0.8949343616, -0.8957117602, -0.8964864304, -0.8972583697, - -0.8980275758, -0.8987940463, -0.8995577790, -0.9003187714, -0.9010770213, - -0.9018325264, -0.9025852843, -0.9033352929, -0.9040825497, -0.9048270525, - -0.9055687990, -0.9063077870, -0.9070440143, -0.9077774785, -0.9085081775, - -0.9092361090, -0.9099612709, -0.9106836608, -0.9114032766, -0.9121201162, - -0.9128341772, -0.9135454576, -0.9142539552, -0.9149596678, -0.9156625933, - -0.9163627296, -0.9170600744, -0.9177546257, -0.9184463813, -0.9191353393, - -0.9198214973, -0.9205048535, -0.9211854056, -0.9218631516, -0.9225380895, - -0.9232102171, -0.9238795325, -0.9245460336, -0.9252097184, -0.9258705848, - -0.9265286309, -0.9271838546, -0.9278362539, -0.9284858269, -0.9291325715, - -0.9297764859, -0.9304175680, -0.9310558159, -0.9316912276, -0.9323238012, - -0.9329535348, -0.9335804265, -0.9342044743, -0.9348256764, -0.9354440308, - -0.9360595357, -0.9366721892, -0.9372819895, -0.9378889346, -0.9384930228, - -0.9390942521, -0.9396926208, -0.9402881270, -0.9408807690, -0.9414705448, - -0.9420574528, -0.9426414911, -0.9432226579, -0.9438009516, -0.9443763702, - -0.9449489122, -0.9455185756, -0.9460853588, -0.9466492601, -0.9472102777, - -0.9477684100, -0.9483236552, -0.9488760116, -0.9494254776, -0.9499720515, - -0.9505157316, -0.9510565163, -0.9515944039, -0.9521293927, -0.9526614813, - -0.9531906678, -0.9537169507, -0.9542403285, -0.9547607995, -0.9552783621, - -0.9557930148, -0.9563047560, -0.9568135841, -0.9573194975, -0.9578224948, - -0.9583225745, -0.9588197349, -0.9593139745, -0.9598052920, -0.9602936857, - -0.9607791542, -0.9612616959, -0.9617413095, -0.9622179935, -0.9626917464, - -0.9631625668, -0.9636304532, -0.9640954042, -0.9645574185, -0.9650164945, - -0.9654726309, -0.9659258263, -0.9663760793, -0.9668233886, -0.9672677528, - -0.9677091705, -0.9681476404, -0.9685831611, -0.9690157314, -0.9694453499, - -0.9698720153, -0.9702957263, -0.9707164816, -0.9711342799, -0.9715491200, - -0.9719610006, -0.9723699204, -0.9727758782, -0.9731788728, -0.9735789029, - -0.9739759673, -0.9743700648, -0.9747611942, -0.9751493543, -0.9755345439, - -0.9759167619, -0.9762960071, -0.9766722783, -0.9770455744, -0.9774158943, - -0.9777832368, -0.9781476007, -0.9785089851, -0.9788673888, -0.9792228106, - -0.9795752496, -0.9799247046, -0.9802711746, -0.9806146585, -0.9809551553, - -0.9812926640, -0.9816271834, -0.9819587127, -0.9822872507, -0.9826127965, - -0.9829353491, -0.9832549076, -0.9835714708, -0.9838850379, -0.9841956080, - -0.9845031800, -0.9848077530, -0.9851093262, -0.9854078985, -0.9857034691, - -0.9859960371, -0.9862856015, -0.9865721616, -0.9868557164, -0.9871362651, - -0.9874138068, -0.9876883406, -0.9879598658, -0.9882283814, -0.9884938868, - -0.9887563810, -0.9890158634, -0.9892723330, -0.9895257891, -0.9897762309, - -0.9900236577, -0.9902680687, -0.9905094632, -0.9907478405, -0.9909831997, - -0.9912155403, -0.9914448614, -0.9916711624, -0.9918944426, -0.9921147013, - -0.9923319379, -0.9925461516, -0.9927573419, -0.9929655081, -0.9931706495, - -0.9933727656, -0.9935718557, -0.9937679192, -0.9939609555, -0.9941509640, - -0.9943379441, -0.9945218954, -0.9947028171, -0.9948807088, -0.9950555700, - -0.9952274000, -0.9953961984, -0.9955619646, -0.9957246982, -0.9958843986, - -0.9960410654, -0.9961946981, -0.9963452962, -0.9964928592, -0.9966373868, - -0.9967788785, -0.9969173337, -0.9970527522, -0.9971851335, -0.9973144772, - -0.9974407829, -0.9975640503, -0.9976842788, -0.9978014683, -0.9979156183, - -0.9980267284, -0.9981347984, -0.9982398279, -0.9983418166, -0.9984407642, - -0.9985366703, -0.9986295348, -0.9987193572, -0.9988061373, -0.9988898750, - -0.9989705698, -0.9990482216, -0.9991228301, -0.9991943951, -0.9992629164, - -0.9993283938, -0.9993908270, -0.9994502159, -0.9995065604, -0.9995598601, - -0.9996101150, -0.9996573250, -0.9997014898, -0.9997426093, -0.9997806835, - -0.9998157121, -0.9998476952, -0.9998766325, -0.9999025240, -0.9999253697, - -0.9999451694, -0.9999619231, -0.9999756307, -0.9999862922, -0.9999939077, - -0.9999984769, -1.0000000000, -0.9999984769, -0.9999939077, -0.9999862922, - -0.9999756307, -0.9999619231, -0.9999451694, -0.9999253697, -0.9999025240, - -0.9998766325, -0.9998476952, -0.9998157121, -0.9997806835, -0.9997426093, - -0.9997014898, -0.9996573250, -0.9996101150, -0.9995598601, -0.9995065604, - -0.9994502159, -0.9993908270, -0.9993283938, -0.9992629164, -0.9991943951, - -0.9991228301, -0.9990482216, -0.9989705698, -0.9988898750, -0.9988061373, - -0.9987193572, -0.9986295348, -0.9985366703, -0.9984407642, -0.9983418166, - -0.9982398279, -0.9981347984, -0.9980267284, -0.9979156183, -0.9978014683, - -0.9976842788, -0.9975640503, -0.9974407829, -0.9973144772, -0.9971851335, - -0.9970527522, -0.9969173337, -0.9967788785, -0.9966373868, -0.9964928592, - -0.9963452962, -0.9961946981, -0.9960410654, -0.9958843986, -0.9957246982, - -0.9955619646, -0.9953961984, -0.9952274000, -0.9950555700, -0.9948807088, - -0.9947028171, -0.9945218954, -0.9943379441, -0.9941509640, -0.9939609555, - -0.9937679192, -0.9935718557, -0.9933727656, -0.9931706495, -0.9929655081, - -0.9927573419, -0.9925461516, -0.9923319379, -0.9921147013, -0.9918944426, - -0.9916711624, -0.9914448614, -0.9912155403, -0.9909831997, -0.9907478405, - -0.9905094632, -0.9902680687, -0.9900236577, -0.9897762309, -0.9895257891, - -0.9892723330, -0.9890158634, -0.9887563810, -0.9884938868, -0.9882283814, - -0.9879598658, -0.9876883406, -0.9874138068, -0.9871362651, -0.9868557164, - -0.9865721616, -0.9862856015, -0.9859960371, -0.9857034691, -0.9854078985, - -0.9851093262, -0.9848077530, -0.9845031800, -0.9841956080, -0.9838850379, - -0.9835714708, -0.9832549076, -0.9829353491, -0.9826127965, -0.9822872507, - -0.9819587127, -0.9816271834, -0.9812926640, -0.9809551553, -0.9806146585, - -0.9802711746, -0.9799247046, -0.9795752496, -0.9792228106, -0.9788673888, - -0.9785089851, -0.9781476007, -0.9777832368, -0.9774158943, -0.9770455744, - -0.9766722783, -0.9762960071, -0.9759167619, -0.9755345439, -0.9751493543, - -0.9747611942, -0.9743700648, -0.9739759673, -0.9735789029, -0.9731788728, - -0.9727758782, -0.9723699204, -0.9719610006, -0.9715491200, -0.9711342799, - -0.9707164816, -0.9702957263, -0.9698720153, -0.9694453499, -0.9690157314, - -0.9685831611, -0.9681476404, -0.9677091705, -0.9672677528, -0.9668233886, - -0.9663760793, -0.9659258263, -0.9654726309, -0.9650164945, -0.9645574185, - -0.9640954042, -0.9636304532, -0.9631625668, -0.9626917464, -0.9622179935, - -0.9617413095, -0.9612616959, -0.9607791542, -0.9602936857, -0.9598052920, - -0.9593139745, -0.9588197349, -0.9583225745, -0.9578224948, -0.9573194975, - -0.9568135841, -0.9563047560, -0.9557930148, -0.9552783621, -0.9547607995, - -0.9542403285, -0.9537169507, -0.9531906678, -0.9526614813, -0.9521293927, - -0.9515944039, -0.9510565163, -0.9505157316, -0.9499720515, -0.9494254776, - -0.9488760116, -0.9483236552, -0.9477684100, -0.9472102777, -0.9466492601, - -0.9460853588, -0.9455185756, -0.9449489122, -0.9443763702, -0.9438009516, - -0.9432226579, -0.9426414911, -0.9420574528, -0.9414705448, -0.9408807690, - -0.9402881270, -0.9396926208, -0.9390942521, -0.9384930228, -0.9378889346, - -0.9372819895, -0.9366721892, -0.9360595357, -0.9354440308, -0.9348256764, - -0.9342044743, -0.9335804265, -0.9329535348, -0.9323238012, -0.9316912276, - -0.9310558159, -0.9304175680, -0.9297764859, -0.9291325715, -0.9284858269, - -0.9278362539, -0.9271838546, -0.9265286309, -0.9258705848, -0.9252097184, - -0.9245460336, -0.9238795325, -0.9232102171, -0.9225380895, -0.9218631516, - -0.9211854056, -0.9205048535, -0.9198214973, -0.9191353393, -0.9184463813, - -0.9177546257, -0.9170600744, -0.9163627296, -0.9156625933, -0.9149596678, - -0.9142539552, -0.9135454576, -0.9128341772, -0.9121201162, -0.9114032766, - -0.9106836608, -0.9099612709, -0.9092361090, -0.9085081775, -0.9077774785, - -0.9070440143, -0.9063077870, -0.9055687990, -0.9048270525, -0.9040825497, - -0.9033352929, -0.9025852843, -0.9018325264, -0.9010770213, -0.9003187714, - -0.8995577790, -0.8987940463, -0.8980275758, -0.8972583697, -0.8964864304, - -0.8957117602, -0.8949343616, -0.8941542368, -0.8933713883, -0.8925858185, - -0.8917975296, -0.8910065242, -0.8902128046, -0.8894163733, -0.8886172327, - -0.8878153851, -0.8870108332, -0.8862035792, -0.8853936258, -0.8845809752, - -0.8837656301, -0.8829475929, -0.8821268660, -0.8813034521, -0.8804773535, - -0.8796485729, -0.8788171127, -0.8779829754, -0.8771461637, -0.8763066800, - -0.8754645270, -0.8746197071, -0.8737722230, -0.8729220773, -0.8720692724, - -0.8712138111, -0.8703556959, -0.8694949295, -0.8686315144, -0.8677654534, - -0.8668967489, -0.8660254038, -0.8651514206, -0.8642748020, -0.8633955506, - -0.8625136692, -0.8616291604, -0.8607420270, -0.8598522716, -0.8589598969, - -0.8580649057, -0.8571673007, -0.8562670846, -0.8553642602, -0.8544588301, - -0.8535507973, -0.8526401644, -0.8517269341, -0.8508111094, -0.8498926930, - -0.8489716876, -0.8480480962, -0.8471219214, -0.8461931661, -0.8452618332, - -0.8443279255, -0.8433914458, -0.8424523970, -0.8415107819, -0.8405666035, - -0.8396198645, -0.8386705679, -0.8377187166, -0.8367643135, -0.8358073614, - -0.8348478633, -0.8338858221, -0.8329212407, -0.8319541221, -0.8309844693, - -0.8300122851, -0.8290375726, -0.8280603346, -0.8270805743, -0.8260982945, - -0.8251134983, -0.8241261886, -0.8231363685, -0.8221440410, -0.8211492091, - -0.8201518759, -0.8191520443, -0.8181497174, -0.8171448983, -0.8161375901, - -0.8151277957, -0.8141155184, -0.8131007610, -0.8120835269, -0.8110638190, - -0.8100416404, -0.8090169944, -0.8079898839, -0.8069603121, -0.8059282822, - -0.8048937974, -0.8038568606, -0.8028174752, -0.8017756442, -0.8007313709, - -0.7996846585, -0.7986355100, -0.7975839288, -0.7965299180, -0.7954734809, - -0.7944146205, -0.7933533403, -0.7922896434, -0.7912235330, -0.7901550124, - -0.7890840848, -0.7880107536, -0.7869350220, -0.7858568932, -0.7847763705, - -0.7836934573, -0.7826081569, -0.7815204724, -0.7804304073, -0.7793379649, - -0.7782431485, -0.7771459615, -0.7760464071, -0.7749444887, -0.7738402097, - -0.7727335735, -0.7716245834, -0.7705132428, -0.7693995550, -0.7682835236, - -0.7671651518, -0.7660444431, -0.7649214009, -0.7637960286, -0.7626683297, - -0.7615383075, -0.7604059656, -0.7592713073, -0.7581343362, -0.7569950557, - -0.7558534692, -0.7547095802, -0.7535633923, -0.7524149089, -0.7512641335, - -0.7501110696, -0.7489557208, -0.7477980905, -0.7466381823, -0.7454759997, - -0.7443115462, -0.7431448255, -0.7419758410, -0.7408045963, -0.7396310950, - -0.7384553406, -0.7372773368, -0.7360970871, -0.7349145951, -0.7337298645, - -0.7325428988, -0.7313537016, -0.7301622766, -0.7289686274, -0.7277727577, - -0.7265746710, -0.7253743710, -0.7241718614, -0.7229671459, -0.7217602281, - -0.7205511117, -0.7193398003, -0.7181262978, -0.7169106077, -0.7156927337, - -0.7144726796, -0.7132504492, -0.7120260460, -0.7107994739, -0.7095707365, - -0.7083398377, -0.7071067812, -0.7058715707, -0.7046342100, -0.7033947028, - -0.7021530530, -0.7009092643, -0.6996633405, -0.6984152854, -0.6971651029, - -0.6959127966, -0.6946583705, -0.6934018283, -0.6921431739, -0.6908824111, - -0.6896195437, -0.6883545757, -0.6870875108, -0.6858183529, -0.6845471059, - -0.6832737737, -0.6819983601, -0.6807208690, -0.6794413043, -0.6781596699, - -0.6768759697, -0.6755902076, -0.6743023876, -0.6730125135, -0.6717205893, - -0.6704266190, -0.6691306064, -0.6678325555, -0.6665324702, -0.6652303547, - -0.6639262127, -0.6626200482, -0.6613118653, -0.6600016680, -0.6586894601, - -0.6573752458, -0.6560590290, -0.6547408137, -0.6534206040, -0.6520984038, - -0.6507742173, -0.6494480483, -0.6481199011, -0.6467897795, -0.6454576877, - -0.6441236298, -0.6427876097, -0.6414496316, -0.6401096995, -0.6387678175, - -0.6374239897, -0.6360782203, -0.6347305132, -0.6333808726, -0.6320293027, - -0.6306758074, -0.6293203910, -0.6279630576, -0.6266038114, -0.6252426563, - -0.6238795967, -0.6225146366, -0.6211477803, -0.6197790318, -0.6184083954, - -0.6170358751, -0.6156614753, -0.6142852001, -0.6129070537, -0.6115270402, - -0.6101451639, -0.6087614290, -0.6073758397, -0.6059884003, -0.6045991149, - -0.6032079877, -0.6018150232, -0.6004202253, -0.5990235985, -0.5976251470, - -0.5962248750, -0.5948227868, -0.5934188866, -0.5920131788, -0.5906056676, - -0.5891963574, -0.5877852523, -0.5863723567, -0.5849576750, -0.5835412114, - -0.5821229702, -0.5807029557, -0.5792811723, -0.5778576244, -0.5764323162, - -0.5750052520, -0.5735764364, -0.5721458734, -0.5707135677, -0.5692795234, - -0.5678437451, -0.5664062369, -0.5649670034, -0.5635260489, -0.5620833779, - -0.5606389946, -0.5591929035, -0.5577451090, -0.5562956155, -0.5548444274, - -0.5533915492, -0.5519369853, -0.5504807401, -0.5490228180, -0.5475632235, - -0.5461019610, -0.5446390350, -0.5431744500, -0.5417082103, -0.5402403205, - -0.5387707850, -0.5372996083, -0.5358267950, -0.5343523494, -0.5328762761, - -0.5313985795, -0.5299192642, -0.5284383347, -0.5269557955, -0.5254716511, - -0.5239859060, -0.5224985647, -0.5210096318, -0.5195191119, -0.5180270094, - -0.5165333289, -0.5150380749, -0.5135412521, -0.5120428649, -0.5105429179, - -0.5090414158, -0.5075383630, -0.5060337641, -0.5045276238, -0.5030199466, - -0.5015107372, -0.5000000000, -0.4984877398, -0.4969739610, -0.4954586684, - -0.4939418666, -0.4924235601, -0.4909037536, -0.4893824517, -0.4878596591, - -0.4863353804, -0.4848096202, -0.4832823833, -0.4817536741, -0.4802234974, - -0.4786918579, -0.4771587603, -0.4756242091, -0.4740882090, -0.4725507649, - -0.4710118812, -0.4694715628, -0.4679298143, -0.4663866403, -0.4648420457, - -0.4632960351, -0.4617486132, -0.4601997848, -0.4586495545, -0.4570979271, - -0.4555449072, -0.4539904997, -0.4524347093, -0.4508775407, -0.4493189986, - -0.4477590878, -0.4461978131, -0.4446351792, -0.4430711908, -0.4415058528, - -0.4399391699, -0.4383711468, -0.4368017884, -0.4352310994, -0.4336590846, - -0.4320857488, -0.4305110968, -0.4289351334, -0.4273578634, -0.4257792916, - -0.4241994227, -0.4226182617, -0.4210358134, -0.4194520824, -0.4178670738, - -0.4162807923, -0.4146932427, -0.4131044298, -0.4115143586, -0.4099230338, - -0.4083304604, -0.4067366431, -0.4051415868, -0.4035452964, -0.4019477767, - -0.4003490326, -0.3987490689, -0.3971478906, -0.3955455026, -0.3939419096, - -0.3923371166, -0.3907311285, -0.3891239501, -0.3875155865, -0.3859060423, - -0.3842953227, -0.3826834324, -0.3810703764, -0.3794561595, -0.3778407868, - -0.3762242631, -0.3746065934, -0.3729877826, -0.3713678356, -0.3697467573, - -0.3681245527, -0.3665012267, -0.3648767843, -0.3632512305, -0.3616245701, - -0.3599968081, -0.3583679495, -0.3567379993, -0.3551069624, -0.3534748438, - -0.3518416484, -0.3502073813, -0.3485720473, -0.3469356516, -0.3452981990, - -0.3436596946, -0.3420201433, -0.3403795502, -0.3387379202, -0.3370952584, - -0.3354515698, -0.3338068592, -0.3321611319, -0.3305143927, -0.3288666467, - -0.3272178990, -0.3255681545, -0.3239174182, -0.3222656952, -0.3206129906, - -0.3189593093, -0.3173046564, -0.3156490369, -0.3139924560, -0.3123349185, - -0.3106764296, -0.3090169944, -0.3073566178, -0.3056953050, -0.3040330609, - -0.3023698908, -0.3007057995, -0.2990407923, -0.2973748741, -0.2957080500, - -0.2940403252, -0.2923717047, -0.2907021936, -0.2890317969, -0.2873605198, - -0.2856883674, -0.2840153447, -0.2823414568, -0.2806667089, -0.2789911060, - -0.2773146533, -0.2756373558, -0.2739592187, -0.2722802470, -0.2706004460, - -0.2689198206, -0.2672383761, -0.2655561175, -0.2638730500, -0.2621891786, - -0.2605045086, -0.2588190451, -0.2571327932, -0.2554457579, -0.2537579446, - -0.2520693582, -0.2503800041, -0.2486898872, -0.2469990127, -0.2453073859, - -0.2436150118, -0.2419218956, -0.2402280425, -0.2385334576, -0.2368381461, - -0.2351421131, -0.2334453639, -0.2317479035, -0.2300497372, -0.2283508701, - -0.2266513074, -0.2249510543, -0.2232501160, -0.2215484976, -0.2198462044, - -0.2181432414, -0.2164396139, -0.2147353272, -0.2130303863, -0.2113247965, - -0.2096185629, -0.2079116908, -0.2062041854, -0.2044960518, -0.2027872954, - -0.2010779211, -0.1993679344, -0.1976573404, -0.1959461442, -0.1942343512, - -0.1925219665, -0.1908089954, -0.1890954430, -0.1873813146, -0.1856666154, - -0.1839513506, -0.1822355255, -0.1805191453, -0.1788022151, -0.1770847403, - -0.1753667261, -0.1736481777, -0.1719291003, -0.1702094992, -0.1684893796, - -0.1667687467, -0.1650476059, -0.1633259622, -0.1616038211, -0.1598811877, - -0.1581580673, -0.1564344650, -0.1547103863, -0.1529858363, -0.1512608202, - -0.1495353434, -0.1478094111, -0.1460830286, -0.1443562010, -0.1426289337, - -0.1409012319, -0.1391731010, -0.1374445460, -0.1357155724, -0.1339861854, - -0.1322563903, -0.1305261922, -0.1287955966, -0.1270646086, -0.1253332336, - -0.1236014767, -0.1218693434, -0.1201368388, -0.1184039683, -0.1166707371, - -0.1149371505, -0.1132032138, -0.1114689322, -0.1097343111, -0.1079993557, - -0.1062640713, -0.1045284633, -0.1027925368, -0.1010562972, -0.0993197497, - -0.0975828998, -0.0958457525, -0.0941083133, -0.0923705874, -0.0906325802, - -0.0888942969, -0.0871557427, -0.0854169231, -0.0836778433, -0.0819385086, - -0.0801989243, -0.0784590957, -0.0767190281, -0.0749787268, -0.0732381971, - -0.0714974443, -0.0697564737, -0.0680152907, -0.0662739004, -0.0645323083, - -0.0627905195, -0.0610485395, -0.0593063736, -0.0575640270, -0.0558215050, - -0.0540788130, -0.0523359562, -0.0505929401, -0.0488497698, -0.0471064507, - -0.0453629881, -0.0436193874, -0.0418756537, -0.0401317925, -0.0383878091, - -0.0366437087, -0.0348994967, -0.0331551784, -0.0314107591, -0.0296662441, - -0.0279216387, -0.0261769483, -0.0244321782, -0.0226873336, -0.0209424199, - -0.0191974424, -0.0174524064, -0.0157073173, -0.0139621803, -0.0122170008, - -0.0104717841, -0.0087265355, -0.0069812603, -0.0052359638, -0.0034906514, + 0.0069812603, 0.0087265355, 0.0104717841, 0.0122170008, 0.0139621803, + 0.0157073173, 0.0174524064, 0.0191974424, 0.0209424199, 0.0226873336, + 0.0244321782, 0.0261769483, 0.0279216387, 0.0296662441, 0.0314107591, + 0.0331551784, 0.0348994967, 0.0366437087, 0.0383878091, 0.0401317925, + 0.0418756537, 0.0436193874, 0.0453629881, 0.0471064507, 0.0488497698, + 0.0505929401, 0.0523359562, 0.0540788130, 0.0558215050, 0.0575640270, + 0.0593063736, 0.0610485395, 0.0627905195, 0.0645323083, 0.0662739004, + 0.0680152907, 0.0697564737, 0.0714974443, 0.0732381971, 0.0749787268, + 0.0767190281, 0.0784590957, 0.0801989243, 0.0819385086, 0.0836778433, + 0.0854169231, 0.0871557427, 0.0888942969, 0.0906325802, 0.0923705874, + 0.0941083133, 0.0958457525, 0.0975828998, 0.0993197497, 0.1010562972, + 0.1027925368, 0.1045284633, 0.1062640713, 0.1079993557, 0.1097343111, + 0.1114689322, 0.1132032138, 0.1149371505, 0.1166707371, 0.1184039683, + 0.1201368388, 0.1218693434, 0.1236014767, 0.1253332336, 0.1270646086, + 0.1287955966, 0.1305261922, 0.1322563903, 0.1339861854, 0.1357155724, + 0.1374445460, 0.1391731010, 0.1409012319, 0.1426289337, 0.1443562010, + 0.1460830286, 0.1478094111, 0.1495353434, 0.1512608202, 0.1529858363, + 0.1547103863, 0.1564344650, 0.1581580673, 0.1598811877, 0.1616038211, + 0.1633259622, 0.1650476059, 0.1667687467, 0.1684893796, 0.1702094992, + 0.1719291003, 0.1736481777, 0.1753667261, 0.1770847403, 0.1788022151, + 0.1805191453, 0.1822355255, 0.1839513506, 0.1856666154, 0.1873813146, + 0.1890954430, 0.1908089954, 0.1925219665, 0.1942343512, 0.1959461442, + 0.1976573404, 0.1993679344, 0.2010779211, 0.2027872954, 0.2044960518, + 0.2062041854, 0.2079116908, 0.2096185629, 0.2113247965, 0.2130303863, + 0.2147353272, 0.2164396139, 0.2181432414, 0.2198462044, 0.2215484976, + 0.2232501160, 0.2249510543, 0.2266513074, 0.2283508701, 0.2300497372, + 0.2317479035, 0.2334453639, 0.2351421131, 0.2368381461, 0.2385334576, + 0.2402280425, 0.2419218956, 0.2436150118, 0.2453073859, 0.2469990127, + 0.2486898872, 0.2503800041, 0.2520693582, 0.2537579446, 0.2554457579, + 0.2571327932, 0.2588190451, 0.2605045086, 0.2621891786, 0.2638730500, + 0.2655561175, 0.2672383761, 0.2689198206, 0.2706004460, 0.2722802470, + 0.2739592187, 0.2756373558, 0.2773146533, 0.2789911060, 0.2806667089, + 0.2823414568, 0.2840153447, 0.2856883674, 0.2873605198, 0.2890317969, + 0.2907021936, 0.2923717047, 0.2940403252, 0.2957080500, 0.2973748741, + 0.2990407923, 0.3007057995, 0.3023698908, 0.3040330609, 0.3056953050, + 0.3073566178, 0.3090169944, 0.3106764296, 0.3123349185, 0.3139924560, + 0.3156490369, 0.3173046564, 0.3189593093, 0.3206129906, 0.3222656952, + 0.3239174182, 0.3255681545, 0.3272178990, 0.3288666467, 0.3305143927, + 0.3321611319, 0.3338068592, 0.3354515698, 0.3370952584, 0.3387379202, + 0.3403795502, 0.3420201433, 0.3436596946, 0.3452981990, 0.3469356516, + 0.3485720473, 0.3502073813, 0.3518416484, 0.3534748438, 0.3551069624, + 0.3567379993, 0.3583679495, 0.3599968081, 0.3616245701, 0.3632512305, + 0.3648767843, 0.3665012267, 0.3681245527, 0.3697467573, 0.3713678356, + 0.3729877826, 0.3746065934, 0.3762242631, 0.3778407868, 0.3794561595, + 0.3810703764, 0.3826834324, 0.3842953227, 0.3859060423, 0.3875155865, + 0.3891239501, 0.3907311285, 0.3923371166, 0.3939419096, 0.3955455026, + 0.3971478906, 0.3987490689, 0.4003490326, 0.4019477767, 0.4035452964, + 0.4051415868, 0.4067366431, 0.4083304604, 0.4099230338, 0.4115143586, + 0.4131044298, 0.4146932427, 0.4162807923, 0.4178670738, 0.4194520824, + 0.4210358134, 0.4226182617, 0.4241994227, 0.4257792916, 0.4273578634, + 0.4289351334, 0.4305110968, 0.4320857488, 0.4336590846, 0.4352310994, + 0.4368017884, 0.4383711468, 0.4399391699, 0.4415058528, 0.4430711908, + 0.4446351792, 0.4461978131, 0.4477590878, 0.4493189986, 0.4508775407, + 0.4524347093, 0.4539904997, 0.4555449072, 0.4570979271, 0.4586495545, + 0.4601997848, 0.4617486132, 0.4632960351, 0.4648420457, 0.4663866403, + 0.4679298143, 0.4694715628, 0.4710118812, 0.4725507649, 0.4740882090, + 0.4756242091, 0.4771587603, 0.4786918579, 0.4802234974, 0.4817536741, + 0.4832823833, 0.4848096202, 0.4863353804, 0.4878596591, 0.4893824517, + 0.4909037536, 0.4924235601, 0.4939418666, 0.4954586684, 0.4969739610, + 0.4984877398, 0.5000000000, 0.5015107372, 0.5030199466, 0.5045276238, + 0.5060337641, 0.5075383630, 0.5090414158, 0.5105429179, 0.5120428649, + 0.5135412521, 0.5150380749, 0.5165333289, 0.5180270094, 0.5195191119, + 0.5210096318, 0.5224985647, 0.5239859060, 0.5254716511, 0.5269557955, + 0.5284383347, 0.5299192642, 0.5313985795, 0.5328762761, 0.5343523494, + 0.5358267950, 0.5372996083, 0.5387707850, 0.5402403205, 0.5417082103, + 0.5431744500, 0.5446390350, 0.5461019610, 0.5475632235, 0.5490228180, + 0.5504807401, 0.5519369853, 0.5533915492, 0.5548444274, 0.5562956155, + 0.5577451090, 0.5591929035, 0.5606389946, 0.5620833779, 0.5635260489, + 0.5649670034, 0.5664062369, 0.5678437451, 0.5692795234, 0.5707135677, + 0.5721458734, 0.5735764364, 0.5750052520, 0.5764323162, 0.5778576244, + 0.5792811723, 0.5807029557, 0.5821229702, 0.5835412114, 0.5849576750, + 0.5863723567, 0.5877852523, 0.5891963574, 0.5906056676, 0.5920131788, + 0.5934188866, 0.5948227868, 0.5962248750, 0.5976251470, 0.5990235985, + 0.6004202253, 0.6018150232, 0.6032079877, 0.6045991149, 0.6059884003, + 0.6073758397, 0.6087614290, 0.6101451639, 0.6115270402, 0.6129070537, + 0.6142852001, 0.6156614753, 0.6170358751, 0.6184083954, 0.6197790318, + 0.6211477803, 0.6225146366, 0.6238795967, 0.6252426563, 0.6266038114, + 0.6279630576, 0.6293203910, 0.6306758074, 0.6320293027, 0.6333808726, + 0.6347305132, 0.6360782203, 0.6374239897, 0.6387678175, 0.6401096995, + 0.6414496316, 0.6427876097, 0.6441236298, 0.6454576877, 0.6467897795, + 0.6481199011, 0.6494480483, 0.6507742173, 0.6520984038, 0.6534206040, + 0.6547408137, 0.6560590290, 0.6573752458, 0.6586894601, 0.6600016680, + 0.6613118653, 0.6626200482, 0.6639262127, 0.6652303547, 0.6665324702, + 0.6678325555, 0.6691306064, 0.6704266190, 0.6717205893, 0.6730125135, + 0.6743023876, 0.6755902076, 0.6768759697, 0.6781596699, 0.6794413043, + 0.6807208690, 0.6819983601, 0.6832737737, 0.6845471059, 0.6858183529, + 0.6870875108, 0.6883545757, 0.6896195437, 0.6908824111, 0.6921431739, + 0.6934018283, 0.6946583705, 0.6959127966, 0.6971651029, 0.6984152854, + 0.6996633405, 0.7009092643, 0.7021530530, 0.7033947028, 0.7046342100, + 0.7058715707, 0.7071067812, 0.7083398377, 0.7095707365, 0.7107994739, + 0.7120260460, 0.7132504492, 0.7144726796, 0.7156927337, 0.7169106077, + 0.7181262978, 0.7193398003, 0.7205511117, 0.7217602281, 0.7229671459, + 0.7241718614, 0.7253743710, 0.7265746710, 0.7277727577, 0.7289686274, + 0.7301622766, 0.7313537016, 0.7325428988, 0.7337298645, 0.7349145951, + 0.7360970871, 0.7372773368, 0.7384553406, 0.7396310950, 0.7408045963, + 0.7419758410, 0.7431448255, 0.7443115462, 0.7454759997, 0.7466381823, + 0.7477980905, 0.7489557208, 0.7501110696, 0.7512641335, 0.7524149089, + 0.7535633923, 0.7547095802, 0.7558534692, 0.7569950557, 0.7581343362, + 0.7592713073, 0.7604059656, 0.7615383075, 0.7626683297, 0.7637960286, + 0.7649214009, 0.7660444431, 0.7671651518, 0.7682835236, 0.7693995550, + 0.7705132428, 0.7716245834, 0.7727335735, 0.7738402097, 0.7749444887, + 0.7760464071, 0.7771459615, 0.7782431485, 0.7793379649, 0.7804304073, + 0.7815204724, 0.7826081569, 0.7836934573, 0.7847763705, 0.7858568932, + 0.7869350220, 0.7880107536, 0.7890840848, 0.7901550124, 0.7912235330, + 0.7922896434, 0.7933533403, 0.7944146205, 0.7954734809, 0.7965299180, + 0.7975839288, 0.7986355100, 0.7996846585, 0.8007313709, 0.8017756442, + 0.8028174752, 0.8038568606, 0.8048937974, 0.8059282822, 0.8069603121, + 0.8079898839, 0.8090169944, 0.8100416404, 0.8110638190, 0.8120835269, + 0.8131007610, 0.8141155184, 0.8151277957, 0.8161375901, 0.8171448983, + 0.8181497174, 0.8191520443, 0.8201518759, 0.8211492091, 0.8221440410, + 0.8231363685, 0.8241261886, 0.8251134983, 0.8260982945, 0.8270805743, + 0.8280603346, 0.8290375726, 0.8300122851, 0.8309844693, 0.8319541221, + 0.8329212407, 0.8338858221, 0.8348478633, 0.8358073614, 0.8367643135, + 0.8377187166, 0.8386705679, 0.8396198645, 0.8405666035, 0.8415107819, + 0.8424523970, 0.8433914458, 0.8443279255, 0.8452618332, 0.8461931661, + 0.8471219214, 0.8480480962, 0.8489716876, 0.8498926930, 0.8508111094, + 0.8517269341, 0.8526401644, 0.8535507973, 0.8544588301, 0.8553642602, + 0.8562670846, 0.8571673007, 0.8580649057, 0.8589598969, 0.8598522716, + 0.8607420270, 0.8616291604, 0.8625136692, 0.8633955506, 0.8642748020, + 0.8651514206, 0.8660254038, 0.8668967489, 0.8677654534, 0.8686315144, + 0.8694949295, 0.8703556959, 0.8712138111, 0.8720692724, 0.8729220773, + 0.8737722230, 0.8746197071, 0.8754645270, 0.8763066800, 0.8771461637, + 0.8779829754, 0.8788171127, 0.8796485729, 0.8804773535, 0.8813034521, + 0.8821268660, 0.8829475929, 0.8837656301, 0.8845809752, 0.8853936258, + 0.8862035792, 0.8870108332, 0.8878153851, 0.8886172327, 0.8894163733, + 0.8902128046, 0.8910065242, 0.8917975296, 0.8925858185, 0.8933713883, + 0.8941542368, 0.8949343616, 0.8957117602, 0.8964864304, 0.8972583697, + 0.8980275758, 0.8987940463, 0.8995577790, 0.9003187714, 0.9010770213, + 0.9018325264, 0.9025852843, 0.9033352929, 0.9040825497, 0.9048270525, + 0.9055687990, 0.9063077870, 0.9070440143, 0.9077774785, 0.9085081775, + 0.9092361090, 0.9099612709, 0.9106836608, 0.9114032766, 0.9121201162, + 0.9128341772, 0.9135454576, 0.9142539552, 0.9149596678, 0.9156625933, + 0.9163627296, 0.9170600744, 0.9177546257, 0.9184463813, 0.9191353393, + 0.9198214973, 0.9205048535, 0.9211854056, 0.9218631516, 0.9225380895, + 0.9232102171, 0.9238795325, 0.9245460336, 0.9252097184, 0.9258705848, + 0.9265286309, 0.9271838546, 0.9278362539, 0.9284858269, 0.9291325715, + 0.9297764859, 0.9304175680, 0.9310558159, 0.9316912276, 0.9323238012, + 0.9329535348, 0.9335804265, 0.9342044743, 0.9348256764, 0.9354440308, + 0.9360595357, 0.9366721892, 0.9372819895, 0.9378889346, 0.9384930228, + 0.9390942521, 0.9396926208, 0.9402881270, 0.9408807690, 0.9414705448, + 0.9420574528, 0.9426414911, 0.9432226579, 0.9438009516, 0.9443763702, + 0.9449489122, 0.9455185756, 0.9460853588, 0.9466492601, 0.9472102777, + 0.9477684100, 0.9483236552, 0.9488760116, 0.9494254776, 0.9499720515, + 0.9505157316, 0.9510565163, 0.9515944039, 0.9521293927, 0.9526614813, + 0.9531906678, 0.9537169507, 0.9542403285, 0.9547607995, 0.9552783621, + 0.9557930148, 0.9563047560, 0.9568135841, 0.9573194975, 0.9578224948, + 0.9583225745, 0.9588197349, 0.9593139745, 0.9598052920, 0.9602936857, + 0.9607791542, 0.9612616959, 0.9617413095, 0.9622179935, 0.9626917464, + 0.9631625668, 0.9636304532, 0.9640954042, 0.9645574185, 0.9650164945, + 0.9654726309, 0.9659258263, 0.9663760793, 0.9668233886, 0.9672677528, + 0.9677091705, 0.9681476404, 0.9685831611, 0.9690157314, 0.9694453499, + 0.9698720153, 0.9702957263, 0.9707164816, 0.9711342799, 0.9715491200, + 0.9719610006, 0.9723699204, 0.9727758782, 0.9731788728, 0.9735789029, + 0.9739759673, 0.9743700648, 0.9747611942, 0.9751493543, 0.9755345439, + 0.9759167619, 0.9762960071, 0.9766722783, 0.9770455744, 0.9774158943, + 0.9777832368, 0.9781476007, 0.9785089851, 0.9788673888, 0.9792228106, + 0.9795752496, 0.9799247046, 0.9802711746, 0.9806146585, 0.9809551553, + 0.9812926640, 0.9816271834, 0.9819587127, 0.9822872507, 0.9826127965, + 0.9829353491, 0.9832549076, 0.9835714708, 0.9838850379, 0.9841956080, + 0.9845031800, 0.9848077530, 0.9851093262, 0.9854078985, 0.9857034691, + 0.9859960371, 0.9862856015, 0.9865721616, 0.9868557164, 0.9871362651, + 0.9874138068, 0.9876883406, 0.9879598658, 0.9882283814, 0.9884938868, + 0.9887563810, 0.9890158634, 0.9892723330, 0.9895257891, 0.9897762309, + 0.9900236577, 0.9902680687, 0.9905094632, 0.9907478405, 0.9909831997, + 0.9912155403, 0.9914448614, 0.9916711624, 0.9918944426, 0.9921147013, + 0.9923319379, 0.9925461516, 0.9927573419, 0.9929655081, 0.9931706495, + 0.9933727656, 0.9935718557, 0.9937679192, 0.9939609555, 0.9941509640, + 0.9943379441, 0.9945218954, 0.9947028171, 0.9948807088, 0.9950555700, + 0.9952274000, 0.9953961984, 0.9955619646, 0.9957246982, 0.9958843986, + 0.9960410654, 0.9961946981, 0.9963452962, 0.9964928592, 0.9966373868, + 0.9967788785, 0.9969173337, 0.9970527522, 0.9971851335, 0.9973144772, + 0.9974407829, 0.9975640503, 0.9976842788, 0.9978014683, 0.9979156183, + 0.9980267284, 0.9981347984, 0.9982398279, 0.9983418166, 0.9984407642, + 0.9985366703, 0.9986295348, 0.9987193572, 0.9988061373, 0.9988898750, + 0.9989705698, 0.9990482216, 0.9991228301, 0.9991943951, 0.9992629164, + 0.9993283938, 0.9993908270, 0.9994502159, 0.9995065604, 0.9995598601, + 0.9996101150, 0.9996573250, 0.9997014898, 0.9997426093, 0.9997806835, + 0.9998157121, 0.9998476952, 0.9998766325, 0.9999025240, 0.9999253697, + 0.9999451694, 0.9999619231, 0.9999756307, 0.9999862922, 0.9999939077, + 0.9999984769, 1.0000000000, 0.9999984769, 0.9999939077, 0.9999862922, + 0.9999756307, 0.9999619231, 0.9999451694, 0.9999253697, 0.9999025240, + 0.9998766325, 0.9998476952, 0.9998157121, 0.9997806835, 0.9997426093, + 0.9997014898, 0.9996573250, 0.9996101150, 0.9995598601, 0.9995065604, + 0.9994502159, 0.9993908270, 0.9993283938, 0.9992629164, 0.9991943951, + 0.9991228301, 0.9990482216, 0.9989705698, 0.9988898750, 0.9988061373, + 0.9987193572, 0.9986295348, 0.9985366703, 0.9984407642, 0.9983418166, + 0.9982398279, 0.9981347984, 0.9980267284, 0.9979156183, 0.9978014683, + 0.9976842788, 0.9975640503, 0.9974407829, 0.9973144772, 0.9971851335, + 0.9970527522, 0.9969173337, 0.9967788785, 0.9966373868, 0.9964928592, + 0.9963452962, 0.9961946981, 0.9960410654, 0.9958843986, 0.9957246982, + 0.9955619646, 0.9953961984, 0.9952274000, 0.9950555700, 0.9948807088, + 0.9947028171, 0.9945218954, 0.9943379441, 0.9941509640, 0.9939609555, + 0.9937679192, 0.9935718557, 0.9933727656, 0.9931706495, 0.9929655081, + 0.9927573419, 0.9925461516, 0.9923319379, 0.9921147013, 0.9918944426, + 0.9916711624, 0.9914448614, 0.9912155403, 0.9909831997, 0.9907478405, + 0.9905094632, 0.9902680687, 0.9900236577, 0.9897762309, 0.9895257891, + 0.9892723330, 0.9890158634, 0.9887563810, 0.9884938868, 0.9882283814, + 0.9879598658, 0.9876883406, 0.9874138068, 0.9871362651, 0.9868557164, + 0.9865721616, 0.9862856015, 0.9859960371, 0.9857034691, 0.9854078985, + 0.9851093262, 0.9848077530, 0.9845031800, 0.9841956080, 0.9838850379, + 0.9835714708, 0.9832549076, 0.9829353491, 0.9826127965, 0.9822872507, + 0.9819587127, 0.9816271834, 0.9812926640, 0.9809551553, 0.9806146585, + 0.9802711746, 0.9799247046, 0.9795752496, 0.9792228106, 0.9788673888, + 0.9785089851, 0.9781476007, 0.9777832368, 0.9774158943, 0.9770455744, + 0.9766722783, 0.9762960071, 0.9759167619, 0.9755345439, 0.9751493543, + 0.9747611942, 0.9743700648, 0.9739759673, 0.9735789029, 0.9731788728, + 0.9727758782, 0.9723699204, 0.9719610006, 0.9715491200, 0.9711342799, + 0.9707164816, 0.9702957263, 0.9698720153, 0.9694453499, 0.9690157314, + 0.9685831611, 0.9681476404, 0.9677091705, 0.9672677528, 0.9668233886, + 0.9663760793, 0.9659258263, 0.9654726309, 0.9650164945, 0.9645574185, + 0.9640954042, 0.9636304532, 0.9631625668, 0.9626917464, 0.9622179935, + 0.9617413095, 0.9612616959, 0.9607791542, 0.9602936857, 0.9598052920, + 0.9593139745, 0.9588197349, 0.9583225745, 0.9578224948, 0.9573194975, + 0.9568135841, 0.9563047560, 0.9557930148, 0.9552783621, 0.9547607995, + 0.9542403285, 0.9537169507, 0.9531906678, 0.9526614813, 0.9521293927, + 0.9515944039, 0.9510565163, 0.9505157316, 0.9499720515, 0.9494254776, + 0.9488760116, 0.9483236552, 0.9477684100, 0.9472102777, 0.9466492601, + 0.9460853588, 0.9455185756, 0.9449489122, 0.9443763702, 0.9438009516, + 0.9432226579, 0.9426414911, 0.9420574528, 0.9414705448, 0.9408807690, + 0.9402881270, 0.9396926208, 0.9390942521, 0.9384930228, 0.9378889346, + 0.9372819895, 0.9366721892, 0.9360595357, 0.9354440308, 0.9348256764, + 0.9342044743, 0.9335804265, 0.9329535348, 0.9323238012, 0.9316912276, + 0.9310558159, 0.9304175680, 0.9297764859, 0.9291325715, 0.9284858269, + 0.9278362539, 0.9271838546, 0.9265286309, 0.9258705848, 0.9252097184, + 0.9245460336, 0.9238795325, 0.9232102171, 0.9225380895, 0.9218631516, + 0.9211854056, 0.9205048535, 0.9198214973, 0.9191353393, 0.9184463813, + 0.9177546257, 0.9170600744, 0.9163627296, 0.9156625933, 0.9149596678, + 0.9142539552, 0.9135454576, 0.9128341772, 0.9121201162, 0.9114032766, + 0.9106836608, 0.9099612709, 0.9092361090, 0.9085081775, 0.9077774785, + 0.9070440143, 0.9063077870, 0.9055687990, 0.9048270525, 0.9040825497, + 0.9033352929, 0.9025852843, 0.9018325264, 0.9010770213, 0.9003187714, + 0.8995577790, 0.8987940463, 0.8980275758, 0.8972583697, 0.8964864304, + 0.8957117602, 0.8949343616, 0.8941542368, 0.8933713883, 0.8925858185, + 0.8917975296, 0.8910065242, 0.8902128046, 0.8894163733, 0.8886172327, + 0.8878153851, 0.8870108332, 0.8862035792, 0.8853936258, 0.8845809752, + 0.8837656301, 0.8829475929, 0.8821268660, 0.8813034521, 0.8804773535, + 0.8796485729, 0.8788171127, 0.8779829754, 0.8771461637, 0.8763066800, + 0.8754645270, 0.8746197071, 0.8737722230, 0.8729220773, 0.8720692724, + 0.8712138111, 0.8703556959, 0.8694949295, 0.8686315144, 0.8677654534, + 0.8668967489, 0.8660254038, 0.8651514206, 0.8642748020, 0.8633955506, + 0.8625136692, 0.8616291604, 0.8607420270, 0.8598522716, 0.8589598969, + 0.8580649057, 0.8571673007, 0.8562670846, 0.8553642602, 0.8544588301, + 0.8535507973, 0.8526401644, 0.8517269341, 0.8508111094, 0.8498926930, + 0.8489716876, 0.8480480962, 0.8471219214, 0.8461931661, 0.8452618332, + 0.8443279255, 0.8433914458, 0.8424523970, 0.8415107819, 0.8405666035, + 0.8396198645, 0.8386705679, 0.8377187166, 0.8367643135, 0.8358073614, + 0.8348478633, 0.8338858221, 0.8329212407, 0.8319541221, 0.8309844693, + 0.8300122851, 0.8290375726, 0.8280603346, 0.8270805743, 0.8260982945, + 0.8251134983, 0.8241261886, 0.8231363685, 0.8221440410, 0.8211492091, + 0.8201518759, 0.8191520443, 0.8181497174, 0.8171448983, 0.8161375901, + 0.8151277957, 0.8141155184, 0.8131007610, 0.8120835269, 0.8110638190, + 0.8100416404, 0.8090169944, 0.8079898839, 0.8069603121, 0.8059282822, + 0.8048937974, 0.8038568606, 0.8028174752, 0.8017756442, 0.8007313709, + 0.7996846585, 0.7986355100, 0.7975839288, 0.7965299180, 0.7954734809, + 0.7944146205, 0.7933533403, 0.7922896434, 0.7912235330, 0.7901550124, + 0.7890840848, 0.7880107536, 0.7869350220, 0.7858568932, 0.7847763705, + 0.7836934573, 0.7826081569, 0.7815204724, 0.7804304073, 0.7793379649, + 0.7782431485, 0.7771459615, 0.7760464071, 0.7749444887, 0.7738402097, + 0.7727335735, 0.7716245834, 0.7705132428, 0.7693995550, 0.7682835236, + 0.7671651518, 0.7660444431, 0.7649214009, 0.7637960286, 0.7626683297, + 0.7615383075, 0.7604059656, 0.7592713073, 0.7581343362, 0.7569950557, + 0.7558534692, 0.7547095802, 0.7535633923, 0.7524149089, 0.7512641335, + 0.7501110696, 0.7489557208, 0.7477980905, 0.7466381823, 0.7454759997, + 0.7443115462, 0.7431448255, 0.7419758410, 0.7408045963, 0.7396310950, + 0.7384553406, 0.7372773368, 0.7360970871, 0.7349145951, 0.7337298645, + 0.7325428988, 0.7313537016, 0.7301622766, 0.7289686274, 0.7277727577, + 0.7265746710, 0.7253743710, 0.7241718614, 0.7229671459, 0.7217602281, + 0.7205511117, 0.7193398003, 0.7181262978, 0.7169106077, 0.7156927337, + 0.7144726796, 0.7132504492, 0.7120260460, 0.7107994739, 0.7095707365, + 0.7083398377, 0.7071067812, 0.7058715707, 0.7046342100, 0.7033947028, + 0.7021530530, 0.7009092643, 0.6996633405, 0.6984152854, 0.6971651029, + 0.6959127966, 0.6946583705, 0.6934018283, 0.6921431739, 0.6908824111, + 0.6896195437, 0.6883545757, 0.6870875108, 0.6858183529, 0.6845471059, + 0.6832737737, 0.6819983601, 0.6807208690, 0.6794413043, 0.6781596699, + 0.6768759697, 0.6755902076, 0.6743023876, 0.6730125135, 0.6717205893, + 0.6704266190, 0.6691306064, 0.6678325555, 0.6665324702, 0.6652303547, + 0.6639262127, 0.6626200482, 0.6613118653, 0.6600016680, 0.6586894601, + 0.6573752458, 0.6560590290, 0.6547408137, 0.6534206040, 0.6520984038, + 0.6507742173, 0.6494480483, 0.6481199011, 0.6467897795, 0.6454576877, + 0.6441236298, 0.6427876097, 0.6414496316, 0.6401096995, 0.6387678175, + 0.6374239897, 0.6360782203, 0.6347305132, 0.6333808726, 0.6320293027, + 0.6306758074, 0.6293203910, 0.6279630576, 0.6266038114, 0.6252426563, + 0.6238795967, 0.6225146366, 0.6211477803, 0.6197790318, 0.6184083954, + 0.6170358751, 0.6156614753, 0.6142852001, 0.6129070537, 0.6115270402, + 0.6101451639, 0.6087614290, 0.6073758397, 0.6059884003, 0.6045991149, + 0.6032079877, 0.6018150232, 0.6004202253, 0.5990235985, 0.5976251470, + 0.5962248750, 0.5948227868, 0.5934188866, 0.5920131788, 0.5906056676, + 0.5891963574, 0.5877852523, 0.5863723567, 0.5849576750, 0.5835412114, + 0.5821229702, 0.5807029557, 0.5792811723, 0.5778576244, 0.5764323162, + 0.5750052520, 0.5735764364, 0.5721458734, 0.5707135677, 0.5692795234, + 0.5678437451, 0.5664062369, 0.5649670034, 0.5635260489, 0.5620833779, + 0.5606389946, 0.5591929035, 0.5577451090, 0.5562956155, 0.5548444274, + 0.5533915492, 0.5519369853, 0.5504807401, 0.5490228180, 0.5475632235, + 0.5461019610, 0.5446390350, 0.5431744500, 0.5417082103, 0.5402403205, + 0.5387707850, 0.5372996083, 0.5358267950, 0.5343523494, 0.5328762761, + 0.5313985795, 0.5299192642, 0.5284383347, 0.5269557955, 0.5254716511, + 0.5239859060, 0.5224985647, 0.5210096318, 0.5195191119, 0.5180270094, + 0.5165333289, 0.5150380749, 0.5135412521, 0.5120428649, 0.5105429179, + 0.5090414158, 0.5075383630, 0.5060337641, 0.5045276238, 0.5030199466, + 0.5015107372, 0.5000000000, 0.4984877398, 0.4969739610, 0.4954586684, + 0.4939418666, 0.4924235601, 0.4909037536, 0.4893824517, 0.4878596591, + 0.4863353804, 0.4848096202, 0.4832823833, 0.4817536741, 0.4802234974, + 0.4786918579, 0.4771587603, 0.4756242091, 0.4740882090, 0.4725507649, + 0.4710118812, 0.4694715628, 0.4679298143, 0.4663866403, 0.4648420457, + 0.4632960351, 0.4617486132, 0.4601997848, 0.4586495545, 0.4570979271, + 0.4555449072, 0.4539904997, 0.4524347093, 0.4508775407, 0.4493189986, + 0.4477590878, 0.4461978131, 0.4446351792, 0.4430711908, 0.4415058528, + 0.4399391699, 0.4383711468, 0.4368017884, 0.4352310994, 0.4336590846, + 0.4320857488, 0.4305110968, 0.4289351334, 0.4273578634, 0.4257792916, + 0.4241994227, 0.4226182617, 0.4210358134, 0.4194520824, 0.4178670738, + 0.4162807923, 0.4146932427, 0.4131044298, 0.4115143586, 0.4099230338, + 0.4083304604, 0.4067366431, 0.4051415868, 0.4035452964, 0.4019477767, + 0.4003490326, 0.3987490689, 0.3971478906, 0.3955455026, 0.3939419096, + 0.3923371166, 0.3907311285, 0.3891239501, 0.3875155865, 0.3859060423, + 0.3842953227, 0.3826834324, 0.3810703764, 0.3794561595, 0.3778407868, + 0.3762242631, 0.3746065934, 0.3729877826, 0.3713678356, 0.3697467573, + 0.3681245527, 0.3665012267, 0.3648767843, 0.3632512305, 0.3616245701, + 0.3599968081, 0.3583679495, 0.3567379993, 0.3551069624, 0.3534748438, + 0.3518416484, 0.3502073813, 0.3485720473, 0.3469356516, 0.3452981990, + 0.3436596946, 0.3420201433, 0.3403795502, 0.3387379202, 0.3370952584, + 0.3354515698, 0.3338068592, 0.3321611319, 0.3305143927, 0.3288666467, + 0.3272178990, 0.3255681545, 0.3239174182, 0.3222656952, 0.3206129906, + 0.3189593093, 0.3173046564, 0.3156490369, 0.3139924560, 0.3123349185, + 0.3106764296, 0.3090169944, 0.3073566178, 0.3056953050, 0.3040330609, + 0.3023698908, 0.3007057995, 0.2990407923, 0.2973748741, 0.2957080500, + 0.2940403252, 0.2923717047, 0.2907021936, 0.2890317969, 0.2873605198, + 0.2856883674, 0.2840153447, 0.2823414568, 0.2806667089, 0.2789911060, + 0.2773146533, 0.2756373558, 0.2739592187, 0.2722802470, 0.2706004460, + 0.2689198206, 0.2672383761, 0.2655561175, 0.2638730500, 0.2621891786, + 0.2605045086, 0.2588190451, 0.2571327932, 0.2554457579, 0.2537579446, + 0.2520693582, 0.2503800041, 0.2486898872, 0.2469990127, 0.2453073859, + 0.2436150118, 0.2419218956, 0.2402280425, 0.2385334576, 0.2368381461, + 0.2351421131, 0.2334453639, 0.2317479035, 0.2300497372, 0.2283508701, + 0.2266513074, 0.2249510543, 0.2232501160, 0.2215484976, 0.2198462044, + 0.2181432414, 0.2164396139, 0.2147353272, 0.2130303863, 0.2113247965, + 0.2096185629, 0.2079116908, 0.2062041854, 0.2044960518, 0.2027872954, + 0.2010779211, 0.1993679344, 0.1976573404, 0.1959461442, 0.1942343512, + 0.1925219665, 0.1908089954, 0.1890954430, 0.1873813146, 0.1856666154, + 0.1839513506, 0.1822355255, 0.1805191453, 0.1788022151, 0.1770847403, + 0.1753667261, 0.1736481777, 0.1719291003, 0.1702094992, 0.1684893796, + 0.1667687467, 0.1650476059, 0.1633259622, 0.1616038211, 0.1598811877, + 0.1581580673, 0.1564344650, 0.1547103863, 0.1529858363, 0.1512608202, + 0.1495353434, 0.1478094111, 0.1460830286, 0.1443562010, 0.1426289337, + 0.1409012319, 0.1391731010, 0.1374445460, 0.1357155724, 0.1339861854, + 0.1322563903, 0.1305261922, 0.1287955966, 0.1270646086, 0.1253332336, + 0.1236014767, 0.1218693434, 0.1201368388, 0.1184039683, 0.1166707371, + 0.1149371505, 0.1132032138, 0.1114689322, 0.1097343111, 0.1079993557, + 0.1062640713, 0.1045284633, 0.1027925368, 0.1010562972, 0.0993197497, + 0.0975828998, 0.0958457525, 0.0941083133, 0.0923705874, 0.0906325802, + 0.0888942969, 0.0871557427, 0.0854169231, 0.0836778433, 0.0819385086, + 0.0801989243, 0.0784590957, 0.0767190281, 0.0749787268, 0.0732381971, + 0.0714974443, 0.0697564737, 0.0680152907, 0.0662739004, 0.0645323083, + 0.0627905195, 0.0610485395, 0.0593063736, 0.0575640270, 0.0558215050, + 0.0540788130, 0.0523359562, 0.0505929401, 0.0488497698, 0.0471064507, + 0.0453629881, 0.0436193874, 0.0418756537, 0.0401317925, 0.0383878091, + 0.0366437087, 0.0348994967, 0.0331551784, 0.0314107591, 0.0296662441, + 0.0279216387, 0.0261769483, 0.0244321782, 0.0226873336, 0.0209424199, + 0.0191974424, 0.0174524064, 0.0157073173, 0.0139621803, 0.0122170008, + 0.0104717841, 0.0087265355, 0.0069812603, 0.0052359638, 0.0034906514, + 0.0017453284, 0.0000000000, -0.0017453284, -0.0034906514,-0.0052359638, + -0.0069812603, -0.0087265355, -0.0104717841, -0.0122170008,-0.0139621803, + -0.0157073173, -0.0174524064, -0.0191974424, -0.0209424199,-0.0226873336, + -0.0244321782, -0.0261769483, -0.0279216387, -0.0296662441,-0.0314107591, + -0.0331551784, -0.0348994967, -0.0366437087, -0.0383878091,-0.0401317925, + -0.0418756537, -0.0436193874, -0.0453629881, -0.0471064507,-0.0488497698, + -0.0505929401, -0.0523359562, -0.0540788130, -0.0558215050,-0.0575640270, + -0.0593063736, -0.0610485395, -0.0627905195, -0.0645323083,-0.0662739004, + -0.0680152907, -0.0697564737, -0.0714974443, -0.0732381971,-0.0749787268, + -0.0767190281, -0.0784590957, -0.0801989243, -0.0819385086,-0.0836778433, + -0.0854169231, -0.0871557427, -0.0888942969, -0.0906325802,-0.0923705874, + -0.0941083133, -0.0958457525, -0.0975828998, -0.0993197497,-0.1010562972, + -0.1027925368, -0.1045284633, -0.1062640713, -0.1079993557,-0.1097343111, + -0.1114689322, -0.1132032138, -0.1149371505, -0.1166707371,-0.1184039683, + -0.1201368388, -0.1218693434, -0.1236014767, -0.1253332336,-0.1270646086, + -0.1287955966, -0.1305261922, -0.1322563903, -0.1339861854,-0.1357155724, + -0.1374445460, -0.1391731010, -0.1409012319, -0.1426289337,-0.1443562010, + -0.1460830286, -0.1478094111, -0.1495353434, -0.1512608202,-0.1529858363, + -0.1547103863, -0.1564344650, -0.1581580673, -0.1598811877,-0.1616038211, + -0.1633259622, -0.1650476059, -0.1667687467, -0.1684893796,-0.1702094992, + -0.1719291003, -0.1736481777, -0.1753667261, -0.1770847403,-0.1788022151, + -0.1805191453, -0.1822355255, -0.1839513506, -0.1856666154,-0.1873813146, + -0.1890954430, -0.1908089954, -0.1925219665, -0.1942343512,-0.1959461442, + -0.1976573404, -0.1993679344, -0.2010779211, -0.2027872954,-0.2044960518, + -0.2062041854, -0.2079116908, -0.2096185629, -0.2113247965,-0.2130303863, + -0.2147353272, -0.2164396139, -0.2181432414, -0.2198462044,-0.2215484976, + -0.2232501160, -0.2249510543, -0.2266513074, -0.2283508701,-0.2300497372, + -0.2317479035, -0.2334453639, -0.2351421131, -0.2368381461,-0.2385334576, + -0.2402280425, -0.2419218956, -0.2436150118, -0.2453073859,-0.2469990127, + -0.2486898872, -0.2503800041, -0.2520693582, -0.2537579446,-0.2554457579, + -0.2571327932, -0.2588190451, -0.2605045086, -0.2621891786,-0.2638730500, + -0.2655561175, -0.2672383761, -0.2689198206, -0.2706004460,-0.2722802470, + -0.2739592187, -0.2756373558, -0.2773146533, -0.2789911060,-0.2806667089, + -0.2823414568, -0.2840153447, -0.2856883674, -0.2873605198,-0.2890317969, + -0.2907021936, -0.2923717047, -0.2940403252, -0.2957080500,-0.2973748741, + -0.2990407923, -0.3007057995, -0.3023698908, -0.3040330609,-0.3056953050, + -0.3073566178, -0.3090169944, -0.3106764296, -0.3123349185,-0.3139924560, + -0.3156490369, -0.3173046564, -0.3189593093, -0.3206129906,-0.3222656952, + -0.3239174182, -0.3255681545, -0.3272178990, -0.3288666467,-0.3305143927, + -0.3321611319, -0.3338068592, -0.3354515698, -0.3370952584,-0.3387379202, + -0.3403795502, -0.3420201433, -0.3436596946, -0.3452981990,-0.3469356516, + -0.3485720473, -0.3502073813, -0.3518416484, -0.3534748438,-0.3551069624, + -0.3567379993, -0.3583679495, -0.3599968081, -0.3616245701,-0.3632512305, + -0.3648767843, -0.3665012267, -0.3681245527, -0.3697467573,-0.3713678356, + -0.3729877826, -0.3746065934, -0.3762242631, -0.3778407868,-0.3794561595, + -0.3810703764, -0.3826834324, -0.3842953227, -0.3859060423,-0.3875155865, + -0.3891239501, -0.3907311285, -0.3923371166, -0.3939419096,-0.3955455026, + -0.3971478906, -0.3987490689, -0.4003490326, -0.4019477767,-0.4035452964, + -0.4051415868, -0.4067366431, -0.4083304604, -0.4099230338,-0.4115143586, + -0.4131044298, -0.4146932427, -0.4162807923, -0.4178670738,-0.4194520824, + -0.4210358134, -0.4226182617, -0.4241994227, -0.4257792916,-0.4273578634, + -0.4289351334, -0.4305110968, -0.4320857488, -0.4336590846,-0.4352310994, + -0.4368017884, -0.4383711468, -0.4399391699, -0.4415058528,-0.4430711908, + -0.4446351792, -0.4461978131, -0.4477590878, -0.4493189986,-0.4508775407, + -0.4524347093, -0.4539904997, -0.4555449072, -0.4570979271,-0.4586495545, + -0.4601997848, -0.4617486132, -0.4632960351, -0.4648420457,-0.4663866403, + -0.4679298143, -0.4694715628, -0.4710118812, -0.4725507649,-0.4740882090, + -0.4756242091, -0.4771587603, -0.4786918579, -0.4802234974,-0.4817536741, + -0.4832823833, -0.4848096202, -0.4863353804, -0.4878596591,-0.4893824517, + -0.4909037536, -0.4924235601, -0.4939418666, -0.4954586684,-0.4969739610, + -0.4984877398, -0.5000000000, -0.5015107372, -0.5030199466,-0.5045276238, + -0.5060337641, -0.5075383630, -0.5090414158, -0.5105429179,-0.5120428649, + -0.5135412521, -0.5150380749, -0.5165333289, -0.5180270094,-0.5195191119, + -0.5210096318, -0.5224985647, -0.5239859060, -0.5254716511,-0.5269557955, + -0.5284383347, -0.5299192642, -0.5313985795, -0.5328762761,-0.5343523494, + -0.5358267950, -0.5372996083, -0.5387707850, -0.5402403205,-0.5417082103, + -0.5431744500, -0.5446390350, -0.5461019610, -0.5475632235,-0.5490228180, + -0.5504807401, -0.5519369853, -0.5533915492, -0.5548444274,-0.5562956155, + -0.5577451090, -0.5591929035, -0.5606389946, -0.5620833779,-0.5635260489, + -0.5649670034, -0.5664062369, -0.5678437451, -0.5692795234,-0.5707135677, + -0.5721458734, -0.5735764364, -0.5750052520, -0.5764323162,-0.5778576244, + -0.5792811723, -0.5807029557, -0.5821229702, -0.5835412114,-0.5849576750, + -0.5863723567, -0.5877852523, -0.5891963574, -0.5906056676,-0.5920131788, + -0.5934188866, -0.5948227868, -0.5962248750, -0.5976251470,-0.5990235985, + -0.6004202253, -0.6018150232, -0.6032079877, -0.6045991149,-0.6059884003, + -0.6073758397, -0.6087614290, -0.6101451639, -0.6115270402,-0.6129070537, + -0.6142852001, -0.6156614753, -0.6170358751, -0.6184083954,-0.6197790318, + -0.6211477803, -0.6225146366, -0.6238795967, -0.6252426563,-0.6266038114, + -0.6279630576, -0.6293203910, -0.6306758074, -0.6320293027,-0.6333808726, + -0.6347305132, -0.6360782203, -0.6374239897, -0.6387678175,-0.6401096995, + -0.6414496316, -0.6427876097, -0.6441236298, -0.6454576877,-0.6467897795, + -0.6481199011, -0.6494480483, -0.6507742173, -0.6520984038,-0.6534206040, + -0.6547408137, -0.6560590290, -0.6573752458, -0.6586894601,-0.6600016680, + -0.6613118653, -0.6626200482, -0.6639262127, -0.6652303547,-0.6665324702, + -0.6678325555, -0.6691306064, -0.6704266190, -0.6717205893,-0.6730125135, + -0.6743023876, -0.6755902076, -0.6768759697, -0.6781596699,-0.6794413043, + -0.6807208690, -0.6819983601, -0.6832737737, -0.6845471059,-0.6858183529, + -0.6870875108, -0.6883545757, -0.6896195437, -0.6908824111,-0.6921431739, + -0.6934018283, -0.6946583705, -0.6959127966, -0.6971651029,-0.6984152854, + -0.6996633405, -0.7009092643, -0.7021530530, -0.7033947028,-0.7046342100, + -0.7058715707, -0.7071067812, -0.7083398377, -0.7095707365,-0.7107994739, + -0.7120260460, -0.7132504492, -0.7144726796, -0.7156927337,-0.7169106077, + -0.7181262978, -0.7193398003, -0.7205511117, -0.7217602281,-0.7229671459, + -0.7241718614, -0.7253743710, -0.7265746710, -0.7277727577,-0.7289686274, + -0.7301622766, -0.7313537016, -0.7325428988, -0.7337298645,-0.7349145951, + -0.7360970871, -0.7372773368, -0.7384553406, -0.7396310950,-0.7408045963, + -0.7419758410, -0.7431448255, -0.7443115462, -0.7454759997,-0.7466381823, + -0.7477980905, -0.7489557208, -0.7501110696, -0.7512641335,-0.7524149089, + -0.7535633923, -0.7547095802, -0.7558534692, -0.7569950557,-0.7581343362, + -0.7592713073, -0.7604059656, -0.7615383075, -0.7626683297,-0.7637960286, + -0.7649214009, -0.7660444431, -0.7671651518, -0.7682835236,-0.7693995550, + -0.7705132428, -0.7716245834, -0.7727335735, -0.7738402097,-0.7749444887, + -0.7760464071, -0.7771459615, -0.7782431485, -0.7793379649,-0.7804304073, + -0.7815204724, -0.7826081569, -0.7836934573, -0.7847763705,-0.7858568932, + -0.7869350220, -0.7880107536, -0.7890840848, -0.7901550124,-0.7912235330, + -0.7922896434, -0.7933533403, -0.7944146205, -0.7954734809,-0.7965299180, + -0.7975839288, -0.7986355100, -0.7996846585, -0.8007313709,-0.8017756442, + -0.8028174752, -0.8038568606, -0.8048937974, -0.8059282822,-0.8069603121, + -0.8079898839, -0.8090169944, -0.8100416404, -0.8110638190,-0.8120835269, + -0.8131007610, -0.8141155184, -0.8151277957, -0.8161375901,-0.8171448983, + -0.8181497174, -0.8191520443, -0.8201518759, -0.8211492091,-0.8221440410, + -0.8231363685, -0.8241261886, -0.8251134983, -0.8260982945,-0.8270805743, + -0.8280603346, -0.8290375726, -0.8300122851, -0.8309844693,-0.8319541221, + -0.8329212407, -0.8338858221, -0.8348478633, -0.8358073614,-0.8367643135, + -0.8377187166, -0.8386705679, -0.8396198645, -0.8405666035,-0.8415107819, + -0.8424523970, -0.8433914458, -0.8443279255, -0.8452618332,-0.8461931661, + -0.8471219214, -0.8480480962, -0.8489716876, -0.8498926930,-0.8508111094, + -0.8517269341, -0.8526401644, -0.8535507973, -0.8544588301,-0.8553642602, + -0.8562670846, -0.8571673007, -0.8580649057, -0.8589598969,-0.8598522716, + -0.8607420270, -0.8616291604, -0.8625136692, -0.8633955506,-0.8642748020, + -0.8651514206, -0.8660254038, -0.8668967489, -0.8677654534,-0.8686315144, + -0.8694949295, -0.8703556959, -0.8712138111, -0.8720692724,-0.8729220773, + -0.8737722230, -0.8746197071, -0.8754645270, -0.8763066800,-0.8771461637, + -0.8779829754, -0.8788171127, -0.8796485729, -0.8804773535,-0.8813034521, + -0.8821268660, -0.8829475929, -0.8837656301, -0.8845809752,-0.8853936258, + -0.8862035792, -0.8870108332, -0.8878153851, -0.8886172327,-0.8894163733, + -0.8902128046, -0.8910065242, -0.8917975296, -0.8925858185,-0.8933713883, + -0.8941542368, -0.8949343616, -0.8957117602, -0.8964864304,-0.8972583697, + -0.8980275758, -0.8987940463, -0.8995577790, -0.9003187714,-0.9010770213, + -0.9018325264, -0.9025852843, -0.9033352929, -0.9040825497,-0.9048270525, + -0.9055687990, -0.9063077870, -0.9070440143, -0.9077774785,-0.9085081775, + -0.9092361090, -0.9099612709, -0.9106836608, -0.9114032766,-0.9121201162, + -0.9128341772, -0.9135454576, -0.9142539552, -0.9149596678,-0.9156625933, + -0.9163627296, -0.9170600744, -0.9177546257, -0.9184463813,-0.9191353393, + -0.9198214973, -0.9205048535, -0.9211854056, -0.9218631516,-0.9225380895, + -0.9232102171, -0.9238795325, -0.9245460336, -0.9252097184,-0.9258705848, + -0.9265286309, -0.9271838546, -0.9278362539, -0.9284858269,-0.9291325715, + -0.9297764859, -0.9304175680, -0.9310558159, -0.9316912276,-0.9323238012, + -0.9329535348, -0.9335804265, -0.9342044743, -0.9348256764,-0.9354440308, + -0.9360595357, -0.9366721892, -0.9372819895, -0.9378889346,-0.9384930228, + -0.9390942521, -0.9396926208, -0.9402881270, -0.9408807690,-0.9414705448, + -0.9420574528, -0.9426414911, -0.9432226579, -0.9438009516,-0.9443763702, + -0.9449489122, -0.9455185756, -0.9460853588, -0.9466492601,-0.9472102777, + -0.9477684100, -0.9483236552, -0.9488760116, -0.9494254776,-0.9499720515, + -0.9505157316, -0.9510565163, -0.9515944039, -0.9521293927,-0.9526614813, + -0.9531906678, -0.9537169507, -0.9542403285, -0.9547607995,-0.9552783621, + -0.9557930148, -0.9563047560, -0.9568135841, -0.9573194975,-0.9578224948, + -0.9583225745, -0.9588197349, -0.9593139745, -0.9598052920,-0.9602936857, + -0.9607791542, -0.9612616959, -0.9617413095, -0.9622179935,-0.9626917464, + -0.9631625668, -0.9636304532, -0.9640954042, -0.9645574185,-0.9650164945, + -0.9654726309, -0.9659258263, -0.9663760793, -0.9668233886,-0.9672677528, + -0.9677091705, -0.9681476404, -0.9685831611, -0.9690157314,-0.9694453499, + -0.9698720153, -0.9702957263, -0.9707164816, -0.9711342799,-0.9715491200, + -0.9719610006, -0.9723699204, -0.9727758782, -0.9731788728,-0.9735789029, + -0.9739759673, -0.9743700648, -0.9747611942, -0.9751493543,-0.9755345439, + -0.9759167619, -0.9762960071, -0.9766722783, -0.9770455744,-0.9774158943, + -0.9777832368, -0.9781476007, -0.9785089851, -0.9788673888,-0.9792228106, + -0.9795752496, -0.9799247046, -0.9802711746, -0.9806146585,-0.9809551553, + -0.9812926640, -0.9816271834, -0.9819587127, -0.9822872507,-0.9826127965, + -0.9829353491, -0.9832549076, -0.9835714708, -0.9838850379,-0.9841956080, + -0.9845031800, -0.9848077530, -0.9851093262, -0.9854078985,-0.9857034691, + -0.9859960371, -0.9862856015, -0.9865721616, -0.9868557164,-0.9871362651, + -0.9874138068, -0.9876883406, -0.9879598658, -0.9882283814,-0.9884938868, + -0.9887563810, -0.9890158634, -0.9892723330, -0.9895257891,-0.9897762309, + -0.9900236577, -0.9902680687, -0.9905094632, -0.9907478405,-0.9909831997, + -0.9912155403, -0.9914448614, -0.9916711624, -0.9918944426,-0.9921147013, + -0.9923319379, -0.9925461516, -0.9927573419, -0.9929655081,-0.9931706495, + -0.9933727656, -0.9935718557, -0.9937679192, -0.9939609555,-0.9941509640, + -0.9943379441, -0.9945218954, -0.9947028171, -0.9948807088,-0.9950555700, + -0.9952274000, -0.9953961984, -0.9955619646, -0.9957246982,-0.9958843986, + -0.9960410654, -0.9961946981, -0.9963452962, -0.9964928592,-0.9966373868, + -0.9967788785, -0.9969173337, -0.9970527522, -0.9971851335,-0.9973144772, + -0.9974407829, -0.9975640503, -0.9976842788, -0.9978014683,-0.9979156183, + -0.9980267284, -0.9981347984, -0.9982398279, -0.9983418166,-0.9984407642, + -0.9985366703, -0.9986295348, -0.9987193572, -0.9988061373,-0.9988898750, + -0.9989705698, -0.9990482216, -0.9991228301, -0.9991943951,-0.9992629164, + -0.9993283938, -0.9993908270, -0.9994502159, -0.9995065604,-0.9995598601, + -0.9996101150, -0.9996573250, -0.9997014898, -0.9997426093,-0.9997806835, + -0.9998157121, -0.9998476952, -0.9998766325, -0.9999025240,-0.9999253697, + -0.9999451694, -0.9999619231, -0.9999756307, -0.9999862922,-0.9999939077, + -0.9999984769, -1.0000000000, -0.9999984769, -0.9999939077,-0.9999862922, + -0.9999756307, -0.9999619231, -0.9999451694, -0.9999253697,-0.9999025240, + -0.9998766325, -0.9998476952, -0.9998157121, -0.9997806835,-0.9997426093, + -0.9997014898, -0.9996573250, -0.9996101150, -0.9995598601,-0.9995065604, + -0.9994502159, -0.9993908270, -0.9993283938, -0.9992629164,-0.9991943951, + -0.9991228301, -0.9990482216, -0.9989705698, -0.9988898750,-0.9988061373, + -0.9987193572, -0.9986295348, -0.9985366703, -0.9984407642,-0.9983418166, + -0.9982398279, -0.9981347984, -0.9980267284, -0.9979156183,-0.9978014683, + -0.9976842788, -0.9975640503, -0.9974407829, -0.9973144772,-0.9971851335, + -0.9970527522, -0.9969173337, -0.9967788785, -0.9966373868,-0.9964928592, + -0.9963452962, -0.9961946981, -0.9960410654, -0.9958843986,-0.9957246982, + -0.9955619646, -0.9953961984, -0.9952274000, -0.9950555700,-0.9948807088, + -0.9947028171, -0.9945218954, -0.9943379441, -0.9941509640,-0.9939609555, + -0.9937679192, -0.9935718557, -0.9933727656, -0.9931706495,-0.9929655081, + -0.9927573419, -0.9925461516, -0.9923319379, -0.9921147013,-0.9918944426, + -0.9916711624, -0.9914448614, -0.9912155403, -0.9909831997,-0.9907478405, + -0.9905094632, -0.9902680687, -0.9900236577, -0.9897762309,-0.9895257891, + -0.9892723330, -0.9890158634, -0.9887563810, -0.9884938868,-0.9882283814, + -0.9879598658, -0.9876883406, -0.9874138068, -0.9871362651,-0.9868557164, + -0.9865721616, -0.9862856015, -0.9859960371, -0.9857034691,-0.9854078985, + -0.9851093262, -0.9848077530, -0.9845031800, -0.9841956080,-0.9838850379, + -0.9835714708, -0.9832549076, -0.9829353491, -0.9826127965,-0.9822872507, + -0.9819587127, -0.9816271834, -0.9812926640, -0.9809551553,-0.9806146585, + -0.9802711746, -0.9799247046, -0.9795752496, -0.9792228106,-0.9788673888, + -0.9785089851, -0.9781476007, -0.9777832368, -0.9774158943,-0.9770455744, + -0.9766722783, -0.9762960071, -0.9759167619, -0.9755345439,-0.9751493543, + -0.9747611942, -0.9743700648, -0.9739759673, -0.9735789029,-0.9731788728, + -0.9727758782, -0.9723699204, -0.9719610006, -0.9715491200,-0.9711342799, + -0.9707164816, -0.9702957263, -0.9698720153, -0.9694453499,-0.9690157314, + -0.9685831611, -0.9681476404, -0.9677091705, -0.9672677528,-0.9668233886, + -0.9663760793, -0.9659258263, -0.9654726309, -0.9650164945,-0.9645574185, + -0.9640954042, -0.9636304532, -0.9631625668, -0.9626917464,-0.9622179935, + -0.9617413095, -0.9612616959, -0.9607791542, -0.9602936857,-0.9598052920, + -0.9593139745, -0.9588197349, -0.9583225745, -0.9578224948,-0.9573194975, + -0.9568135841, -0.9563047560, -0.9557930148, -0.9552783621,-0.9547607995, + -0.9542403285, -0.9537169507, -0.9531906678, -0.9526614813,-0.9521293927, + -0.9515944039, -0.9510565163, -0.9505157316, -0.9499720515,-0.9494254776, + -0.9488760116, -0.9483236552, -0.9477684100, -0.9472102777,-0.9466492601, + -0.9460853588, -0.9455185756, -0.9449489122, -0.9443763702,-0.9438009516, + -0.9432226579, -0.9426414911, -0.9420574528, -0.9414705448,-0.9408807690, + -0.9402881270, -0.9396926208, -0.9390942521, -0.9384930228,-0.9378889346, + -0.9372819895, -0.9366721892, -0.9360595357, -0.9354440308,-0.9348256764, + -0.9342044743, -0.9335804265, -0.9329535348, -0.9323238012,-0.9316912276, + -0.9310558159, -0.9304175680, -0.9297764859, -0.9291325715,-0.9284858269, + -0.9278362539, -0.9271838546, -0.9265286309, -0.9258705848,-0.9252097184, + -0.9245460336, -0.9238795325, -0.9232102171, -0.9225380895,-0.9218631516, + -0.9211854056, -0.9205048535, -0.9198214973, -0.9191353393,-0.9184463813, + -0.9177546257, -0.9170600744, -0.9163627296, -0.9156625933,-0.9149596678, + -0.9142539552, -0.9135454576, -0.9128341772, -0.9121201162,-0.9114032766, + -0.9106836608, -0.9099612709, -0.9092361090, -0.9085081775,-0.9077774785, + -0.9070440143, -0.9063077870, -0.9055687990, -0.9048270525,-0.9040825497, + -0.9033352929, -0.9025852843, -0.9018325264, -0.9010770213,-0.9003187714, + -0.8995577790, -0.8987940463, -0.8980275758, -0.8972583697,-0.8964864304, + -0.8957117602, -0.8949343616, -0.8941542368, -0.8933713883,-0.8925858185, + -0.8917975296, -0.8910065242, -0.8902128046, -0.8894163733,-0.8886172327, + -0.8878153851, -0.8870108332, -0.8862035792, -0.8853936258,-0.8845809752, + -0.8837656301, -0.8829475929, -0.8821268660, -0.8813034521,-0.8804773535, + -0.8796485729, -0.8788171127, -0.8779829754, -0.8771461637,-0.8763066800, + -0.8754645270, -0.8746197071, -0.8737722230, -0.8729220773,-0.8720692724, + -0.8712138111, -0.8703556959, -0.8694949295, -0.8686315144,-0.8677654534, + -0.8668967489, -0.8660254038, -0.8651514206, -0.8642748020,-0.8633955506, + -0.8625136692, -0.8616291604, -0.8607420270, -0.8598522716,-0.8589598969, + -0.8580649057, -0.8571673007, -0.8562670846, -0.8553642602,-0.8544588301, + -0.8535507973, -0.8526401644, -0.8517269341, -0.8508111094,-0.8498926930, + -0.8489716876, -0.8480480962, -0.8471219214, -0.8461931661,-0.8452618332, + -0.8443279255, -0.8433914458, -0.8424523970, -0.8415107819,-0.8405666035, + -0.8396198645, -0.8386705679, -0.8377187166, -0.8367643135,-0.8358073614, + -0.8348478633, -0.8338858221, -0.8329212407, -0.8319541221,-0.8309844693, + -0.8300122851, -0.8290375726, -0.8280603346, -0.8270805743,-0.8260982945, + -0.8251134983, -0.8241261886, -0.8231363685, -0.8221440410,-0.8211492091, + -0.8201518759, -0.8191520443, -0.8181497174, -0.8171448983,-0.8161375901, + -0.8151277957, -0.8141155184, -0.8131007610, -0.8120835269,-0.8110638190, + -0.8100416404, -0.8090169944, -0.8079898839, -0.8069603121,-0.8059282822, + -0.8048937974, -0.8038568606, -0.8028174752, -0.8017756442,-0.8007313709, + -0.7996846585, -0.7986355100, -0.7975839288, -0.7965299180,-0.7954734809, + -0.7944146205, -0.7933533403, -0.7922896434, -0.7912235330,-0.7901550124, + -0.7890840848, -0.7880107536, -0.7869350220, -0.7858568932,-0.7847763705, + -0.7836934573, -0.7826081569, -0.7815204724, -0.7804304073,-0.7793379649, + -0.7782431485, -0.7771459615, -0.7760464071, -0.7749444887,-0.7738402097, + -0.7727335735, -0.7716245834, -0.7705132428, -0.7693995550,-0.7682835236, + -0.7671651518, -0.7660444431, -0.7649214009, -0.7637960286,-0.7626683297, + -0.7615383075, -0.7604059656, -0.7592713073, -0.7581343362,-0.7569950557, + -0.7558534692, -0.7547095802, -0.7535633923, -0.7524149089,-0.7512641335, + -0.7501110696, -0.7489557208, -0.7477980905, -0.7466381823,-0.7454759997, + -0.7443115462, -0.7431448255, -0.7419758410, -0.7408045963,-0.7396310950, + -0.7384553406, -0.7372773368, -0.7360970871, -0.7349145951,-0.7337298645, + -0.7325428988, -0.7313537016, -0.7301622766, -0.7289686274,-0.7277727577, + -0.7265746710, -0.7253743710, -0.7241718614, -0.7229671459,-0.7217602281, + -0.7205511117, -0.7193398003, -0.7181262978, -0.7169106077,-0.7156927337, + -0.7144726796, -0.7132504492, -0.7120260460, -0.7107994739,-0.7095707365, + -0.7083398377, -0.7071067812, -0.7058715707, -0.7046342100,-0.7033947028, + -0.7021530530, -0.7009092643, -0.6996633405, -0.6984152854,-0.6971651029, + -0.6959127966, -0.6946583705, -0.6934018283, -0.6921431739,-0.6908824111, + -0.6896195437, -0.6883545757, -0.6870875108, -0.6858183529,-0.6845471059, + -0.6832737737, -0.6819983601, -0.6807208690, -0.6794413043,-0.6781596699, + -0.6768759697, -0.6755902076, -0.6743023876, -0.6730125135,-0.6717205893, + -0.6704266190, -0.6691306064, -0.6678325555, -0.6665324702,-0.6652303547, + -0.6639262127, -0.6626200482, -0.6613118653, -0.6600016680,-0.6586894601, + -0.6573752458, -0.6560590290, -0.6547408137, -0.6534206040,-0.6520984038, + -0.6507742173, -0.6494480483, -0.6481199011, -0.6467897795,-0.6454576877, + -0.6441236298, -0.6427876097, -0.6414496316, -0.6401096995,-0.6387678175, + -0.6374239897, -0.6360782203, -0.6347305132, -0.6333808726,-0.6320293027, + -0.6306758074, -0.6293203910, -0.6279630576, -0.6266038114,-0.6252426563, + -0.6238795967, -0.6225146366, -0.6211477803, -0.6197790318,-0.6184083954, + -0.6170358751, -0.6156614753, -0.6142852001, -0.6129070537,-0.6115270402, + -0.6101451639, -0.6087614290, -0.6073758397, -0.6059884003,-0.6045991149, + -0.6032079877, -0.6018150232, -0.6004202253, -0.5990235985,-0.5976251470, + -0.5962248750, -0.5948227868, -0.5934188866, -0.5920131788,-0.5906056676, + -0.5891963574, -0.5877852523, -0.5863723567, -0.5849576750,-0.5835412114, + -0.5821229702, -0.5807029557, -0.5792811723, -0.5778576244,-0.5764323162, + -0.5750052520, -0.5735764364, -0.5721458734, -0.5707135677,-0.5692795234, + -0.5678437451, -0.5664062369, -0.5649670034, -0.5635260489,-0.5620833779, + -0.5606389946, -0.5591929035, -0.5577451090, -0.5562956155,-0.5548444274, + -0.5533915492, -0.5519369853, -0.5504807401, -0.5490228180,-0.5475632235, + -0.5461019610, -0.5446390350, -0.5431744500, -0.5417082103,-0.5402403205, + -0.5387707850, -0.5372996083, -0.5358267950, -0.5343523494,-0.5328762761, + -0.5313985795, -0.5299192642, -0.5284383347, -0.5269557955,-0.5254716511, + -0.5239859060, -0.5224985647, -0.5210096318, -0.5195191119,-0.5180270094, + -0.5165333289, -0.5150380749, -0.5135412521, -0.5120428649,-0.5105429179, + -0.5090414158, -0.5075383630, -0.5060337641, -0.5045276238,-0.5030199466, + -0.5015107372, -0.5000000000, -0.4984877398, -0.4969739610,-0.4954586684, + -0.4939418666, -0.4924235601, -0.4909037536, -0.4893824517,-0.4878596591, + -0.4863353804, -0.4848096202, -0.4832823833, -0.4817536741,-0.4802234974, + -0.4786918579, -0.4771587603, -0.4756242091, -0.4740882090,-0.4725507649, + -0.4710118812, -0.4694715628, -0.4679298143, -0.4663866403,-0.4648420457, + -0.4632960351, -0.4617486132, -0.4601997848, -0.4586495545,-0.4570979271, + -0.4555449072, -0.4539904997, -0.4524347093, -0.4508775407,-0.4493189986, + -0.4477590878, -0.4461978131, -0.4446351792, -0.4430711908,-0.4415058528, + -0.4399391699, -0.4383711468, -0.4368017884, -0.4352310994,-0.4336590846, + -0.4320857488, -0.4305110968, -0.4289351334, -0.4273578634,-0.4257792916, + -0.4241994227, -0.4226182617, -0.4210358134, -0.4194520824,-0.4178670738, + -0.4162807923, -0.4146932427, -0.4131044298, -0.4115143586,-0.4099230338, + -0.4083304604, -0.4067366431, -0.4051415868, -0.4035452964,-0.4019477767, + -0.4003490326, -0.3987490689, -0.3971478906, -0.3955455026,-0.3939419096, + -0.3923371166, -0.3907311285, -0.3891239501, -0.3875155865,-0.3859060423, + -0.3842953227, -0.3826834324, -0.3810703764, -0.3794561595,-0.3778407868, + -0.3762242631, -0.3746065934, -0.3729877826, -0.3713678356,-0.3697467573, + -0.3681245527, -0.3665012267, -0.3648767843, -0.3632512305,-0.3616245701, + -0.3599968081, -0.3583679495, -0.3567379993, -0.3551069624,-0.3534748438, + -0.3518416484, -0.3502073813, -0.3485720473, -0.3469356516,-0.3452981990, + -0.3436596946, -0.3420201433, -0.3403795502, -0.3387379202,-0.3370952584, + -0.3354515698, -0.3338068592, -0.3321611319, -0.3305143927,-0.3288666467, + -0.3272178990, -0.3255681545, -0.3239174182, -0.3222656952,-0.3206129906, + -0.3189593093, -0.3173046564, -0.3156490369, -0.3139924560,-0.3123349185, + -0.3106764296, -0.3090169944, -0.3073566178, -0.3056953050,-0.3040330609, + -0.3023698908, -0.3007057995, -0.2990407923, -0.2973748741,-0.2957080500, + -0.2940403252, -0.2923717047, -0.2907021936, -0.2890317969,-0.2873605198, + -0.2856883674, -0.2840153447, -0.2823414568, -0.2806667089,-0.2789911060, + -0.2773146533, -0.2756373558, -0.2739592187, -0.2722802470,-0.2706004460, + -0.2689198206, -0.2672383761, -0.2655561175, -0.2638730500,-0.2621891786, + -0.2605045086, -0.2588190451, -0.2571327932, -0.2554457579,-0.2537579446, + -0.2520693582, -0.2503800041, -0.2486898872, -0.2469990127,-0.2453073859, + -0.2436150118, -0.2419218956, -0.2402280425, -0.2385334576,-0.2368381461, + -0.2351421131, -0.2334453639, -0.2317479035, -0.2300497372,-0.2283508701, + -0.2266513074, -0.2249510543, -0.2232501160, -0.2215484976,-0.2198462044, + -0.2181432414, -0.2164396139, -0.2147353272, -0.2130303863,-0.2113247965, + -0.2096185629, -0.2079116908, -0.2062041854, -0.2044960518,-0.2027872954, + -0.2010779211, -0.1993679344, -0.1976573404, -0.1959461442,-0.1942343512, + -0.1925219665, -0.1908089954, -0.1890954430, -0.1873813146,-0.1856666154, + -0.1839513506, -0.1822355255, -0.1805191453, -0.1788022151,-0.1770847403, + -0.1753667261, -0.1736481777, -0.1719291003, -0.1702094992,-0.1684893796, + -0.1667687467, -0.1650476059, -0.1633259622, -0.1616038211,-0.1598811877, + -0.1581580673, -0.1564344650, -0.1547103863, -0.1529858363,-0.1512608202, + -0.1495353434, -0.1478094111, -0.1460830286, -0.1443562010,-0.1426289337, + -0.1409012319, -0.1391731010, -0.1374445460, -0.1357155724,-0.1339861854, + -0.1322563903, -0.1305261922, -0.1287955966, -0.1270646086,-0.1253332336, + -0.1236014767, -0.1218693434, -0.1201368388, -0.1184039683,-0.1166707371, + -0.1149371505, -0.1132032138, -0.1114689322, -0.1097343111,-0.1079993557, + -0.1062640713, -0.1045284633, -0.1027925368, -0.1010562972,-0.0993197497, + -0.0975828998, -0.0958457525, -0.0941083133, -0.0923705874,-0.0906325802, + -0.0888942969, -0.0871557427, -0.0854169231, -0.0836778433,-0.0819385086, + -0.0801989243, -0.0784590957, -0.0767190281, -0.0749787268,-0.0732381971, + -0.0714974443, -0.0697564737, -0.0680152907, -0.0662739004,-0.0645323083, + -0.0627905195, -0.0610485395, -0.0593063736, -0.0575640270,-0.0558215050, + -0.0540788130, -0.0523359562, -0.0505929401, -0.0488497698,-0.0471064507, + -0.0453629881, -0.0436193874, -0.0418756537, -0.0401317925,-0.0383878091, + -0.0366437087, -0.0348994967, -0.0331551784, -0.0314107591,-0.0296662441, + -0.0279216387, -0.0261769483, -0.0244321782, -0.0226873336,-0.0209424199, + -0.0191974424, -0.0174524064, -0.0157073173, -0.0139621803,-0.0122170008, + -0.0104717841, -0.0087265355, -0.0069812603, -0.0052359638,-0.0034906514, -0.0017453284 }; double fcosinus[3600] = { 1.0000000000, 0.9999984769, 0.9999939077, 0.9999862922, - 0.9999756307, 0.9999619231, 0.9999451694, 0.9999253697, 0.9999025240, - 0.9998766325, 0.9998476952, 0.9998157121, 0.9997806835, 0.9997426093, - 0.9997014898, 0.9996573250, 0.9996101150, 0.9995598601, 0.9995065604, - 0.9994502159, 0.9993908270, 0.9993283938, 0.9992629164, 0.9991943951, - 0.9991228301, 0.9990482216, 0.9989705698, 0.9988898750, 0.9988061373, - 0.9987193572, 0.9986295348, 0.9985366703, 0.9984407642, 0.9983418166, - 0.9982398279, 0.9981347984, 0.9980267284, 0.9979156183, 0.9978014683, - 0.9976842788, 0.9975640503, 0.9974407829, 0.9973144772, 0.9971851335, - 0.9970527522, 0.9969173337, 0.9967788785, 0.9966373868, 0.9964928592, - 0.9963452962, 0.9961946981, 0.9960410654, 0.9958843986, 0.9957246982, - 0.9955619646, 0.9953961984, 0.9952274000, 0.9950555700, 0.9948807088, - 0.9947028171, 0.9945218954, 0.9943379441, 0.9941509640, 0.9939609555, - 0.9937679192, 0.9935718557, 0.9933727656, 0.9931706495, 0.9929655081, - 0.9927573419, 0.9925461516, 0.9923319379, 0.9921147013, 0.9918944426, - 0.9916711624, 0.9914448614, 0.9912155403, 0.9909831997, 0.9907478405, - 0.9905094632, 0.9902680687, 0.9900236577, 0.9897762309, 0.9895257891, - 0.9892723330, 0.9890158634, 0.9887563810, 0.9884938868, 0.9882283814, - 0.9879598658, 0.9876883406, 0.9874138068, 0.9871362651, 0.9868557164, - 0.9865721616, 0.9862856015, 0.9859960371, 0.9857034691, 0.9854078985, - 0.9851093262, 0.9848077530, 0.9845031800, 0.9841956080, 0.9838850379, - 0.9835714708, 0.9832549076, 0.9829353491, 0.9826127965, 0.9822872507, - 0.9819587127, 0.9816271834, 0.9812926640, 0.9809551553, 0.9806146585, - 0.9802711746, 0.9799247046, 0.9795752496, 0.9792228106, 0.9788673888, - 0.9785089851, 0.9781476007, 0.9777832368, 0.9774158943, 0.9770455744, - 0.9766722783, 0.9762960071, 0.9759167619, 0.9755345439, 0.9751493543, - 0.9747611942, 0.9743700648, 0.9739759673, 0.9735789029, 0.9731788728, - 0.9727758782, 0.9723699204, 0.9719610006, 0.9715491200, 0.9711342799, - 0.9707164816, 0.9702957263, 0.9698720153, 0.9694453499, 0.9690157314, - 0.9685831611, 0.9681476404, 0.9677091705, 0.9672677528, 0.9668233886, - 0.9663760793, 0.9659258263, 0.9654726309, 0.9650164945, 0.9645574185, - 0.9640954042, 0.9636304532, 0.9631625668, 0.9626917464, 0.9622179935, - 0.9617413095, 0.9612616959, 0.9607791542, 0.9602936857, 0.9598052920, - 0.9593139745, 0.9588197349, 0.9583225745, 0.9578224948, 0.9573194975, - 0.9568135841, 0.9563047560, 0.9557930148, 0.9552783621, 0.9547607995, - 0.9542403285, 0.9537169507, 0.9531906678, 0.9526614813, 0.9521293927, - 0.9515944039, 0.9510565163, 0.9505157316, 0.9499720515, 0.9494254776, - 0.9488760116, 0.9483236552, 0.9477684100, 0.9472102777, 0.9466492601, - 0.9460853588, 0.9455185756, 0.9449489122, 0.9443763702, 0.9438009516, - 0.9432226579, 0.9426414911, 0.9420574528, 0.9414705448, 0.9408807690, - 0.9402881270, 0.9396926208, 0.9390942521, 0.9384930228, 0.9378889346, - 0.9372819895, 0.9366721892, 0.9360595357, 0.9354440308, 0.9348256764, - 0.9342044743, 0.9335804265, 0.9329535348, 0.9323238012, 0.9316912276, - 0.9310558159, 0.9304175680, 0.9297764859, 0.9291325715, 0.9284858269, - 0.9278362539, 0.9271838546, 0.9265286309, 0.9258705848, 0.9252097184, - 0.9245460336, 0.9238795325, 0.9232102171, 0.9225380895, 0.9218631516, - 0.9211854056, 0.9205048535, 0.9198214973, 0.9191353393, 0.9184463813, - 0.9177546257, 0.9170600744, 0.9163627296, 0.9156625933, 0.9149596678, - 0.9142539552, 0.9135454576, 0.9128341772, 0.9121201162, 0.9114032766, - 0.9106836608, 0.9099612709, 0.9092361090, 0.9085081775, 0.9077774785, - 0.9070440143, 0.9063077870, 0.9055687990, 0.9048270525, 0.9040825497, - 0.9033352929, 0.9025852843, 0.9018325264, 0.9010770213, 0.9003187714, - 0.8995577790, 0.8987940463, 0.8980275758, 0.8972583697, 0.8964864304, - 0.8957117602, 0.8949343616, 0.8941542368, 0.8933713883, 0.8925858185, - 0.8917975296, 0.8910065242, 0.8902128046, 0.8894163733, 0.8886172327, - 0.8878153851, 0.8870108332, 0.8862035792, 0.8853936258, 0.8845809752, - 0.8837656301, 0.8829475929, 0.8821268660, 0.8813034521, 0.8804773535, - 0.8796485729, 0.8788171127, 0.8779829754, 0.8771461637, 0.8763066800, - 0.8754645270, 0.8746197071, 0.8737722230, 0.8729220773, 0.8720692724, - 0.8712138111, 0.8703556959, 0.8694949295, 0.8686315144, 0.8677654534, - 0.8668967489, 0.8660254038, 0.8651514206, 0.8642748020, 0.8633955506, - 0.8625136692, 0.8616291604, 0.8607420270, 0.8598522716, 0.8589598969, - 0.8580649057, 0.8571673007, 0.8562670846, 0.8553642602, 0.8544588301, - 0.8535507973, 0.8526401644, 0.8517269341, 0.8508111094, 0.8498926930, - 0.8489716876, 0.8480480962, 0.8471219214, 0.8461931661, 0.8452618332, - 0.8443279255, 0.8433914458, 0.8424523970, 0.8415107819, 0.8405666035, - 0.8396198645, 0.8386705679, 0.8377187166, 0.8367643135, 0.8358073614, - 0.8348478633, 0.8338858221, 0.8329212407, 0.8319541221, 0.8309844693, - 0.8300122851, 0.8290375726, 0.8280603346, 0.8270805743, 0.8260982945, - 0.8251134983, 0.8241261886, 0.8231363685, 0.8221440410, 0.8211492091, - 0.8201518759, 0.8191520443, 0.8181497174, 0.8171448983, 0.8161375901, - 0.8151277957, 0.8141155184, 0.8131007610, 0.8120835269, 0.8110638190, - 0.8100416404, 0.8090169944, 0.8079898839, 0.8069603121, 0.8059282822, - 0.8048937974, 0.8038568606, 0.8028174752, 0.8017756442, 0.8007313709, - 0.7996846585, 0.7986355100, 0.7975839288, 0.7965299180, 0.7954734809, - 0.7944146205, 0.7933533403, 0.7922896434, 0.7912235330, 0.7901550124, - 0.7890840848, 0.7880107536, 0.7869350220, 0.7858568932, 0.7847763705, - 0.7836934573, 0.7826081569, 0.7815204724, 0.7804304073, 0.7793379649, - 0.7782431485, 0.7771459615, 0.7760464071, 0.7749444887, 0.7738402097, - 0.7727335735, 0.7716245834, 0.7705132428, 0.7693995550, 0.7682835236, - 0.7671651518, 0.7660444431, 0.7649214009, 0.7637960286, 0.7626683297, - 0.7615383075, 0.7604059656, 0.7592713073, 0.7581343362, 0.7569950557, - 0.7558534692, 0.7547095802, 0.7535633923, 0.7524149089, 0.7512641335, - 0.7501110696, 0.7489557208, 0.7477980905, 0.7466381823, 0.7454759997, - 0.7443115462, 0.7431448255, 0.7419758410, 0.7408045963, 0.7396310950, - 0.7384553406, 0.7372773368, 0.7360970871, 0.7349145951, 0.7337298645, - 0.7325428988, 0.7313537016, 0.7301622766, 0.7289686274, 0.7277727577, - 0.7265746710, 0.7253743710, 0.7241718614, 0.7229671459, 0.7217602281, - 0.7205511117, 0.7193398003, 0.7181262978, 0.7169106077, 0.7156927337, - 0.7144726796, 0.7132504492, 0.7120260460, 0.7107994739, 0.7095707365, - 0.7083398377, 0.7071067812, 0.7058715707, 0.7046342100, 0.7033947028, - 0.7021530530, 0.7009092643, 0.6996633405, 0.6984152854, 0.6971651029, - 0.6959127966, 0.6946583705, 0.6934018283, 0.6921431739, 0.6908824111, - 0.6896195437, 0.6883545757, 0.6870875108, 0.6858183529, 0.6845471059, - 0.6832737737, 0.6819983601, 0.6807208690, 0.6794413043, 0.6781596699, - 0.6768759697, 0.6755902076, 0.6743023876, 0.6730125135, 0.6717205893, - 0.6704266190, 0.6691306064, 0.6678325555, 0.6665324702, 0.6652303547, - 0.6639262127, 0.6626200482, 0.6613118653, 0.6600016680, 0.6586894601, - 0.6573752458, 0.6560590290, 0.6547408137, 0.6534206040, 0.6520984038, - 0.6507742173, 0.6494480483, 0.6481199011, 0.6467897795, 0.6454576877, - 0.6441236298, 0.6427876097, 0.6414496316, 0.6401096995, 0.6387678175, - 0.6374239897, 0.6360782203, 0.6347305132, 0.6333808726, 0.6320293027, - 0.6306758074, 0.6293203910, 0.6279630576, 0.6266038114, 0.6252426563, - 0.6238795967, 0.6225146366, 0.6211477803, 0.6197790318, 0.6184083954, - 0.6170358751, 0.6156614753, 0.6142852001, 0.6129070537, 0.6115270402, - 0.6101451639, 0.6087614290, 0.6073758397, 0.6059884003, 0.6045991149, - 0.6032079877, 0.6018150232, 0.6004202253, 0.5990235985, 0.5976251470, - 0.5962248750, 0.5948227868, 0.5934188866, 0.5920131788, 0.5906056676, - 0.5891963574, 0.5877852523, 0.5863723567, 0.5849576750, 0.5835412114, - 0.5821229702, 0.5807029557, 0.5792811723, 0.5778576244, 0.5764323162, - 0.5750052520, 0.5735764364, 0.5721458734, 0.5707135677, 0.5692795234, - 0.5678437451, 0.5664062369, 0.5649670034, 0.5635260489, 0.5620833779, - 0.5606389946, 0.5591929035, 0.5577451090, 0.5562956155, 0.5548444274, - 0.5533915492, 0.5519369853, 0.5504807401, 0.5490228180, 0.5475632235, - 0.5461019610, 0.5446390350, 0.5431744500, 0.5417082103, 0.5402403205, - 0.5387707850, 0.5372996083, 0.5358267950, 0.5343523494, 0.5328762761, - 0.5313985795, 0.5299192642, 0.5284383347, 0.5269557955, 0.5254716511, - 0.5239859060, 0.5224985647, 0.5210096318, 0.5195191119, 0.5180270094, - 0.5165333289, 0.5150380749, 0.5135412521, 0.5120428649, 0.5105429179, - 0.5090414158, 0.5075383630, 0.5060337641, 0.5045276238, 0.5030199466, - 0.5015107372, 0.5000000000, 0.4984877398, 0.4969739610, 0.4954586684, - 0.4939418666, 0.4924235601, 0.4909037536, 0.4893824517, 0.4878596591, - 0.4863353804, 0.4848096202, 0.4832823833, 0.4817536741, 0.4802234974, - 0.4786918579, 0.4771587603, 0.4756242091, 0.4740882090, 0.4725507649, - 0.4710118812, 0.4694715628, 0.4679298143, 0.4663866403, 0.4648420457, - 0.4632960351, 0.4617486132, 0.4601997848, 0.4586495545, 0.4570979271, - 0.4555449072, 0.4539904997, 0.4524347093, 0.4508775407, 0.4493189986, - 0.4477590878, 0.4461978131, 0.4446351792, 0.4430711908, 0.4415058528, - 0.4399391699, 0.4383711468, 0.4368017884, 0.4352310994, 0.4336590846, - 0.4320857488, 0.4305110968, 0.4289351334, 0.4273578634, 0.4257792916, - 0.4241994227, 0.4226182617, 0.4210358134, 0.4194520824, 0.4178670738, - 0.4162807923, 0.4146932427, 0.4131044298, 0.4115143586, 0.4099230338, - 0.4083304604, 0.4067366431, 0.4051415868, 0.4035452964, 0.4019477767, - 0.4003490326, 0.3987490689, 0.3971478906, 0.3955455026, 0.3939419096, - 0.3923371166, 0.3907311285, 0.3891239501, 0.3875155865, 0.3859060423, - 0.3842953227, 0.3826834324, 0.3810703764, 0.3794561595, 0.3778407868, - 0.3762242631, 0.3746065934, 0.3729877826, 0.3713678356, 0.3697467573, - 0.3681245527, 0.3665012267, 0.3648767843, 0.3632512305, 0.3616245701, - 0.3599968081, 0.3583679495, 0.3567379993, 0.3551069624, 0.3534748438, - 0.3518416484, 0.3502073813, 0.3485720473, 0.3469356516, 0.3452981990, - 0.3436596946, 0.3420201433, 0.3403795502, 0.3387379202, 0.3370952584, - 0.3354515698, 0.3338068592, 0.3321611319, 0.3305143927, 0.3288666467, - 0.3272178990, 0.3255681545, 0.3239174182, 0.3222656952, 0.3206129906, - 0.3189593093, 0.3173046564, 0.3156490369, 0.3139924560, 0.3123349185, - 0.3106764296, 0.3090169944, 0.3073566178, 0.3056953050, 0.3040330609, - 0.3023698908, 0.3007057995, 0.2990407923, 0.2973748741, 0.2957080500, - 0.2940403252, 0.2923717047, 0.2907021936, 0.2890317969, 0.2873605198, - 0.2856883674, 0.2840153447, 0.2823414568, 0.2806667089, 0.2789911060, - 0.2773146533, 0.2756373558, 0.2739592187, 0.2722802470, 0.2706004460, - 0.2689198206, 0.2672383761, 0.2655561175, 0.2638730500, 0.2621891786, - 0.2605045086, 0.2588190451, 0.2571327932, 0.2554457579, 0.2537579446, - 0.2520693582, 0.2503800041, 0.2486898872, 0.2469990127, 0.2453073859, - 0.2436150118, 0.2419218956, 0.2402280425, 0.2385334576, 0.2368381461, - 0.2351421131, 0.2334453639, 0.2317479035, 0.2300497372, 0.2283508701, - 0.2266513074, 0.2249510543, 0.2232501160, 0.2215484976, 0.2198462044, - 0.2181432414, 0.2164396139, 0.2147353272, 0.2130303863, 0.2113247965, - 0.2096185629, 0.2079116908, 0.2062041854, 0.2044960518, 0.2027872954, - 0.2010779211, 0.1993679344, 0.1976573404, 0.1959461442, 0.1942343512, - 0.1925219665, 0.1908089954, 0.1890954430, 0.1873813146, 0.1856666154, - 0.1839513506, 0.1822355255, 0.1805191453, 0.1788022151, 0.1770847403, - 0.1753667261, 0.1736481777, 0.1719291003, 0.1702094992, 0.1684893796, - 0.1667687467, 0.1650476059, 0.1633259622, 0.1616038211, 0.1598811877, - 0.1581580673, 0.1564344650, 0.1547103863, 0.1529858363, 0.1512608202, - 0.1495353434, 0.1478094111, 0.1460830286, 0.1443562010, 0.1426289337, - 0.1409012319, 0.1391731010, 0.1374445460, 0.1357155724, 0.1339861854, - 0.1322563903, 0.1305261922, 0.1287955966, 0.1270646086, 0.1253332336, - 0.1236014767, 0.1218693434, 0.1201368388, 0.1184039683, 0.1166707371, - 0.1149371505, 0.1132032138, 0.1114689322, 0.1097343111, 0.1079993557, - 0.1062640713, 0.1045284633, 0.1027925368, 0.1010562972, 0.0993197497, - 0.0975828998, 0.0958457525, 0.0941083133, 0.0923705874, 0.0906325802, - 0.0888942969, 0.0871557427, 0.0854169231, 0.0836778433, 0.0819385086, - 0.0801989243, 0.0784590957, 0.0767190281, 0.0749787268, 0.0732381971, - 0.0714974443, 0.0697564737, 0.0680152907, 0.0662739004, 0.0645323083, - 0.0627905195, 0.0610485395, 0.0593063736, 0.0575640270, 0.0558215050, - 0.0540788130, 0.0523359562, 0.0505929401, 0.0488497698, 0.0471064507, - 0.0453629881, 0.0436193874, 0.0418756537, 0.0401317925, 0.0383878091, - 0.0366437087, 0.0348994967, 0.0331551784, 0.0314107591, 0.0296662441, - 0.0279216387, 0.0261769483, 0.0244321782, 0.0226873336, 0.0209424199, - 0.0191974424, 0.0174524064, 0.0157073173, 0.0139621803, 0.0122170008, - 0.0104717841, 0.0087265355, 0.0069812603, 0.0052359638, 0.0034906514, - 0.0017453284, 0.0000000000, -0.0017453284, -0.0034906514, -0.0052359638, - -0.0069812603, -0.0087265355, -0.0104717841, -0.0122170008, -0.0139621803, - -0.0157073173, -0.0174524064, -0.0191974424, -0.0209424199, -0.0226873336, - -0.0244321782, -0.0261769483, -0.0279216387, -0.0296662441, -0.0314107591, - -0.0331551784, -0.0348994967, -0.0366437087, -0.0383878091, -0.0401317925, - -0.0418756537, -0.0436193874, -0.0453629881, -0.0471064507, -0.0488497698, - -0.0505929401, -0.0523359562, -0.0540788130, -0.0558215050, -0.0575640270, - -0.0593063736, -0.0610485395, -0.0627905195, -0.0645323083, -0.0662739004, - -0.0680152907, -0.0697564737, -0.0714974443, -0.0732381971, -0.0749787268, - -0.0767190281, -0.0784590957, -0.0801989243, -0.0819385086, -0.0836778433, - -0.0854169231, -0.0871557427, -0.0888942969, -0.0906325802, -0.0923705874, - -0.0941083133, -0.0958457525, -0.0975828998, -0.0993197497, -0.1010562972, - -0.1027925368, -0.1045284633, -0.1062640713, -0.1079993557, -0.1097343111, - -0.1114689322, -0.1132032138, -0.1149371505, -0.1166707371, -0.1184039683, - -0.1201368388, -0.1218693434, -0.1236014767, -0.1253332336, -0.1270646086, - -0.1287955966, -0.1305261922, -0.1322563903, -0.1339861854, -0.1357155724, - -0.1374445460, -0.1391731010, -0.1409012319, -0.1426289337, -0.1443562010, - -0.1460830286, -0.1478094111, -0.1495353434, -0.1512608202, -0.1529858363, - -0.1547103863, -0.1564344650, -0.1581580673, -0.1598811877, -0.1616038211, - -0.1633259622, -0.1650476059, -0.1667687467, -0.1684893796, -0.1702094992, - -0.1719291003, -0.1736481777, -0.1753667261, -0.1770847403, -0.1788022151, - -0.1805191453, -0.1822355255, -0.1839513506, -0.1856666154, -0.1873813146, - -0.1890954430, -0.1908089954, -0.1925219665, -0.1942343512, -0.1959461442, - -0.1976573404, -0.1993679344, -0.2010779211, -0.2027872954, -0.2044960518, - -0.2062041854, -0.2079116908, -0.2096185629, -0.2113247965, -0.2130303863, - -0.2147353272, -0.2164396139, -0.2181432414, -0.2198462044, -0.2215484976, - -0.2232501160, -0.2249510543, -0.2266513074, -0.2283508701, -0.2300497372, - -0.2317479035, -0.2334453639, -0.2351421131, -0.2368381461, -0.2385334576, - -0.2402280425, -0.2419218956, -0.2436150118, -0.2453073859, -0.2469990127, - -0.2486898872, -0.2503800041, -0.2520693582, -0.2537579446, -0.2554457579, - -0.2571327932, -0.2588190451, -0.2605045086, -0.2621891786, -0.2638730500, - -0.2655561175, -0.2672383761, -0.2689198206, -0.2706004460, -0.2722802470, - -0.2739592187, -0.2756373558, -0.2773146533, -0.2789911060, -0.2806667089, - -0.2823414568, -0.2840153447, -0.2856883674, -0.2873605198, -0.2890317969, - -0.2907021936, -0.2923717047, -0.2940403252, -0.2957080500, -0.2973748741, - -0.2990407923, -0.3007057995, -0.3023698908, -0.3040330609, -0.3056953050, - -0.3073566178, -0.3090169944, -0.3106764296, -0.3123349185, -0.3139924560, - -0.3156490369, -0.3173046564, -0.3189593093, -0.3206129906, -0.3222656952, - -0.3239174182, -0.3255681545, -0.3272178990, -0.3288666467, -0.3305143927, - -0.3321611319, -0.3338068592, -0.3354515698, -0.3370952584, -0.3387379202, - -0.3403795502, -0.3420201433, -0.3436596946, -0.3452981990, -0.3469356516, - -0.3485720473, -0.3502073813, -0.3518416484, -0.3534748438, -0.3551069624, - -0.3567379993, -0.3583679495, -0.3599968081, -0.3616245701, -0.3632512305, - -0.3648767843, -0.3665012267, -0.3681245527, -0.3697467573, -0.3713678356, - -0.3729877826, -0.3746065934, -0.3762242631, -0.3778407868, -0.3794561595, - -0.3810703764, -0.3826834324, -0.3842953227, -0.3859060423, -0.3875155865, - -0.3891239501, -0.3907311285, -0.3923371166, -0.3939419096, -0.3955455026, - -0.3971478906, -0.3987490689, -0.4003490326, -0.4019477767, -0.4035452964, - -0.4051415868, -0.4067366431, -0.4083304604, -0.4099230338, -0.4115143586, - -0.4131044298, -0.4146932427, -0.4162807923, -0.4178670738, -0.4194520824, - -0.4210358134, -0.4226182617, -0.4241994227, -0.4257792916, -0.4273578634, - -0.4289351334, -0.4305110968, -0.4320857488, -0.4336590846, -0.4352310994, - -0.4368017884, -0.4383711468, -0.4399391699, -0.4415058528, -0.4430711908, - -0.4446351792, -0.4461978131, -0.4477590878, -0.4493189986, -0.4508775407, - -0.4524347093, -0.4539904997, -0.4555449072, -0.4570979271, -0.4586495545, - -0.4601997848, -0.4617486132, -0.4632960351, -0.4648420457, -0.4663866403, - -0.4679298143, -0.4694715628, -0.4710118812, -0.4725507649, -0.4740882090, - -0.4756242091, -0.4771587603, -0.4786918579, -0.4802234974, -0.4817536741, - -0.4832823833, -0.4848096202, -0.4863353804, -0.4878596591, -0.4893824517, - -0.4909037536, -0.4924235601, -0.4939418666, -0.4954586684, -0.4969739610, - -0.4984877398, -0.5000000000, -0.5015107372, -0.5030199466, -0.5045276238, - -0.5060337641, -0.5075383630, -0.5090414158, -0.5105429179, -0.5120428649, - -0.5135412521, -0.5150380749, -0.5165333289, -0.5180270094, -0.5195191119, - -0.5210096318, -0.5224985647, -0.5239859060, -0.5254716511, -0.5269557955, - -0.5284383347, -0.5299192642, -0.5313985795, -0.5328762761, -0.5343523494, - -0.5358267950, -0.5372996083, -0.5387707850, -0.5402403205, -0.5417082103, - -0.5431744500, -0.5446390350, -0.5461019610, -0.5475632235, -0.5490228180, - -0.5504807401, -0.5519369853, -0.5533915492, -0.5548444274, -0.5562956155, - -0.5577451090, -0.5591929035, -0.5606389946, -0.5620833779, -0.5635260489, - -0.5649670034, -0.5664062369, -0.5678437451, -0.5692795234, -0.5707135677, - -0.5721458734, -0.5735764364, -0.5750052520, -0.5764323162, -0.5778576244, - -0.5792811723, -0.5807029557, -0.5821229702, -0.5835412114, -0.5849576750, - -0.5863723567, -0.5877852523, -0.5891963574, -0.5906056676, -0.5920131788, - -0.5934188866, -0.5948227868, -0.5962248750, -0.5976251470, -0.5990235985, - -0.6004202253, -0.6018150232, -0.6032079877, -0.6045991149, -0.6059884003, - -0.6073758397, -0.6087614290, -0.6101451639, -0.6115270402, -0.6129070537, - -0.6142852001, -0.6156614753, -0.6170358751, -0.6184083954, -0.6197790318, - -0.6211477803, -0.6225146366, -0.6238795967, -0.6252426563, -0.6266038114, - -0.6279630576, -0.6293203910, -0.6306758074, -0.6320293027, -0.6333808726, - -0.6347305132, -0.6360782203, -0.6374239897, -0.6387678175, -0.6401096995, - -0.6414496316, -0.6427876097, -0.6441236298, -0.6454576877, -0.6467897795, - -0.6481199011, -0.6494480483, -0.6507742173, -0.6520984038, -0.6534206040, - -0.6547408137, -0.6560590290, -0.6573752458, -0.6586894601, -0.6600016680, - -0.6613118653, -0.6626200482, -0.6639262127, -0.6652303547, -0.6665324702, - -0.6678325555, -0.6691306064, -0.6704266190, -0.6717205893, -0.6730125135, - -0.6743023876, -0.6755902076, -0.6768759697, -0.6781596699, -0.6794413043, - -0.6807208690, -0.6819983601, -0.6832737737, -0.6845471059, -0.6858183529, - -0.6870875108, -0.6883545757, -0.6896195437, -0.6908824111, -0.6921431739, - -0.6934018283, -0.6946583705, -0.6959127966, -0.6971651029, -0.6984152854, - -0.6996633405, -0.7009092643, -0.7021530530, -0.7033947028, -0.7046342100, - -0.7058715707, -0.7071067812, -0.7083398377, -0.7095707365, -0.7107994739, - -0.7120260460, -0.7132504492, -0.7144726796, -0.7156927337, -0.7169106077, - -0.7181262978, -0.7193398003, -0.7205511117, -0.7217602281, -0.7229671459, - -0.7241718614, -0.7253743710, -0.7265746710, -0.7277727577, -0.7289686274, - -0.7301622766, -0.7313537016, -0.7325428988, -0.7337298645, -0.7349145951, - -0.7360970871, -0.7372773368, -0.7384553406, -0.7396310950, -0.7408045963, - -0.7419758410, -0.7431448255, -0.7443115462, -0.7454759997, -0.7466381823, - -0.7477980905, -0.7489557208, -0.7501110696, -0.7512641335, -0.7524149089, - -0.7535633923, -0.7547095802, -0.7558534692, -0.7569950557, -0.7581343362, - -0.7592713073, -0.7604059656, -0.7615383075, -0.7626683297, -0.7637960286, - -0.7649214009, -0.7660444431, -0.7671651518, -0.7682835236, -0.7693995550, - -0.7705132428, -0.7716245834, -0.7727335735, -0.7738402097, -0.7749444887, - -0.7760464071, -0.7771459615, -0.7782431485, -0.7793379649, -0.7804304073, - -0.7815204724, -0.7826081569, -0.7836934573, -0.7847763705, -0.7858568932, - -0.7869350220, -0.7880107536, -0.7890840848, -0.7901550124, -0.7912235330, - -0.7922896434, -0.7933533403, -0.7944146205, -0.7954734809, -0.7965299180, - -0.7975839288, -0.7986355100, -0.7996846585, -0.8007313709, -0.8017756442, - -0.8028174752, -0.8038568606, -0.8048937974, -0.8059282822, -0.8069603121, - -0.8079898839, -0.8090169944, -0.8100416404, -0.8110638190, -0.8120835269, - -0.8131007610, -0.8141155184, -0.8151277957, -0.8161375901, -0.8171448983, - -0.8181497174, -0.8191520443, -0.8201518759, -0.8211492091, -0.8221440410, - -0.8231363685, -0.8241261886, -0.8251134983, -0.8260982945, -0.8270805743, - -0.8280603346, -0.8290375726, -0.8300122851, -0.8309844693, -0.8319541221, - -0.8329212407, -0.8338858221, -0.8348478633, -0.8358073614, -0.8367643135, - -0.8377187166, -0.8386705679, -0.8396198645, -0.8405666035, -0.8415107819, - -0.8424523970, -0.8433914458, -0.8443279255, -0.8452618332, -0.8461931661, - -0.8471219214, -0.8480480962, -0.8489716876, -0.8498926930, -0.8508111094, - -0.8517269341, -0.8526401644, -0.8535507973, -0.8544588301, -0.8553642602, - -0.8562670846, -0.8571673007, -0.8580649057, -0.8589598969, -0.8598522716, - -0.8607420270, -0.8616291604, -0.8625136692, -0.8633955506, -0.8642748020, - -0.8651514206, -0.8660254038, -0.8668967489, -0.8677654534, -0.8686315144, - -0.8694949295, -0.8703556959, -0.8712138111, -0.8720692724, -0.8729220773, - -0.8737722230, -0.8746197071, -0.8754645270, -0.8763066800, -0.8771461637, - -0.8779829754, -0.8788171127, -0.8796485729, -0.8804773535, -0.8813034521, - -0.8821268660, -0.8829475929, -0.8837656301, -0.8845809752, -0.8853936258, - -0.8862035792, -0.8870108332, -0.8878153851, -0.8886172327, -0.8894163733, - -0.8902128046, -0.8910065242, -0.8917975296, -0.8925858185, -0.8933713883, - -0.8941542368, -0.8949343616, -0.8957117602, -0.8964864304, -0.8972583697, - -0.8980275758, -0.8987940463, -0.8995577790, -0.9003187714, -0.9010770213, - -0.9018325264, -0.9025852843, -0.9033352929, -0.9040825497, -0.9048270525, - -0.9055687990, -0.9063077870, -0.9070440143, -0.9077774785, -0.9085081775, - -0.9092361090, -0.9099612709, -0.9106836608, -0.9114032766, -0.9121201162, - -0.9128341772, -0.9135454576, -0.9142539552, -0.9149596678, -0.9156625933, - -0.9163627296, -0.9170600744, -0.9177546257, -0.9184463813, -0.9191353393, - -0.9198214973, -0.9205048535, -0.9211854056, -0.9218631516, -0.9225380895, - -0.9232102171, -0.9238795325, -0.9245460336, -0.9252097184, -0.9258705848, - -0.9265286309, -0.9271838546, -0.9278362539, -0.9284858269, -0.9291325715, - -0.9297764859, -0.9304175680, -0.9310558159, -0.9316912276, -0.9323238012, - -0.9329535348, -0.9335804265, -0.9342044743, -0.9348256764, -0.9354440308, - -0.9360595357, -0.9366721892, -0.9372819895, -0.9378889346, -0.9384930228, - -0.9390942521, -0.9396926208, -0.9402881270, -0.9408807690, -0.9414705448, - -0.9420574528, -0.9426414911, -0.9432226579, -0.9438009516, -0.9443763702, - -0.9449489122, -0.9455185756, -0.9460853588, -0.9466492601, -0.9472102777, - -0.9477684100, -0.9483236552, -0.9488760116, -0.9494254776, -0.9499720515, - -0.9505157316, -0.9510565163, -0.9515944039, -0.9521293927, -0.9526614813, - -0.9531906678, -0.9537169507, -0.9542403285, -0.9547607995, -0.9552783621, - -0.9557930148, -0.9563047560, -0.9568135841, -0.9573194975, -0.9578224948, - -0.9583225745, -0.9588197349, -0.9593139745, -0.9598052920, -0.9602936857, - -0.9607791542, -0.9612616959, -0.9617413095, -0.9622179935, -0.9626917464, - -0.9631625668, -0.9636304532, -0.9640954042, -0.9645574185, -0.9650164945, - -0.9654726309, -0.9659258263, -0.9663760793, -0.9668233886, -0.9672677528, - -0.9677091705, -0.9681476404, -0.9685831611, -0.9690157314, -0.9694453499, - -0.9698720153, -0.9702957263, -0.9707164816, -0.9711342799, -0.9715491200, - -0.9719610006, -0.9723699204, -0.9727758782, -0.9731788728, -0.9735789029, - -0.9739759673, -0.9743700648, -0.9747611942, -0.9751493543, -0.9755345439, - -0.9759167619, -0.9762960071, -0.9766722783, -0.9770455744, -0.9774158943, - -0.9777832368, -0.9781476007, -0.9785089851, -0.9788673888, -0.9792228106, - -0.9795752496, -0.9799247046, -0.9802711746, -0.9806146585, -0.9809551553, - -0.9812926640, -0.9816271834, -0.9819587127, -0.9822872507, -0.9826127965, - -0.9829353491, -0.9832549076, -0.9835714708, -0.9838850379, -0.9841956080, - -0.9845031800, -0.9848077530, -0.9851093262, -0.9854078985, -0.9857034691, - -0.9859960371, -0.9862856015, -0.9865721616, -0.9868557164, -0.9871362651, - -0.9874138068, -0.9876883406, -0.9879598658, -0.9882283814, -0.9884938868, - -0.9887563810, -0.9890158634, -0.9892723330, -0.9895257891, -0.9897762309, - -0.9900236577, -0.9902680687, -0.9905094632, -0.9907478405, -0.9909831997, - -0.9912155403, -0.9914448614, -0.9916711624, -0.9918944426, -0.9921147013, - -0.9923319379, -0.9925461516, -0.9927573419, -0.9929655081, -0.9931706495, - -0.9933727656, -0.9935718557, -0.9937679192, -0.9939609555, -0.9941509640, - -0.9943379441, -0.9945218954, -0.9947028171, -0.9948807088, -0.9950555700, - -0.9952274000, -0.9953961984, -0.9955619646, -0.9957246982, -0.9958843986, - -0.9960410654, -0.9961946981, -0.9963452962, -0.9964928592, -0.9966373868, - -0.9967788785, -0.9969173337, -0.9970527522, -0.9971851335, -0.9973144772, - -0.9974407829, -0.9975640503, -0.9976842788, -0.9978014683, -0.9979156183, - -0.9980267284, -0.9981347984, -0.9982398279, -0.9983418166, -0.9984407642, - -0.9985366703, -0.9986295348, -0.9987193572, -0.9988061373, -0.9988898750, - -0.9989705698, -0.9990482216, -0.9991228301, -0.9991943951, -0.9992629164, - -0.9993283938, -0.9993908270, -0.9994502159, -0.9995065604, -0.9995598601, - -0.9996101150, -0.9996573250, -0.9997014898, -0.9997426093, -0.9997806835, - -0.9998157121, -0.9998476952, -0.9998766325, -0.9999025240, -0.9999253697, - -0.9999451694, -0.9999619231, -0.9999756307, -0.9999862922, -0.9999939077, - -0.9999984769, -1.0000000000, -0.9999984769, -0.9999939077, -0.9999862922, - -0.9999756307, -0.9999619231, -0.9999451694, -0.9999253697, -0.9999025240, - -0.9998766325, -0.9998476952, -0.9998157121, -0.9997806835, -0.9997426093, - -0.9997014898, -0.9996573250, -0.9996101150, -0.9995598601, -0.9995065604, - -0.9994502159, -0.9993908270, -0.9993283938, -0.9992629164, -0.9991943951, - -0.9991228301, -0.9990482216, -0.9989705698, -0.9988898750, -0.9988061373, - -0.9987193572, -0.9986295348, -0.9985366703, -0.9984407642, -0.9983418166, - -0.9982398279, -0.9981347984, -0.9980267284, -0.9979156183, -0.9978014683, - -0.9976842788, -0.9975640503, -0.9974407829, -0.9973144772, -0.9971851335, - -0.9970527522, -0.9969173337, -0.9967788785, -0.9966373868, -0.9964928592, - -0.9963452962, -0.9961946981, -0.9960410654, -0.9958843986, -0.9957246982, - -0.9955619646, -0.9953961984, -0.9952274000, -0.9950555700, -0.9948807088, - -0.9947028171, -0.9945218954, -0.9943379441, -0.9941509640, -0.9939609555, - -0.9937679192, -0.9935718557, -0.9933727656, -0.9931706495, -0.9929655081, - -0.9927573419, -0.9925461516, -0.9923319379, -0.9921147013, -0.9918944426, - -0.9916711624, -0.9914448614, -0.9912155403, -0.9909831997, -0.9907478405, - -0.9905094632, -0.9902680687, -0.9900236577, -0.9897762309, -0.9895257891, - -0.9892723330, -0.9890158634, -0.9887563810, -0.9884938868, -0.9882283814, - -0.9879598658, -0.9876883406, -0.9874138068, -0.9871362651, -0.9868557164, - -0.9865721616, -0.9862856015, -0.9859960371, -0.9857034691, -0.9854078985, - -0.9851093262, -0.9848077530, -0.9845031800, -0.9841956080, -0.9838850379, - -0.9835714708, -0.9832549076, -0.9829353491, -0.9826127965, -0.9822872507, - -0.9819587127, -0.9816271834, -0.9812926640, -0.9809551553, -0.9806146585, - -0.9802711746, -0.9799247046, -0.9795752496, -0.9792228106, -0.9788673888, - -0.9785089851, -0.9781476007, -0.9777832368, -0.9774158943, -0.9770455744, - -0.9766722783, -0.9762960071, -0.9759167619, -0.9755345439, -0.9751493543, - -0.9747611942, -0.9743700648, -0.9739759673, -0.9735789029, -0.9731788728, - -0.9727758782, -0.9723699204, -0.9719610006, -0.9715491200, -0.9711342799, - -0.9707164816, -0.9702957263, -0.9698720153, -0.9694453499, -0.9690157314, - -0.9685831611, -0.9681476404, -0.9677091705, -0.9672677528, -0.9668233886, - -0.9663760793, -0.9659258263, -0.9654726309, -0.9650164945, -0.9645574185, - -0.9640954042, -0.9636304532, -0.9631625668, -0.9626917464, -0.9622179935, - -0.9617413095, -0.9612616959, -0.9607791542, -0.9602936857, -0.9598052920, - -0.9593139745, -0.9588197349, -0.9583225745, -0.9578224948, -0.9573194975, - -0.9568135841, -0.9563047560, -0.9557930148, -0.9552783621, -0.9547607995, - -0.9542403285, -0.9537169507, -0.9531906678, -0.9526614813, -0.9521293927, - -0.9515944039, -0.9510565163, -0.9505157316, -0.9499720515, -0.9494254776, - -0.9488760116, -0.9483236552, -0.9477684100, -0.9472102777, -0.9466492601, - -0.9460853588, -0.9455185756, -0.9449489122, -0.9443763702, -0.9438009516, - -0.9432226579, -0.9426414911, -0.9420574528, -0.9414705448, -0.9408807690, - -0.9402881270, -0.9396926208, -0.9390942521, -0.9384930228, -0.9378889346, - -0.9372819895, -0.9366721892, -0.9360595357, -0.9354440308, -0.9348256764, - -0.9342044743, -0.9335804265, -0.9329535348, -0.9323238012, -0.9316912276, - -0.9310558159, -0.9304175680, -0.9297764859, -0.9291325715, -0.9284858269, - -0.9278362539, -0.9271838546, -0.9265286309, -0.9258705848, -0.9252097184, - -0.9245460336, -0.9238795325, -0.9232102171, -0.9225380895, -0.9218631516, - -0.9211854056, -0.9205048535, -0.9198214973, -0.9191353393, -0.9184463813, - -0.9177546257, -0.9170600744, -0.9163627296, -0.9156625933, -0.9149596678, - -0.9142539552, -0.9135454576, -0.9128341772, -0.9121201162, -0.9114032766, - -0.9106836608, -0.9099612709, -0.9092361090, -0.9085081775, -0.9077774785, - -0.9070440143, -0.9063077870, -0.9055687990, -0.9048270525, -0.9040825497, - -0.9033352929, -0.9025852843, -0.9018325264, -0.9010770213, -0.9003187714, - -0.8995577790, -0.8987940463, -0.8980275758, -0.8972583697, -0.8964864304, - -0.8957117602, -0.8949343616, -0.8941542368, -0.8933713883, -0.8925858185, - -0.8917975296, -0.8910065242, -0.8902128046, -0.8894163733, -0.8886172327, - -0.8878153851, -0.8870108332, -0.8862035792, -0.8853936258, -0.8845809752, - -0.8837656301, -0.8829475929, -0.8821268660, -0.8813034521, -0.8804773535, - -0.8796485729, -0.8788171127, -0.8779829754, -0.8771461637, -0.8763066800, - -0.8754645270, -0.8746197071, -0.8737722230, -0.8729220773, -0.8720692724, - -0.8712138111, -0.8703556959, -0.8694949295, -0.8686315144, -0.8677654534, - -0.8668967489, -0.8660254038, -0.8651514206, -0.8642748020, -0.8633955506, - -0.8625136692, -0.8616291604, -0.8607420270, -0.8598522716, -0.8589598969, - -0.8580649057, -0.8571673007, -0.8562670846, -0.8553642602, -0.8544588301, - -0.8535507973, -0.8526401644, -0.8517269341, -0.8508111094, -0.8498926930, - -0.8489716876, -0.8480480962, -0.8471219214, -0.8461931661, -0.8452618332, - -0.8443279255, -0.8433914458, -0.8424523970, -0.8415107819, -0.8405666035, - -0.8396198645, -0.8386705679, -0.8377187166, -0.8367643135, -0.8358073614, - -0.8348478633, -0.8338858221, -0.8329212407, -0.8319541221, -0.8309844693, - -0.8300122851, -0.8290375726, -0.8280603346, -0.8270805743, -0.8260982945, - -0.8251134983, -0.8241261886, -0.8231363685, -0.8221440410, -0.8211492091, - -0.8201518759, -0.8191520443, -0.8181497174, -0.8171448983, -0.8161375901, - -0.8151277957, -0.8141155184, -0.8131007610, -0.8120835269, -0.8110638190, - -0.8100416404, -0.8090169944, -0.8079898839, -0.8069603121, -0.8059282822, - -0.8048937974, -0.8038568606, -0.8028174752, -0.8017756442, -0.8007313709, - -0.7996846585, -0.7986355100, -0.7975839288, -0.7965299180, -0.7954734809, - -0.7944146205, -0.7933533403, -0.7922896434, -0.7912235330, -0.7901550124, - -0.7890840848, -0.7880107536, -0.7869350220, -0.7858568932, -0.7847763705, - -0.7836934573, -0.7826081569, -0.7815204724, -0.7804304073, -0.7793379649, - -0.7782431485, -0.7771459615, -0.7760464071, -0.7749444887, -0.7738402097, - -0.7727335735, -0.7716245834, -0.7705132428, -0.7693995550, -0.7682835236, - -0.7671651518, -0.7660444431, -0.7649214009, -0.7637960286, -0.7626683297, - -0.7615383075, -0.7604059656, -0.7592713073, -0.7581343362, -0.7569950557, - -0.7558534692, -0.7547095802, -0.7535633923, -0.7524149089, -0.7512641335, - -0.7501110696, -0.7489557208, -0.7477980905, -0.7466381823, -0.7454759997, - -0.7443115462, -0.7431448255, -0.7419758410, -0.7408045963, -0.7396310950, - -0.7384553406, -0.7372773368, -0.7360970871, -0.7349145951, -0.7337298645, - -0.7325428988, -0.7313537016, -0.7301622766, -0.7289686274, -0.7277727577, - -0.7265746710, -0.7253743710, -0.7241718614, -0.7229671459, -0.7217602281, - -0.7205511117, -0.7193398003, -0.7181262978, -0.7169106077, -0.7156927337, - -0.7144726796, -0.7132504492, -0.7120260460, -0.7107994739, -0.7095707365, - -0.7083398377, -0.7071067812, -0.7058715707, -0.7046342100, -0.7033947028, - -0.7021530530, -0.7009092643, -0.6996633405, -0.6984152854, -0.6971651029, - -0.6959127966, -0.6946583705, -0.6934018283, -0.6921431739, -0.6908824111, - -0.6896195437, -0.6883545757, -0.6870875108, -0.6858183529, -0.6845471059, - -0.6832737737, -0.6819983601, -0.6807208690, -0.6794413043, -0.6781596699, - -0.6768759697, -0.6755902076, -0.6743023876, -0.6730125135, -0.6717205893, - -0.6704266190, -0.6691306064, -0.6678325555, -0.6665324702, -0.6652303547, - -0.6639262127, -0.6626200482, -0.6613118653, -0.6600016680, -0.6586894601, - -0.6573752458, -0.6560590290, -0.6547408137, -0.6534206040, -0.6520984038, - -0.6507742173, -0.6494480483, -0.6481199011, -0.6467897795, -0.6454576877, - -0.6441236298, -0.6427876097, -0.6414496316, -0.6401096995, -0.6387678175, - -0.6374239897, -0.6360782203, -0.6347305132, -0.6333808726, -0.6320293027, - -0.6306758074, -0.6293203910, -0.6279630576, -0.6266038114, -0.6252426563, - -0.6238795967, -0.6225146366, -0.6211477803, -0.6197790318, -0.6184083954, - -0.6170358751, -0.6156614753, -0.6142852001, -0.6129070537, -0.6115270402, - -0.6101451639, -0.6087614290, -0.6073758397, -0.6059884003, -0.6045991149, - -0.6032079877, -0.6018150232, -0.6004202253, -0.5990235985, -0.5976251470, - -0.5962248750, -0.5948227868, -0.5934188866, -0.5920131788, -0.5906056676, - -0.5891963574, -0.5877852523, -0.5863723567, -0.5849576750, -0.5835412114, - -0.5821229702, -0.5807029557, -0.5792811723, -0.5778576244, -0.5764323162, - -0.5750052520, -0.5735764364, -0.5721458734, -0.5707135677, -0.5692795234, - -0.5678437451, -0.5664062369, -0.5649670034, -0.5635260489, -0.5620833779, - -0.5606389946, -0.5591929035, -0.5577451090, -0.5562956155, -0.5548444274, - -0.5533915492, -0.5519369853, -0.5504807401, -0.5490228180, -0.5475632235, - -0.5461019610, -0.5446390350, -0.5431744500, -0.5417082103, -0.5402403205, - -0.5387707850, -0.5372996083, -0.5358267950, -0.5343523494, -0.5328762761, - -0.5313985795, -0.5299192642, -0.5284383347, -0.5269557955, -0.5254716511, - -0.5239859060, -0.5224985647, -0.5210096318, -0.5195191119, -0.5180270094, - -0.5165333289, -0.5150380749, -0.5135412521, -0.5120428649, -0.5105429179, - -0.5090414158, -0.5075383630, -0.5060337641, -0.5045276238, -0.5030199466, - -0.5015107372, -0.5000000000, -0.4984877398, -0.4969739610, -0.4954586684, - -0.4939418666, -0.4924235601, -0.4909037536, -0.4893824517, -0.4878596591, - -0.4863353804, -0.4848096202, -0.4832823833, -0.4817536741, -0.4802234974, - -0.4786918579, -0.4771587603, -0.4756242091, -0.4740882090, -0.4725507649, - -0.4710118812, -0.4694715628, -0.4679298143, -0.4663866403, -0.4648420457, - -0.4632960351, -0.4617486132, -0.4601997848, -0.4586495545, -0.4570979271, - -0.4555449072, -0.4539904997, -0.4524347093, -0.4508775407, -0.4493189986, - -0.4477590878, -0.4461978131, -0.4446351792, -0.4430711908, -0.4415058528, - -0.4399391699, -0.4383711468, -0.4368017884, -0.4352310994, -0.4336590846, - -0.4320857488, -0.4305110968, -0.4289351334, -0.4273578634, -0.4257792916, - -0.4241994227, -0.4226182617, -0.4210358134, -0.4194520824, -0.4178670738, - -0.4162807923, -0.4146932427, -0.4131044298, -0.4115143586, -0.4099230338, - -0.4083304604, -0.4067366431, -0.4051415868, -0.4035452964, -0.4019477767, - -0.4003490326, -0.3987490689, -0.3971478906, -0.3955455026, -0.3939419096, - -0.3923371166, -0.3907311285, -0.3891239501, -0.3875155865, -0.3859060423, - -0.3842953227, -0.3826834324, -0.3810703764, -0.3794561595, -0.3778407868, - -0.3762242631, -0.3746065934, -0.3729877826, -0.3713678356, -0.3697467573, - -0.3681245527, -0.3665012267, -0.3648767843, -0.3632512305, -0.3616245701, - -0.3599968081, -0.3583679495, -0.3567379993, -0.3551069624, -0.3534748438, - -0.3518416484, -0.3502073813, -0.3485720473, -0.3469356516, -0.3452981990, - -0.3436596946, -0.3420201433, -0.3403795502, -0.3387379202, -0.3370952584, - -0.3354515698, -0.3338068592, -0.3321611319, -0.3305143927, -0.3288666467, - -0.3272178990, -0.3255681545, -0.3239174182, -0.3222656952, -0.3206129906, - -0.3189593093, -0.3173046564, -0.3156490369, -0.3139924560, -0.3123349185, - -0.3106764296, -0.3090169944, -0.3073566178, -0.3056953050, -0.3040330609, - -0.3023698908, -0.3007057995, -0.2990407923, -0.2973748741, -0.2957080500, - -0.2940403252, -0.2923717047, -0.2907021936, -0.2890317969, -0.2873605198, - -0.2856883674, -0.2840153447, -0.2823414568, -0.2806667089, -0.2789911060, - -0.2773146533, -0.2756373558, -0.2739592187, -0.2722802470, -0.2706004460, - -0.2689198206, -0.2672383761, -0.2655561175, -0.2638730500, -0.2621891786, - -0.2605045086, -0.2588190451, -0.2571327932, -0.2554457579, -0.2537579446, - -0.2520693582, -0.2503800041, -0.2486898872, -0.2469990127, -0.2453073859, - -0.2436150118, -0.2419218956, -0.2402280425, -0.2385334576, -0.2368381461, - -0.2351421131, -0.2334453639, -0.2317479035, -0.2300497372, -0.2283508701, - -0.2266513074, -0.2249510543, -0.2232501160, -0.2215484976, -0.2198462044, - -0.2181432414, -0.2164396139, -0.2147353272, -0.2130303863, -0.2113247965, - -0.2096185629, -0.2079116908, -0.2062041854, -0.2044960518, -0.2027872954, - -0.2010779211, -0.1993679344, -0.1976573404, -0.1959461442, -0.1942343512, - -0.1925219665, -0.1908089954, -0.1890954430, -0.1873813146, -0.1856666154, - -0.1839513506, -0.1822355255, -0.1805191453, -0.1788022151, -0.1770847403, - -0.1753667261, -0.1736481777, -0.1719291003, -0.1702094992, -0.1684893796, - -0.1667687467, -0.1650476059, -0.1633259622, -0.1616038211, -0.1598811877, - -0.1581580673, -0.1564344650, -0.1547103863, -0.1529858363, -0.1512608202, - -0.1495353434, -0.1478094111, -0.1460830286, -0.1443562010, -0.1426289337, - -0.1409012319, -0.1391731010, -0.1374445460, -0.1357155724, -0.1339861854, - -0.1322563903, -0.1305261922, -0.1287955966, -0.1270646086, -0.1253332336, - -0.1236014767, -0.1218693434, -0.1201368388, -0.1184039683, -0.1166707371, - -0.1149371505, -0.1132032138, -0.1114689322, -0.1097343111, -0.1079993557, - -0.1062640713, -0.1045284633, -0.1027925368, -0.1010562972, -0.0993197497, - -0.0975828998, -0.0958457525, -0.0941083133, -0.0923705874, -0.0906325802, - -0.0888942969, -0.0871557427, -0.0854169231, -0.0836778433, -0.0819385086, - -0.0801989243, -0.0784590957, -0.0767190281, -0.0749787268, -0.0732381971, - -0.0714974443, -0.0697564737, -0.0680152907, -0.0662739004, -0.0645323083, - -0.0627905195, -0.0610485395, -0.0593063736, -0.0575640270, -0.0558215050, - -0.0540788130, -0.0523359562, -0.0505929401, -0.0488497698, -0.0471064507, - -0.0453629881, -0.0436193874, -0.0418756537, -0.0401317925, -0.0383878091, - -0.0366437087, -0.0348994967, -0.0331551784, -0.0314107591, -0.0296662441, - -0.0279216387, -0.0261769483, -0.0244321782, -0.0226873336, -0.0209424199, - -0.0191974424, -0.0174524064, -0.0157073173, -0.0139621803, -0.0122170008, - -0.0104717841, -0.0087265355, -0.0069812603, -0.0052359638, -0.0034906514, - -0.0017453284, -0.0000000000, 0.0017453284, 0.0034906514, 0.0052359638, - 0.0069812603, 0.0087265355, 0.0104717841, 0.0122170008, 0.0139621803, - 0.0157073173, 0.0174524064, 0.0191974424, 0.0209424199, 0.0226873336, - 0.0244321782, 0.0261769483, 0.0279216387, 0.0296662441, 0.0314107591, - 0.0331551784, 0.0348994967, 0.0366437087, 0.0383878091, 0.0401317925, - 0.0418756537, 0.0436193874, 0.0453629881, 0.0471064507, 0.0488497698, - 0.0505929401, 0.0523359562, 0.0540788130, 0.0558215050, 0.0575640270, - 0.0593063736, 0.0610485395, 0.0627905195, 0.0645323083, 0.0662739004, - 0.0680152907, 0.0697564737, 0.0714974443, 0.0732381971, 0.0749787268, - 0.0767190281, 0.0784590957, 0.0801989243, 0.0819385086, 0.0836778433, - 0.0854169231, 0.0871557427, 0.0888942969, 0.0906325802, 0.0923705874, - 0.0941083133, 0.0958457525, 0.0975828998, 0.0993197497, 0.1010562972, - 0.1027925368, 0.1045284633, 0.1062640713, 0.1079993557, 0.1097343111, - 0.1114689322, 0.1132032138, 0.1149371505, 0.1166707371, 0.1184039683, - 0.1201368388, 0.1218693434, 0.1236014767, 0.1253332336, 0.1270646086, - 0.1287955966, 0.1305261922, 0.1322563903, 0.1339861854, 0.1357155724, - 0.1374445460, 0.1391731010, 0.1409012319, 0.1426289337, 0.1443562010, - 0.1460830286, 0.1478094111, 0.1495353434, 0.1512608202, 0.1529858363, - 0.1547103863, 0.1564344650, 0.1581580673, 0.1598811877, 0.1616038211, - 0.1633259622, 0.1650476059, 0.1667687467, 0.1684893796, 0.1702094992, - 0.1719291003, 0.1736481777, 0.1753667261, 0.1770847403, 0.1788022151, - 0.1805191453, 0.1822355255, 0.1839513506, 0.1856666154, 0.1873813146, - 0.1890954430, 0.1908089954, 0.1925219665, 0.1942343512, 0.1959461442, - 0.1976573404, 0.1993679344, 0.2010779211, 0.2027872954, 0.2044960518, - 0.2062041854, 0.2079116908, 0.2096185629, 0.2113247965, 0.2130303863, - 0.2147353272, 0.2164396139, 0.2181432414, 0.2198462044, 0.2215484976, - 0.2232501160, 0.2249510543, 0.2266513074, 0.2283508701, 0.2300497372, - 0.2317479035, 0.2334453639, 0.2351421131, 0.2368381461, 0.2385334576, - 0.2402280425, 0.2419218956, 0.2436150118, 0.2453073859, 0.2469990127, - 0.2486898872, 0.2503800041, 0.2520693582, 0.2537579446, 0.2554457579, - 0.2571327932, 0.2588190451, 0.2605045086, 0.2621891786, 0.2638730500, - 0.2655561175, 0.2672383761, 0.2689198206, 0.2706004460, 0.2722802470, - 0.2739592187, 0.2756373558, 0.2773146533, 0.2789911060, 0.2806667089, - 0.2823414568, 0.2840153447, 0.2856883674, 0.2873605198, 0.2890317969, - 0.2907021936, 0.2923717047, 0.2940403252, 0.2957080500, 0.2973748741, - 0.2990407923, 0.3007057995, 0.3023698908, 0.3040330609, 0.3056953050, - 0.3073566178, 0.3090169944, 0.3106764296, 0.3123349185, 0.3139924560, - 0.3156490369, 0.3173046564, 0.3189593093, 0.3206129906, 0.3222656952, - 0.3239174182, 0.3255681545, 0.3272178990, 0.3288666467, 0.3305143927, - 0.3321611319, 0.3338068592, 0.3354515698, 0.3370952584, 0.3387379202, - 0.3403795502, 0.3420201433, 0.3436596946, 0.3452981990, 0.3469356516, - 0.3485720473, 0.3502073813, 0.3518416484, 0.3534748438, 0.3551069624, - 0.3567379993, 0.3583679495, 0.3599968081, 0.3616245701, 0.3632512305, - 0.3648767843, 0.3665012267, 0.3681245527, 0.3697467573, 0.3713678356, - 0.3729877826, 0.3746065934, 0.3762242631, 0.3778407868, 0.3794561595, - 0.3810703764, 0.3826834324, 0.3842953227, 0.3859060423, 0.3875155865, - 0.3891239501, 0.3907311285, 0.3923371166, 0.3939419096, 0.3955455026, - 0.3971478906, 0.3987490689, 0.4003490326, 0.4019477767, 0.4035452964, - 0.4051415868, 0.4067366431, 0.4083304604, 0.4099230338, 0.4115143586, - 0.4131044298, 0.4146932427, 0.4162807923, 0.4178670738, 0.4194520824, - 0.4210358134, 0.4226182617, 0.4241994227, 0.4257792916, 0.4273578634, - 0.4289351334, 0.4305110968, 0.4320857488, 0.4336590846, 0.4352310994, - 0.4368017884, 0.4383711468, 0.4399391699, 0.4415058528, 0.4430711908, - 0.4446351792, 0.4461978131, 0.4477590878, 0.4493189986, 0.4508775407, - 0.4524347093, 0.4539904997, 0.4555449072, 0.4570979271, 0.4586495545, - 0.4601997848, 0.4617486132, 0.4632960351, 0.4648420457, 0.4663866403, - 0.4679298143, 0.4694715628, 0.4710118812, 0.4725507649, 0.4740882090, - 0.4756242091, 0.4771587603, 0.4786918579, 0.4802234974, 0.4817536741, - 0.4832823833, 0.4848096202, 0.4863353804, 0.4878596591, 0.4893824517, - 0.4909037536, 0.4924235601, 0.4939418666, 0.4954586684, 0.4969739610, - 0.4984877398, 0.5000000000, 0.5015107372, 0.5030199466, 0.5045276238, - 0.5060337641, 0.5075383630, 0.5090414158, 0.5105429179, 0.5120428649, - 0.5135412521, 0.5150380749, 0.5165333289, 0.5180270094, 0.5195191119, - 0.5210096318, 0.5224985647, 0.5239859060, 0.5254716511, 0.5269557955, - 0.5284383347, 0.5299192642, 0.5313985795, 0.5328762761, 0.5343523494, - 0.5358267950, 0.5372996083, 0.5387707850, 0.5402403205, 0.5417082103, - 0.5431744500, 0.5446390350, 0.5461019610, 0.5475632235, 0.5490228180, - 0.5504807401, 0.5519369853, 0.5533915492, 0.5548444274, 0.5562956155, - 0.5577451090, 0.5591929035, 0.5606389946, 0.5620833779, 0.5635260489, - 0.5649670034, 0.5664062369, 0.5678437451, 0.5692795234, 0.5707135677, - 0.5721458734, 0.5735764364, 0.5750052520, 0.5764323162, 0.5778576244, - 0.5792811723, 0.5807029557, 0.5821229702, 0.5835412114, 0.5849576750, - 0.5863723567, 0.5877852523, 0.5891963574, 0.5906056676, 0.5920131788, - 0.5934188866, 0.5948227868, 0.5962248750, 0.5976251470, 0.5990235985, - 0.6004202253, 0.6018150232, 0.6032079877, 0.6045991149, 0.6059884003, - 0.6073758397, 0.6087614290, 0.6101451639, 0.6115270402, 0.6129070537, - 0.6142852001, 0.6156614753, 0.6170358751, 0.6184083954, 0.6197790318, - 0.6211477803, 0.6225146366, 0.6238795967, 0.6252426563, 0.6266038114, - 0.6279630576, 0.6293203910, 0.6306758074, 0.6320293027, 0.6333808726, - 0.6347305132, 0.6360782203, 0.6374239897, 0.6387678175, 0.6401096995, - 0.6414496316, 0.6427876097, 0.6441236298, 0.6454576877, 0.6467897795, - 0.6481199011, 0.6494480483, 0.6507742173, 0.6520984038, 0.6534206040, - 0.6547408137, 0.6560590290, 0.6573752458, 0.6586894601, 0.6600016680, - 0.6613118653, 0.6626200482, 0.6639262127, 0.6652303547, 0.6665324702, - 0.6678325555, 0.6691306064, 0.6704266190, 0.6717205893, 0.6730125135, - 0.6743023876, 0.6755902076, 0.6768759697, 0.6781596699, 0.6794413043, - 0.6807208690, 0.6819983601, 0.6832737737, 0.6845471059, 0.6858183529, - 0.6870875108, 0.6883545757, 0.6896195437, 0.6908824111, 0.6921431739, - 0.6934018283, 0.6946583705, 0.6959127966, 0.6971651029, 0.6984152854, - 0.6996633405, 0.7009092643, 0.7021530530, 0.7033947028, 0.7046342100, - 0.7058715707, 0.7071067812, 0.7083398377, 0.7095707365, 0.7107994739, - 0.7120260460, 0.7132504492, 0.7144726796, 0.7156927337, 0.7169106077, - 0.7181262978, 0.7193398003, 0.7205511117, 0.7217602281, 0.7229671459, - 0.7241718614, 0.7253743710, 0.7265746710, 0.7277727577, 0.7289686274, - 0.7301622766, 0.7313537016, 0.7325428988, 0.7337298645, 0.7349145951, - 0.7360970871, 0.7372773368, 0.7384553406, 0.7396310950, 0.7408045963, - 0.7419758410, 0.7431448255, 0.7443115462, 0.7454759997, 0.7466381823, - 0.7477980905, 0.7489557208, 0.7501110696, 0.7512641335, 0.7524149089, - 0.7535633923, 0.7547095802, 0.7558534692, 0.7569950557, 0.7581343362, - 0.7592713073, 0.7604059656, 0.7615383075, 0.7626683297, 0.7637960286, - 0.7649214009, 0.7660444431, 0.7671651518, 0.7682835236, 0.7693995550, - 0.7705132428, 0.7716245834, 0.7727335735, 0.7738402097, 0.7749444887, - 0.7760464071, 0.7771459615, 0.7782431485, 0.7793379649, 0.7804304073, - 0.7815204724, 0.7826081569, 0.7836934573, 0.7847763705, 0.7858568932, - 0.7869350220, 0.7880107536, 0.7890840848, 0.7901550124, 0.7912235330, - 0.7922896434, 0.7933533403, 0.7944146205, 0.7954734809, 0.7965299180, - 0.7975839288, 0.7986355100, 0.7996846585, 0.8007313709, 0.8017756442, - 0.8028174752, 0.8038568606, 0.8048937974, 0.8059282822, 0.8069603121, - 0.8079898839, 0.8090169944, 0.8100416404, 0.8110638190, 0.8120835269, - 0.8131007610, 0.8141155184, 0.8151277957, 0.8161375901, 0.8171448983, - 0.8181497174, 0.8191520443, 0.8201518759, 0.8211492091, 0.8221440410, - 0.8231363685, 0.8241261886, 0.8251134983, 0.8260982945, 0.8270805743, - 0.8280603346, 0.8290375726, 0.8300122851, 0.8309844693, 0.8319541221, - 0.8329212407, 0.8338858221, 0.8348478633, 0.8358073614, 0.8367643135, - 0.8377187166, 0.8386705679, 0.8396198645, 0.8405666035, 0.8415107819, - 0.8424523970, 0.8433914458, 0.8443279255, 0.8452618332, 0.8461931661, - 0.8471219214, 0.8480480962, 0.8489716876, 0.8498926930, 0.8508111094, - 0.8517269341, 0.8526401644, 0.8535507973, 0.8544588301, 0.8553642602, - 0.8562670846, 0.8571673007, 0.8580649057, 0.8589598969, 0.8598522716, - 0.8607420270, 0.8616291604, 0.8625136692, 0.8633955506, 0.8642748020, - 0.8651514206, 0.8660254038, 0.8668967489, 0.8677654534, 0.8686315144, - 0.8694949295, 0.8703556959, 0.8712138111, 0.8720692724, 0.8729220773, - 0.8737722230, 0.8746197071, 0.8754645270, 0.8763066800, 0.8771461637, - 0.8779829754, 0.8788171127, 0.8796485729, 0.8804773535, 0.8813034521, - 0.8821268660, 0.8829475929, 0.8837656301, 0.8845809752, 0.8853936258, - 0.8862035792, 0.8870108332, 0.8878153851, 0.8886172327, 0.8894163733, - 0.8902128046, 0.8910065242, 0.8917975296, 0.8925858185, 0.8933713883, - 0.8941542368, 0.8949343616, 0.8957117602, 0.8964864304, 0.8972583697, - 0.8980275758, 0.8987940463, 0.8995577790, 0.9003187714, 0.9010770213, - 0.9018325264, 0.9025852843, 0.9033352929, 0.9040825497, 0.9048270525, - 0.9055687990, 0.9063077870, 0.9070440143, 0.9077774785, 0.9085081775, - 0.9092361090, 0.9099612709, 0.9106836608, 0.9114032766, 0.9121201162, - 0.9128341772, 0.9135454576, 0.9142539552, 0.9149596678, 0.9156625933, - 0.9163627296, 0.9170600744, 0.9177546257, 0.9184463813, 0.9191353393, - 0.9198214973, 0.9205048535, 0.9211854056, 0.9218631516, 0.9225380895, - 0.9232102171, 0.9238795325, 0.9245460336, 0.9252097184, 0.9258705848, - 0.9265286309, 0.9271838546, 0.9278362539, 0.9284858269, 0.9291325715, - 0.9297764859, 0.9304175680, 0.9310558159, 0.9316912276, 0.9323238012, - 0.9329535348, 0.9335804265, 0.9342044743, 0.9348256764, 0.9354440308, - 0.9360595357, 0.9366721892, 0.9372819895, 0.9378889346, 0.9384930228, - 0.9390942521, 0.9396926208, 0.9402881270, 0.9408807690, 0.9414705448, - 0.9420574528, 0.9426414911, 0.9432226579, 0.9438009516, 0.9443763702, - 0.9449489122, 0.9455185756, 0.9460853588, 0.9466492601, 0.9472102777, - 0.9477684100, 0.9483236552, 0.9488760116, 0.9494254776, 0.9499720515, - 0.9505157316, 0.9510565163, 0.9515944039, 0.9521293927, 0.9526614813, - 0.9531906678, 0.9537169507, 0.9542403285, 0.9547607995, 0.9552783621, - 0.9557930148, 0.9563047560, 0.9568135841, 0.9573194975, 0.9578224948, - 0.9583225745, 0.9588197349, 0.9593139745, 0.9598052920, 0.9602936857, - 0.9607791542, 0.9612616959, 0.9617413095, 0.9622179935, 0.9626917464, - 0.9631625668, 0.9636304532, 0.9640954042, 0.9645574185, 0.9650164945, - 0.9654726309, 0.9659258263, 0.9663760793, 0.9668233886, 0.9672677528, - 0.9677091705, 0.9681476404, 0.9685831611, 0.9690157314, 0.9694453499, - 0.9698720153, 0.9702957263, 0.9707164816, 0.9711342799, 0.9715491200, - 0.9719610006, 0.9723699204, 0.9727758782, 0.9731788728, 0.9735789029, - 0.9739759673, 0.9743700648, 0.9747611942, 0.9751493543, 0.9755345439, - 0.9759167619, 0.9762960071, 0.9766722783, 0.9770455744, 0.9774158943, - 0.9777832368, 0.9781476007, 0.9785089851, 0.9788673888, 0.9792228106, - 0.9795752496, 0.9799247046, 0.9802711746, 0.9806146585, 0.9809551553, - 0.9812926640, 0.9816271834, 0.9819587127, 0.9822872507, 0.9826127965, - 0.9829353491, 0.9832549076, 0.9835714708, 0.9838850379, 0.9841956080, - 0.9845031800, 0.9848077530, 0.9851093262, 0.9854078985, 0.9857034691, - 0.9859960371, 0.9862856015, 0.9865721616, 0.9868557164, 0.9871362651, - 0.9874138068, 0.9876883406, 0.9879598658, 0.9882283814, 0.9884938868, - 0.9887563810, 0.9890158634, 0.9892723330, 0.9895257891, 0.9897762309, - 0.9900236577, 0.9902680687, 0.9905094632, 0.9907478405, 0.9909831997, - 0.9912155403, 0.9914448614, 0.9916711624, 0.9918944426, 0.9921147013, - 0.9923319379, 0.9925461516, 0.9927573419, 0.9929655081, 0.9931706495, - 0.9933727656, 0.9935718557, 0.9937679192, 0.9939609555, 0.9941509640, - 0.9943379441, 0.9945218954, 0.9947028171, 0.9948807088, 0.9950555700, - 0.9952274000, 0.9953961984, 0.9955619646, 0.9957246982, 0.9958843986, - 0.9960410654, 0.9961946981, 0.9963452962, 0.9964928592, 0.9966373868, - 0.9967788785, 0.9969173337, 0.9970527522, 0.9971851335, 0.9973144772, - 0.9974407829, 0.9975640503, 0.9976842788, 0.9978014683, 0.9979156183, - 0.9980267284, 0.9981347984, 0.9982398279, 0.9983418166, 0.9984407642, - 0.9985366703, 0.9986295348, 0.9987193572, 0.9988061373, 0.9988898750, - 0.9989705698, 0.9990482216, 0.9991228301, 0.9991943951, 0.9992629164, - 0.9993283938, 0.9993908270, 0.9994502159, 0.9995065604, 0.9995598601, - 0.9996101150, 0.9996573250, 0.9997014898, 0.9997426093, 0.9997806835, - 0.9998157121, 0.9998476952, 0.9998766325, 0.9999025240, 0.9999253697, - 0.9999451694, 0.9999619231, 0.9999756307, 0.9999862922, 0.9999939077, + 0.9999756307, 0.9999619231, 0.9999451694, 0.9999253697, 0.9999025240, + 0.9998766325, 0.9998476952, 0.9998157121, 0.9997806835, 0.9997426093, + 0.9997014898, 0.9996573250, 0.9996101150, 0.9995598601, 0.9995065604, + 0.9994502159, 0.9993908270, 0.9993283938, 0.9992629164, 0.9991943951, + 0.9991228301, 0.9990482216, 0.9989705698, 0.9988898750, 0.9988061373, + 0.9987193572, 0.9986295348, 0.9985366703, 0.9984407642, 0.9983418166, + 0.9982398279, 0.9981347984, 0.9980267284, 0.9979156183, 0.9978014683, + 0.9976842788, 0.9975640503, 0.9974407829, 0.9973144772, 0.9971851335, + 0.9970527522, 0.9969173337, 0.9967788785, 0.9966373868, 0.9964928592, + 0.9963452962, 0.9961946981, 0.9960410654, 0.9958843986, 0.9957246982, + 0.9955619646, 0.9953961984, 0.9952274000, 0.9950555700, 0.9948807088, + 0.9947028171, 0.9945218954, 0.9943379441, 0.9941509640, 0.9939609555, + 0.9937679192, 0.9935718557, 0.9933727656, 0.9931706495, 0.9929655081, + 0.9927573419, 0.9925461516, 0.9923319379, 0.9921147013, 0.9918944426, + 0.9916711624, 0.9914448614, 0.9912155403, 0.9909831997, 0.9907478405, + 0.9905094632, 0.9902680687, 0.9900236577, 0.9897762309, 0.9895257891, + 0.9892723330, 0.9890158634, 0.9887563810, 0.9884938868, 0.9882283814, + 0.9879598658, 0.9876883406, 0.9874138068, 0.9871362651, 0.9868557164, + 0.9865721616, 0.9862856015, 0.9859960371, 0.9857034691, 0.9854078985, + 0.9851093262, 0.9848077530, 0.9845031800, 0.9841956080, 0.9838850379, + 0.9835714708, 0.9832549076, 0.9829353491, 0.9826127965, 0.9822872507, + 0.9819587127, 0.9816271834, 0.9812926640, 0.9809551553, 0.9806146585, + 0.9802711746, 0.9799247046, 0.9795752496, 0.9792228106, 0.9788673888, + 0.9785089851, 0.9781476007, 0.9777832368, 0.9774158943, 0.9770455744, + 0.9766722783, 0.9762960071, 0.9759167619, 0.9755345439, 0.9751493543, + 0.9747611942, 0.9743700648, 0.9739759673, 0.9735789029, 0.9731788728, + 0.9727758782, 0.9723699204, 0.9719610006, 0.9715491200, 0.9711342799, + 0.9707164816, 0.9702957263, 0.9698720153, 0.9694453499, 0.9690157314, + 0.9685831611, 0.9681476404, 0.9677091705, 0.9672677528, 0.9668233886, + 0.9663760793, 0.9659258263, 0.9654726309, 0.9650164945, 0.9645574185, + 0.9640954042, 0.9636304532, 0.9631625668, 0.9626917464, 0.9622179935, + 0.9617413095, 0.9612616959, 0.9607791542, 0.9602936857, 0.9598052920, + 0.9593139745, 0.9588197349, 0.9583225745, 0.9578224948, 0.9573194975, + 0.9568135841, 0.9563047560, 0.9557930148, 0.9552783621, 0.9547607995, + 0.9542403285, 0.9537169507, 0.9531906678, 0.9526614813, 0.9521293927, + 0.9515944039, 0.9510565163, 0.9505157316, 0.9499720515, 0.9494254776, + 0.9488760116, 0.9483236552, 0.9477684100, 0.9472102777, 0.9466492601, + 0.9460853588, 0.9455185756, 0.9449489122, 0.9443763702, 0.9438009516, + 0.9432226579, 0.9426414911, 0.9420574528, 0.9414705448, 0.9408807690, + 0.9402881270, 0.9396926208, 0.9390942521, 0.9384930228, 0.9378889346, + 0.9372819895, 0.9366721892, 0.9360595357, 0.9354440308, 0.9348256764, + 0.9342044743, 0.9335804265, 0.9329535348, 0.9323238012, 0.9316912276, + 0.9310558159, 0.9304175680, 0.9297764859, 0.9291325715, 0.9284858269, + 0.9278362539, 0.9271838546, 0.9265286309, 0.9258705848, 0.9252097184, + 0.9245460336, 0.9238795325, 0.9232102171, 0.9225380895, 0.9218631516, + 0.9211854056, 0.9205048535, 0.9198214973, 0.9191353393, 0.9184463813, + 0.9177546257, 0.9170600744, 0.9163627296, 0.9156625933, 0.9149596678, + 0.9142539552, 0.9135454576, 0.9128341772, 0.9121201162, 0.9114032766, + 0.9106836608, 0.9099612709, 0.9092361090, 0.9085081775, 0.9077774785, + 0.9070440143, 0.9063077870, 0.9055687990, 0.9048270525, 0.9040825497, + 0.9033352929, 0.9025852843, 0.9018325264, 0.9010770213, 0.9003187714, + 0.8995577790, 0.8987940463, 0.8980275758, 0.8972583697, 0.8964864304, + 0.8957117602, 0.8949343616, 0.8941542368, 0.8933713883, 0.8925858185, + 0.8917975296, 0.8910065242, 0.8902128046, 0.8894163733, 0.8886172327, + 0.8878153851, 0.8870108332, 0.8862035792, 0.8853936258, 0.8845809752, + 0.8837656301, 0.8829475929, 0.8821268660, 0.8813034521, 0.8804773535, + 0.8796485729, 0.8788171127, 0.8779829754, 0.8771461637, 0.8763066800, + 0.8754645270, 0.8746197071, 0.8737722230, 0.8729220773, 0.8720692724, + 0.8712138111, 0.8703556959, 0.8694949295, 0.8686315144, 0.8677654534, + 0.8668967489, 0.8660254038, 0.8651514206, 0.8642748020, 0.8633955506, + 0.8625136692, 0.8616291604, 0.8607420270, 0.8598522716, 0.8589598969, + 0.8580649057, 0.8571673007, 0.8562670846, 0.8553642602, 0.8544588301, + 0.8535507973, 0.8526401644, 0.8517269341, 0.8508111094, 0.8498926930, + 0.8489716876, 0.8480480962, 0.8471219214, 0.8461931661, 0.8452618332, + 0.8443279255, 0.8433914458, 0.8424523970, 0.8415107819, 0.8405666035, + 0.8396198645, 0.8386705679, 0.8377187166, 0.8367643135, 0.8358073614, + 0.8348478633, 0.8338858221, 0.8329212407, 0.8319541221, 0.8309844693, + 0.8300122851, 0.8290375726, 0.8280603346, 0.8270805743, 0.8260982945, + 0.8251134983, 0.8241261886, 0.8231363685, 0.8221440410, 0.8211492091, + 0.8201518759, 0.8191520443, 0.8181497174, 0.8171448983, 0.8161375901, + 0.8151277957, 0.8141155184, 0.8131007610, 0.8120835269, 0.8110638190, + 0.8100416404, 0.8090169944, 0.8079898839, 0.8069603121, 0.8059282822, + 0.8048937974, 0.8038568606, 0.8028174752, 0.8017756442, 0.8007313709, + 0.7996846585, 0.7986355100, 0.7975839288, 0.7965299180, 0.7954734809, + 0.7944146205, 0.7933533403, 0.7922896434, 0.7912235330, 0.7901550124, + 0.7890840848, 0.7880107536, 0.7869350220, 0.7858568932, 0.7847763705, + 0.7836934573, 0.7826081569, 0.7815204724, 0.7804304073, 0.7793379649, + 0.7782431485, 0.7771459615, 0.7760464071, 0.7749444887, 0.7738402097, + 0.7727335735, 0.7716245834, 0.7705132428, 0.7693995550, 0.7682835236, + 0.7671651518, 0.7660444431, 0.7649214009, 0.7637960286, 0.7626683297, + 0.7615383075, 0.7604059656, 0.7592713073, 0.7581343362, 0.7569950557, + 0.7558534692, 0.7547095802, 0.7535633923, 0.7524149089, 0.7512641335, + 0.7501110696, 0.7489557208, 0.7477980905, 0.7466381823, 0.7454759997, + 0.7443115462, 0.7431448255, 0.7419758410, 0.7408045963, 0.7396310950, + 0.7384553406, 0.7372773368, 0.7360970871, 0.7349145951, 0.7337298645, + 0.7325428988, 0.7313537016, 0.7301622766, 0.7289686274, 0.7277727577, + 0.7265746710, 0.7253743710, 0.7241718614, 0.7229671459, 0.7217602281, + 0.7205511117, 0.7193398003, 0.7181262978, 0.7169106077, 0.7156927337, + 0.7144726796, 0.7132504492, 0.7120260460, 0.7107994739, 0.7095707365, + 0.7083398377, 0.7071067812, 0.7058715707, 0.7046342100, 0.7033947028, + 0.7021530530, 0.7009092643, 0.6996633405, 0.6984152854, 0.6971651029, + 0.6959127966, 0.6946583705, 0.6934018283, 0.6921431739, 0.6908824111, + 0.6896195437, 0.6883545757, 0.6870875108, 0.6858183529, 0.6845471059, + 0.6832737737, 0.6819983601, 0.6807208690, 0.6794413043, 0.6781596699, + 0.6768759697, 0.6755902076, 0.6743023876, 0.6730125135, 0.6717205893, + 0.6704266190, 0.6691306064, 0.6678325555, 0.6665324702, 0.6652303547, + 0.6639262127, 0.6626200482, 0.6613118653, 0.6600016680, 0.6586894601, + 0.6573752458, 0.6560590290, 0.6547408137, 0.6534206040, 0.6520984038, + 0.6507742173, 0.6494480483, 0.6481199011, 0.6467897795, 0.6454576877, + 0.6441236298, 0.6427876097, 0.6414496316, 0.6401096995, 0.6387678175, + 0.6374239897, 0.6360782203, 0.6347305132, 0.6333808726, 0.6320293027, + 0.6306758074, 0.6293203910, 0.6279630576, 0.6266038114, 0.6252426563, + 0.6238795967, 0.6225146366, 0.6211477803, 0.6197790318, 0.6184083954, + 0.6170358751, 0.6156614753, 0.6142852001, 0.6129070537, 0.6115270402, + 0.6101451639, 0.6087614290, 0.6073758397, 0.6059884003, 0.6045991149, + 0.6032079877, 0.6018150232, 0.6004202253, 0.5990235985, 0.5976251470, + 0.5962248750, 0.5948227868, 0.5934188866, 0.5920131788, 0.5906056676, + 0.5891963574, 0.5877852523, 0.5863723567, 0.5849576750, 0.5835412114, + 0.5821229702, 0.5807029557, 0.5792811723, 0.5778576244, 0.5764323162, + 0.5750052520, 0.5735764364, 0.5721458734, 0.5707135677, 0.5692795234, + 0.5678437451, 0.5664062369, 0.5649670034, 0.5635260489, 0.5620833779, + 0.5606389946, 0.5591929035, 0.5577451090, 0.5562956155, 0.5548444274, + 0.5533915492, 0.5519369853, 0.5504807401, 0.5490228180, 0.5475632235, + 0.5461019610, 0.5446390350, 0.5431744500, 0.5417082103, 0.5402403205, + 0.5387707850, 0.5372996083, 0.5358267950, 0.5343523494, 0.5328762761, + 0.5313985795, 0.5299192642, 0.5284383347, 0.5269557955, 0.5254716511, + 0.5239859060, 0.5224985647, 0.5210096318, 0.5195191119, 0.5180270094, + 0.5165333289, 0.5150380749, 0.5135412521, 0.5120428649, 0.5105429179, + 0.5090414158, 0.5075383630, 0.5060337641, 0.5045276238, 0.5030199466, + 0.5015107372, 0.5000000000, 0.4984877398, 0.4969739610, 0.4954586684, + 0.4939418666, 0.4924235601, 0.4909037536, 0.4893824517, 0.4878596591, + 0.4863353804, 0.4848096202, 0.4832823833, 0.4817536741, 0.4802234974, + 0.4786918579, 0.4771587603, 0.4756242091, 0.4740882090, 0.4725507649, + 0.4710118812, 0.4694715628, 0.4679298143, 0.4663866403, 0.4648420457, + 0.4632960351, 0.4617486132, 0.4601997848, 0.4586495545, 0.4570979271, + 0.4555449072, 0.4539904997, 0.4524347093, 0.4508775407, 0.4493189986, + 0.4477590878, 0.4461978131, 0.4446351792, 0.4430711908, 0.4415058528, + 0.4399391699, 0.4383711468, 0.4368017884, 0.4352310994, 0.4336590846, + 0.4320857488, 0.4305110968, 0.4289351334, 0.4273578634, 0.4257792916, + 0.4241994227, 0.4226182617, 0.4210358134, 0.4194520824, 0.4178670738, + 0.4162807923, 0.4146932427, 0.4131044298, 0.4115143586, 0.4099230338, + 0.4083304604, 0.4067366431, 0.4051415868, 0.4035452964, 0.4019477767, + 0.4003490326, 0.3987490689, 0.3971478906, 0.3955455026, 0.3939419096, + 0.3923371166, 0.3907311285, 0.3891239501, 0.3875155865, 0.3859060423, + 0.3842953227, 0.3826834324, 0.3810703764, 0.3794561595, 0.3778407868, + 0.3762242631, 0.3746065934, 0.3729877826, 0.3713678356, 0.3697467573, + 0.3681245527, 0.3665012267, 0.3648767843, 0.3632512305, 0.3616245701, + 0.3599968081, 0.3583679495, 0.3567379993, 0.3551069624, 0.3534748438, + 0.3518416484, 0.3502073813, 0.3485720473, 0.3469356516, 0.3452981990, + 0.3436596946, 0.3420201433, 0.3403795502, 0.3387379202, 0.3370952584, + 0.3354515698, 0.3338068592, 0.3321611319, 0.3305143927, 0.3288666467, + 0.3272178990, 0.3255681545, 0.3239174182, 0.3222656952, 0.3206129906, + 0.3189593093, 0.3173046564, 0.3156490369, 0.3139924560, 0.3123349185, + 0.3106764296, 0.3090169944, 0.3073566178, 0.3056953050, 0.3040330609, + 0.3023698908, 0.3007057995, 0.2990407923, 0.2973748741, 0.2957080500, + 0.2940403252, 0.2923717047, 0.2907021936, 0.2890317969, 0.2873605198, + 0.2856883674, 0.2840153447, 0.2823414568, 0.2806667089, 0.2789911060, + 0.2773146533, 0.2756373558, 0.2739592187, 0.2722802470, 0.2706004460, + 0.2689198206, 0.2672383761, 0.2655561175, 0.2638730500, 0.2621891786, + 0.2605045086, 0.2588190451, 0.2571327932, 0.2554457579, 0.2537579446, + 0.2520693582, 0.2503800041, 0.2486898872, 0.2469990127, 0.2453073859, + 0.2436150118, 0.2419218956, 0.2402280425, 0.2385334576, 0.2368381461, + 0.2351421131, 0.2334453639, 0.2317479035, 0.2300497372, 0.2283508701, + 0.2266513074, 0.2249510543, 0.2232501160, 0.2215484976, 0.2198462044, + 0.2181432414, 0.2164396139, 0.2147353272, 0.2130303863, 0.2113247965, + 0.2096185629, 0.2079116908, 0.2062041854, 0.2044960518, 0.2027872954, + 0.2010779211, 0.1993679344, 0.1976573404, 0.1959461442, 0.1942343512, + 0.1925219665, 0.1908089954, 0.1890954430, 0.1873813146, 0.1856666154, + 0.1839513506, 0.1822355255, 0.1805191453, 0.1788022151, 0.1770847403, + 0.1753667261, 0.1736481777, 0.1719291003, 0.1702094992, 0.1684893796, + 0.1667687467, 0.1650476059, 0.1633259622, 0.1616038211, 0.1598811877, + 0.1581580673, 0.1564344650, 0.1547103863, 0.1529858363, 0.1512608202, + 0.1495353434, 0.1478094111, 0.1460830286, 0.1443562010, 0.1426289337, + 0.1409012319, 0.1391731010, 0.1374445460, 0.1357155724, 0.1339861854, + 0.1322563903, 0.1305261922, 0.1287955966, 0.1270646086, 0.1253332336, + 0.1236014767, 0.1218693434, 0.1201368388, 0.1184039683, 0.1166707371, + 0.1149371505, 0.1132032138, 0.1114689322, 0.1097343111, 0.1079993557, + 0.1062640713, 0.1045284633, 0.1027925368, 0.1010562972, 0.0993197497, + 0.0975828998, 0.0958457525, 0.0941083133, 0.0923705874, 0.0906325802, + 0.0888942969, 0.0871557427, 0.0854169231, 0.0836778433, 0.0819385086, + 0.0801989243, 0.0784590957, 0.0767190281, 0.0749787268, 0.0732381971, + 0.0714974443, 0.0697564737, 0.0680152907, 0.0662739004, 0.0645323083, + 0.0627905195, 0.0610485395, 0.0593063736, 0.0575640270, 0.0558215050, + 0.0540788130, 0.0523359562, 0.0505929401, 0.0488497698, 0.0471064507, + 0.0453629881, 0.0436193874, 0.0418756537, 0.0401317925, 0.0383878091, + 0.0366437087, 0.0348994967, 0.0331551784, 0.0314107591, 0.0296662441, + 0.0279216387, 0.0261769483, 0.0244321782, 0.0226873336, 0.0209424199, + 0.0191974424, 0.0174524064, 0.0157073173, 0.0139621803, 0.0122170008, + 0.0104717841, 0.0087265355, 0.0069812603, 0.0052359638, 0.0034906514, + 0.0017453284, 0.0000000000, -0.0017453284, -0.0034906514,-0.0052359638, + -0.0069812603, -0.0087265355, -0.0104717841, -0.0122170008,-0.0139621803, + -0.0157073173, -0.0174524064, -0.0191974424, -0.0209424199,-0.0226873336, + -0.0244321782, -0.0261769483, -0.0279216387, -0.0296662441,-0.0314107591, + -0.0331551784, -0.0348994967, -0.0366437087, -0.0383878091,-0.0401317925, + -0.0418756537, -0.0436193874, -0.0453629881, -0.0471064507,-0.0488497698, + -0.0505929401, -0.0523359562, -0.0540788130, -0.0558215050,-0.0575640270, + -0.0593063736, -0.0610485395, -0.0627905195, -0.0645323083,-0.0662739004, + -0.0680152907, -0.0697564737, -0.0714974443, -0.0732381971,-0.0749787268, + -0.0767190281, -0.0784590957, -0.0801989243, -0.0819385086,-0.0836778433, + -0.0854169231, -0.0871557427, -0.0888942969, -0.0906325802,-0.0923705874, + -0.0941083133, -0.0958457525, -0.0975828998, -0.0993197497,-0.1010562972, + -0.1027925368, -0.1045284633, -0.1062640713, -0.1079993557,-0.1097343111, + -0.1114689322, -0.1132032138, -0.1149371505, -0.1166707371,-0.1184039683, + -0.1201368388, -0.1218693434, -0.1236014767, -0.1253332336,-0.1270646086, + -0.1287955966, -0.1305261922, -0.1322563903, -0.1339861854,-0.1357155724, + -0.1374445460, -0.1391731010, -0.1409012319, -0.1426289337,-0.1443562010, + -0.1460830286, -0.1478094111, -0.1495353434, -0.1512608202,-0.1529858363, + -0.1547103863, -0.1564344650, -0.1581580673, -0.1598811877,-0.1616038211, + -0.1633259622, -0.1650476059, -0.1667687467, -0.1684893796,-0.1702094992, + -0.1719291003, -0.1736481777, -0.1753667261, -0.1770847403,-0.1788022151, + -0.1805191453, -0.1822355255, -0.1839513506, -0.1856666154,-0.1873813146, + -0.1890954430, -0.1908089954, -0.1925219665, -0.1942343512,-0.1959461442, + -0.1976573404, -0.1993679344, -0.2010779211, -0.2027872954,-0.2044960518, + -0.2062041854, -0.2079116908, -0.2096185629, -0.2113247965,-0.2130303863, + -0.2147353272, -0.2164396139, -0.2181432414, -0.2198462044,-0.2215484976, + -0.2232501160, -0.2249510543, -0.2266513074, -0.2283508701,-0.2300497372, + -0.2317479035, -0.2334453639, -0.2351421131, -0.2368381461,-0.2385334576, + -0.2402280425, -0.2419218956, -0.2436150118, -0.2453073859,-0.2469990127, + -0.2486898872, -0.2503800041, -0.2520693582, -0.2537579446,-0.2554457579, + -0.2571327932, -0.2588190451, -0.2605045086, -0.2621891786,-0.2638730500, + -0.2655561175, -0.2672383761, -0.2689198206, -0.2706004460,-0.2722802470, + -0.2739592187, -0.2756373558, -0.2773146533, -0.2789911060,-0.2806667089, + -0.2823414568, -0.2840153447, -0.2856883674, -0.2873605198,-0.2890317969, + -0.2907021936, -0.2923717047, -0.2940403252, -0.2957080500,-0.2973748741, + -0.2990407923, -0.3007057995, -0.3023698908, -0.3040330609,-0.3056953050, + -0.3073566178, -0.3090169944, -0.3106764296, -0.3123349185,-0.3139924560, + -0.3156490369, -0.3173046564, -0.3189593093, -0.3206129906,-0.3222656952, + -0.3239174182, -0.3255681545, -0.3272178990, -0.3288666467,-0.3305143927, + -0.3321611319, -0.3338068592, -0.3354515698, -0.3370952584,-0.3387379202, + -0.3403795502, -0.3420201433, -0.3436596946, -0.3452981990,-0.3469356516, + -0.3485720473, -0.3502073813, -0.3518416484, -0.3534748438,-0.3551069624, + -0.3567379993, -0.3583679495, -0.3599968081, -0.3616245701,-0.3632512305, + -0.3648767843, -0.3665012267, -0.3681245527, -0.3697467573,-0.3713678356, + -0.3729877826, -0.3746065934, -0.3762242631, -0.3778407868,-0.3794561595, + -0.3810703764, -0.3826834324, -0.3842953227, -0.3859060423,-0.3875155865, + -0.3891239501, -0.3907311285, -0.3923371166, -0.3939419096,-0.3955455026, + -0.3971478906, -0.3987490689, -0.4003490326, -0.4019477767,-0.4035452964, + -0.4051415868, -0.4067366431, -0.4083304604, -0.4099230338,-0.4115143586, + -0.4131044298, -0.4146932427, -0.4162807923, -0.4178670738,-0.4194520824, + -0.4210358134, -0.4226182617, -0.4241994227, -0.4257792916,-0.4273578634, + -0.4289351334, -0.4305110968, -0.4320857488, -0.4336590846,-0.4352310994, + -0.4368017884, -0.4383711468, -0.4399391699, -0.4415058528,-0.4430711908, + -0.4446351792, -0.4461978131, -0.4477590878, -0.4493189986,-0.4508775407, + -0.4524347093, -0.4539904997, -0.4555449072, -0.4570979271,-0.4586495545, + -0.4601997848, -0.4617486132, -0.4632960351, -0.4648420457,-0.4663866403, + -0.4679298143, -0.4694715628, -0.4710118812, -0.4725507649,-0.4740882090, + -0.4756242091, -0.4771587603, -0.4786918579, -0.4802234974,-0.4817536741, + -0.4832823833, -0.4848096202, -0.4863353804, -0.4878596591,-0.4893824517, + -0.4909037536, -0.4924235601, -0.4939418666, -0.4954586684,-0.4969739610, + -0.4984877398, -0.5000000000, -0.5015107372, -0.5030199466,-0.5045276238, + -0.5060337641, -0.5075383630, -0.5090414158, -0.5105429179,-0.5120428649, + -0.5135412521, -0.5150380749, -0.5165333289, -0.5180270094,-0.5195191119, + -0.5210096318, -0.5224985647, -0.5239859060, -0.5254716511,-0.5269557955, + -0.5284383347, -0.5299192642, -0.5313985795, -0.5328762761,-0.5343523494, + -0.5358267950, -0.5372996083, -0.5387707850, -0.5402403205,-0.5417082103, + -0.5431744500, -0.5446390350, -0.5461019610, -0.5475632235,-0.5490228180, + -0.5504807401, -0.5519369853, -0.5533915492, -0.5548444274,-0.5562956155, + -0.5577451090, -0.5591929035, -0.5606389946, -0.5620833779,-0.5635260489, + -0.5649670034, -0.5664062369, -0.5678437451, -0.5692795234,-0.5707135677, + -0.5721458734, -0.5735764364, -0.5750052520, -0.5764323162,-0.5778576244, + -0.5792811723, -0.5807029557, -0.5821229702, -0.5835412114,-0.5849576750, + -0.5863723567, -0.5877852523, -0.5891963574, -0.5906056676,-0.5920131788, + -0.5934188866, -0.5948227868, -0.5962248750, -0.5976251470,-0.5990235985, + -0.6004202253, -0.6018150232, -0.6032079877, -0.6045991149,-0.6059884003, + -0.6073758397, -0.6087614290, -0.6101451639, -0.6115270402,-0.6129070537, + -0.6142852001, -0.6156614753, -0.6170358751, -0.6184083954,-0.6197790318, + -0.6211477803, -0.6225146366, -0.6238795967, -0.6252426563,-0.6266038114, + -0.6279630576, -0.6293203910, -0.6306758074, -0.6320293027,-0.6333808726, + -0.6347305132, -0.6360782203, -0.6374239897, -0.6387678175,-0.6401096995, + -0.6414496316, -0.6427876097, -0.6441236298, -0.6454576877,-0.6467897795, + -0.6481199011, -0.6494480483, -0.6507742173, -0.6520984038,-0.6534206040, + -0.6547408137, -0.6560590290, -0.6573752458, -0.6586894601,-0.6600016680, + -0.6613118653, -0.6626200482, -0.6639262127, -0.6652303547,-0.6665324702, + -0.6678325555, -0.6691306064, -0.6704266190, -0.6717205893,-0.6730125135, + -0.6743023876, -0.6755902076, -0.6768759697, -0.6781596699,-0.6794413043, + -0.6807208690, -0.6819983601, -0.6832737737, -0.6845471059,-0.6858183529, + -0.6870875108, -0.6883545757, -0.6896195437, -0.6908824111,-0.6921431739, + -0.6934018283, -0.6946583705, -0.6959127966, -0.6971651029,-0.6984152854, + -0.6996633405, -0.7009092643, -0.7021530530, -0.7033947028,-0.7046342100, + -0.7058715707, -0.7071067812, -0.7083398377, -0.7095707365,-0.7107994739, + -0.7120260460, -0.7132504492, -0.7144726796, -0.7156927337,-0.7169106077, + -0.7181262978, -0.7193398003, -0.7205511117, -0.7217602281,-0.7229671459, + -0.7241718614, -0.7253743710, -0.7265746710, -0.7277727577,-0.7289686274, + -0.7301622766, -0.7313537016, -0.7325428988, -0.7337298645,-0.7349145951, + -0.7360970871, -0.7372773368, -0.7384553406, -0.7396310950,-0.7408045963, + -0.7419758410, -0.7431448255, -0.7443115462, -0.7454759997,-0.7466381823, + -0.7477980905, -0.7489557208, -0.7501110696, -0.7512641335,-0.7524149089, + -0.7535633923, -0.7547095802, -0.7558534692, -0.7569950557,-0.7581343362, + -0.7592713073, -0.7604059656, -0.7615383075, -0.7626683297,-0.7637960286, + -0.7649214009, -0.7660444431, -0.7671651518, -0.7682835236,-0.7693995550, + -0.7705132428, -0.7716245834, -0.7727335735, -0.7738402097,-0.7749444887, + -0.7760464071, -0.7771459615, -0.7782431485, -0.7793379649,-0.7804304073, + -0.7815204724, -0.7826081569, -0.7836934573, -0.7847763705,-0.7858568932, + -0.7869350220, -0.7880107536, -0.7890840848, -0.7901550124,-0.7912235330, + -0.7922896434, -0.7933533403, -0.7944146205, -0.7954734809,-0.7965299180, + -0.7975839288, -0.7986355100, -0.7996846585, -0.8007313709,-0.8017756442, + -0.8028174752, -0.8038568606, -0.8048937974, -0.8059282822,-0.8069603121, + -0.8079898839, -0.8090169944, -0.8100416404, -0.8110638190,-0.8120835269, + -0.8131007610, -0.8141155184, -0.8151277957, -0.8161375901,-0.8171448983, + -0.8181497174, -0.8191520443, -0.8201518759, -0.8211492091,-0.8221440410, + -0.8231363685, -0.8241261886, -0.8251134983, -0.8260982945,-0.8270805743, + -0.8280603346, -0.8290375726, -0.8300122851, -0.8309844693,-0.8319541221, + -0.8329212407, -0.8338858221, -0.8348478633, -0.8358073614,-0.8367643135, + -0.8377187166, -0.8386705679, -0.8396198645, -0.8405666035,-0.8415107819, + -0.8424523970, -0.8433914458, -0.8443279255, -0.8452618332,-0.8461931661, + -0.8471219214, -0.8480480962, -0.8489716876, -0.8498926930,-0.8508111094, + -0.8517269341, -0.8526401644, -0.8535507973, -0.8544588301,-0.8553642602, + -0.8562670846, -0.8571673007, -0.8580649057, -0.8589598969,-0.8598522716, + -0.8607420270, -0.8616291604, -0.8625136692, -0.8633955506,-0.8642748020, + -0.8651514206, -0.8660254038, -0.8668967489, -0.8677654534,-0.8686315144, + -0.8694949295, -0.8703556959, -0.8712138111, -0.8720692724,-0.8729220773, + -0.8737722230, -0.8746197071, -0.8754645270, -0.8763066800,-0.8771461637, + -0.8779829754, -0.8788171127, -0.8796485729, -0.8804773535,-0.8813034521, + -0.8821268660, -0.8829475929, -0.8837656301, -0.8845809752,-0.8853936258, + -0.8862035792, -0.8870108332, -0.8878153851, -0.8886172327,-0.8894163733, + -0.8902128046, -0.8910065242, -0.8917975296, -0.8925858185,-0.8933713883, + -0.8941542368, -0.8949343616, -0.8957117602, -0.8964864304,-0.8972583697, + -0.8980275758, -0.8987940463, -0.8995577790, -0.9003187714,-0.9010770213, + -0.9018325264, -0.9025852843, -0.9033352929, -0.9040825497,-0.9048270525, + -0.9055687990, -0.9063077870, -0.9070440143, -0.9077774785,-0.9085081775, + -0.9092361090, -0.9099612709, -0.9106836608, -0.9114032766,-0.9121201162, + -0.9128341772, -0.9135454576, -0.9142539552, -0.9149596678,-0.9156625933, + -0.9163627296, -0.9170600744, -0.9177546257, -0.9184463813,-0.9191353393, + -0.9198214973, -0.9205048535, -0.9211854056, -0.9218631516,-0.9225380895, + -0.9232102171, -0.9238795325, -0.9245460336, -0.9252097184,-0.9258705848, + -0.9265286309, -0.9271838546, -0.9278362539, -0.9284858269,-0.9291325715, + -0.9297764859, -0.9304175680, -0.9310558159, -0.9316912276,-0.9323238012, + -0.9329535348, -0.9335804265, -0.9342044743, -0.9348256764,-0.9354440308, + -0.9360595357, -0.9366721892, -0.9372819895, -0.9378889346,-0.9384930228, + -0.9390942521, -0.9396926208, -0.9402881270, -0.9408807690,-0.9414705448, + -0.9420574528, -0.9426414911, -0.9432226579, -0.9438009516,-0.9443763702, + -0.9449489122, -0.9455185756, -0.9460853588, -0.9466492601,-0.9472102777, + -0.9477684100, -0.9483236552, -0.9488760116, -0.9494254776,-0.9499720515, + -0.9505157316, -0.9510565163, -0.9515944039, -0.9521293927,-0.9526614813, + -0.9531906678, -0.9537169507, -0.9542403285, -0.9547607995,-0.9552783621, + -0.9557930148, -0.9563047560, -0.9568135841, -0.9573194975,-0.9578224948, + -0.9583225745, -0.9588197349, -0.9593139745, -0.9598052920,-0.9602936857, + -0.9607791542, -0.9612616959, -0.9617413095, -0.9622179935,-0.9626917464, + -0.9631625668, -0.9636304532, -0.9640954042, -0.9645574185,-0.9650164945, + -0.9654726309, -0.9659258263, -0.9663760793, -0.9668233886,-0.9672677528, + -0.9677091705, -0.9681476404, -0.9685831611, -0.9690157314,-0.9694453499, + -0.9698720153, -0.9702957263, -0.9707164816, -0.9711342799,-0.9715491200, + -0.9719610006, -0.9723699204, -0.9727758782, -0.9731788728,-0.9735789029, + -0.9739759673, -0.9743700648, -0.9747611942, -0.9751493543,-0.9755345439, + -0.9759167619, -0.9762960071, -0.9766722783, -0.9770455744,-0.9774158943, + -0.9777832368, -0.9781476007, -0.9785089851, -0.9788673888,-0.9792228106, + -0.9795752496, -0.9799247046, -0.9802711746, -0.9806146585,-0.9809551553, + -0.9812926640, -0.9816271834, -0.9819587127, -0.9822872507,-0.9826127965, + -0.9829353491, -0.9832549076, -0.9835714708, -0.9838850379,-0.9841956080, + -0.9845031800, -0.9848077530, -0.9851093262, -0.9854078985,-0.9857034691, + -0.9859960371, -0.9862856015, -0.9865721616, -0.9868557164,-0.9871362651, + -0.9874138068, -0.9876883406, -0.9879598658, -0.9882283814,-0.9884938868, + -0.9887563810, -0.9890158634, -0.9892723330, -0.9895257891,-0.9897762309, + -0.9900236577, -0.9902680687, -0.9905094632, -0.9907478405,-0.9909831997, + -0.9912155403, -0.9914448614, -0.9916711624, -0.9918944426,-0.9921147013, + -0.9923319379, -0.9925461516, -0.9927573419, -0.9929655081,-0.9931706495, + -0.9933727656, -0.9935718557, -0.9937679192, -0.9939609555,-0.9941509640, + -0.9943379441, -0.9945218954, -0.9947028171, -0.9948807088,-0.9950555700, + -0.9952274000, -0.9953961984, -0.9955619646, -0.9957246982,-0.9958843986, + -0.9960410654, -0.9961946981, -0.9963452962, -0.9964928592,-0.9966373868, + -0.9967788785, -0.9969173337, -0.9970527522, -0.9971851335,-0.9973144772, + -0.9974407829, -0.9975640503, -0.9976842788, -0.9978014683,-0.9979156183, + -0.9980267284, -0.9981347984, -0.9982398279, -0.9983418166,-0.9984407642, + -0.9985366703, -0.9986295348, -0.9987193572, -0.9988061373,-0.9988898750, + -0.9989705698, -0.9990482216, -0.9991228301, -0.9991943951,-0.9992629164, + -0.9993283938, -0.9993908270, -0.9994502159, -0.9995065604,-0.9995598601, + -0.9996101150, -0.9996573250, -0.9997014898, -0.9997426093,-0.9997806835, + -0.9998157121, -0.9998476952, -0.9998766325, -0.9999025240,-0.9999253697, + -0.9999451694, -0.9999619231, -0.9999756307, -0.9999862922,-0.9999939077, + -0.9999984769, -1.0000000000, -0.9999984769, -0.9999939077,-0.9999862922, + -0.9999756307, -0.9999619231, -0.9999451694, -0.9999253697,-0.9999025240, + -0.9998766325, -0.9998476952, -0.9998157121, -0.9997806835,-0.9997426093, + -0.9997014898, -0.9996573250, -0.9996101150, -0.9995598601,-0.9995065604, + -0.9994502159, -0.9993908270, -0.9993283938, -0.9992629164,-0.9991943951, + -0.9991228301, -0.9990482216, -0.9989705698, -0.9988898750,-0.9988061373, + -0.9987193572, -0.9986295348, -0.9985366703, -0.9984407642,-0.9983418166, + -0.9982398279, -0.9981347984, -0.9980267284, -0.9979156183,-0.9978014683, + -0.9976842788, -0.9975640503, -0.9974407829, -0.9973144772,-0.9971851335, + -0.9970527522, -0.9969173337, -0.9967788785, -0.9966373868,-0.9964928592, + -0.9963452962, -0.9961946981, -0.9960410654, -0.9958843986,-0.9957246982, + -0.9955619646, -0.9953961984, -0.9952274000, -0.9950555700,-0.9948807088, + -0.9947028171, -0.9945218954, -0.9943379441, -0.9941509640,-0.9939609555, + -0.9937679192, -0.9935718557, -0.9933727656, -0.9931706495,-0.9929655081, + -0.9927573419, -0.9925461516, -0.9923319379, -0.9921147013,-0.9918944426, + -0.9916711624, -0.9914448614, -0.9912155403, -0.9909831997,-0.9907478405, + -0.9905094632, -0.9902680687, -0.9900236577, -0.9897762309,-0.9895257891, + -0.9892723330, -0.9890158634, -0.9887563810, -0.9884938868,-0.9882283814, + -0.9879598658, -0.9876883406, -0.9874138068, -0.9871362651,-0.9868557164, + -0.9865721616, -0.9862856015, -0.9859960371, -0.9857034691,-0.9854078985, + -0.9851093262, -0.9848077530, -0.9845031800, -0.9841956080,-0.9838850379, + -0.9835714708, -0.9832549076, -0.9829353491, -0.9826127965,-0.9822872507, + -0.9819587127, -0.9816271834, -0.9812926640, -0.9809551553,-0.9806146585, + -0.9802711746, -0.9799247046, -0.9795752496, -0.9792228106,-0.9788673888, + -0.9785089851, -0.9781476007, -0.9777832368, -0.9774158943,-0.9770455744, + -0.9766722783, -0.9762960071, -0.9759167619, -0.9755345439,-0.9751493543, + -0.9747611942, -0.9743700648, -0.9739759673, -0.9735789029,-0.9731788728, + -0.9727758782, -0.9723699204, -0.9719610006, -0.9715491200,-0.9711342799, + -0.9707164816, -0.9702957263, -0.9698720153, -0.9694453499,-0.9690157314, + -0.9685831611, -0.9681476404, -0.9677091705, -0.9672677528,-0.9668233886, + -0.9663760793, -0.9659258263, -0.9654726309, -0.9650164945,-0.9645574185, + -0.9640954042, -0.9636304532, -0.9631625668, -0.9626917464,-0.9622179935, + -0.9617413095, -0.9612616959, -0.9607791542, -0.9602936857,-0.9598052920, + -0.9593139745, -0.9588197349, -0.9583225745, -0.9578224948,-0.9573194975, + -0.9568135841, -0.9563047560, -0.9557930148, -0.9552783621,-0.9547607995, + -0.9542403285, -0.9537169507, -0.9531906678, -0.9526614813,-0.9521293927, + -0.9515944039, -0.9510565163, -0.9505157316, -0.9499720515,-0.9494254776, + -0.9488760116, -0.9483236552, -0.9477684100, -0.9472102777,-0.9466492601, + -0.9460853588, -0.9455185756, -0.9449489122, -0.9443763702,-0.9438009516, + -0.9432226579, -0.9426414911, -0.9420574528, -0.9414705448,-0.9408807690, + -0.9402881270, -0.9396926208, -0.9390942521, -0.9384930228,-0.9378889346, + -0.9372819895, -0.9366721892, -0.9360595357, -0.9354440308,-0.9348256764, + -0.9342044743, -0.9335804265, -0.9329535348, -0.9323238012,-0.9316912276, + -0.9310558159, -0.9304175680, -0.9297764859, -0.9291325715,-0.9284858269, + -0.9278362539, -0.9271838546, -0.9265286309, -0.9258705848,-0.9252097184, + -0.9245460336, -0.9238795325, -0.9232102171, -0.9225380895,-0.9218631516, + -0.9211854056, -0.9205048535, -0.9198214973, -0.9191353393,-0.9184463813, + -0.9177546257, -0.9170600744, -0.9163627296, -0.9156625933,-0.9149596678, + -0.9142539552, -0.9135454576, -0.9128341772, -0.9121201162,-0.9114032766, + -0.9106836608, -0.9099612709, -0.9092361090, -0.9085081775,-0.9077774785, + -0.9070440143, -0.9063077870, -0.9055687990, -0.9048270525,-0.9040825497, + -0.9033352929, -0.9025852843, -0.9018325264, -0.9010770213,-0.9003187714, + -0.8995577790, -0.8987940463, -0.8980275758, -0.8972583697,-0.8964864304, + -0.8957117602, -0.8949343616, -0.8941542368, -0.8933713883,-0.8925858185, + -0.8917975296, -0.8910065242, -0.8902128046, -0.8894163733,-0.8886172327, + -0.8878153851, -0.8870108332, -0.8862035792, -0.8853936258,-0.8845809752, + -0.8837656301, -0.8829475929, -0.8821268660, -0.8813034521,-0.8804773535, + -0.8796485729, -0.8788171127, -0.8779829754, -0.8771461637,-0.8763066800, + -0.8754645270, -0.8746197071, -0.8737722230, -0.8729220773,-0.8720692724, + -0.8712138111, -0.8703556959, -0.8694949295, -0.8686315144,-0.8677654534, + -0.8668967489, -0.8660254038, -0.8651514206, -0.8642748020,-0.8633955506, + -0.8625136692, -0.8616291604, -0.8607420270, -0.8598522716,-0.8589598969, + -0.8580649057, -0.8571673007, -0.8562670846, -0.8553642602,-0.8544588301, + -0.8535507973, -0.8526401644, -0.8517269341, -0.8508111094,-0.8498926930, + -0.8489716876, -0.8480480962, -0.8471219214, -0.8461931661,-0.8452618332, + -0.8443279255, -0.8433914458, -0.8424523970, -0.8415107819,-0.8405666035, + -0.8396198645, -0.8386705679, -0.8377187166, -0.8367643135,-0.8358073614, + -0.8348478633, -0.8338858221, -0.8329212407, -0.8319541221,-0.8309844693, + -0.8300122851, -0.8290375726, -0.8280603346, -0.8270805743,-0.8260982945, + -0.8251134983, -0.8241261886, -0.8231363685, -0.8221440410,-0.8211492091, + -0.8201518759, -0.8191520443, -0.8181497174, -0.8171448983,-0.8161375901, + -0.8151277957, -0.8141155184, -0.8131007610, -0.8120835269,-0.8110638190, + -0.8100416404, -0.8090169944, -0.8079898839, -0.8069603121,-0.8059282822, + -0.8048937974, -0.8038568606, -0.8028174752, -0.8017756442,-0.8007313709, + -0.7996846585, -0.7986355100, -0.7975839288, -0.7965299180,-0.7954734809, + -0.7944146205, -0.7933533403, -0.7922896434, -0.7912235330,-0.7901550124, + -0.7890840848, -0.7880107536, -0.7869350220, -0.7858568932,-0.7847763705, + -0.7836934573, -0.7826081569, -0.7815204724, -0.7804304073,-0.7793379649, + -0.7782431485, -0.7771459615, -0.7760464071, -0.7749444887,-0.7738402097, + -0.7727335735, -0.7716245834, -0.7705132428, -0.7693995550,-0.7682835236, + -0.7671651518, -0.7660444431, -0.7649214009, -0.7637960286,-0.7626683297, + -0.7615383075, -0.7604059656, -0.7592713073, -0.7581343362,-0.7569950557, + -0.7558534692, -0.7547095802, -0.7535633923, -0.7524149089,-0.7512641335, + -0.7501110696, -0.7489557208, -0.7477980905, -0.7466381823,-0.7454759997, + -0.7443115462, -0.7431448255, -0.7419758410, -0.7408045963,-0.7396310950, + -0.7384553406, -0.7372773368, -0.7360970871, -0.7349145951,-0.7337298645, + -0.7325428988, -0.7313537016, -0.7301622766, -0.7289686274,-0.7277727577, + -0.7265746710, -0.7253743710, -0.7241718614, -0.7229671459,-0.7217602281, + -0.7205511117, -0.7193398003, -0.7181262978, -0.7169106077,-0.7156927337, + -0.7144726796, -0.7132504492, -0.7120260460, -0.7107994739,-0.7095707365, + -0.7083398377, -0.7071067812, -0.7058715707, -0.7046342100,-0.7033947028, + -0.7021530530, -0.7009092643, -0.6996633405, -0.6984152854,-0.6971651029, + -0.6959127966, -0.6946583705, -0.6934018283, -0.6921431739,-0.6908824111, + -0.6896195437, -0.6883545757, -0.6870875108, -0.6858183529,-0.6845471059, + -0.6832737737, -0.6819983601, -0.6807208690, -0.6794413043,-0.6781596699, + -0.6768759697, -0.6755902076, -0.6743023876, -0.6730125135,-0.6717205893, + -0.6704266190, -0.6691306064, -0.6678325555, -0.6665324702,-0.6652303547, + -0.6639262127, -0.6626200482, -0.6613118653, -0.6600016680,-0.6586894601, + -0.6573752458, -0.6560590290, -0.6547408137, -0.6534206040,-0.6520984038, + -0.6507742173, -0.6494480483, -0.6481199011, -0.6467897795,-0.6454576877, + -0.6441236298, -0.6427876097, -0.6414496316, -0.6401096995,-0.6387678175, + -0.6374239897, -0.6360782203, -0.6347305132, -0.6333808726,-0.6320293027, + -0.6306758074, -0.6293203910, -0.6279630576, -0.6266038114,-0.6252426563, + -0.6238795967, -0.6225146366, -0.6211477803, -0.6197790318,-0.6184083954, + -0.6170358751, -0.6156614753, -0.6142852001, -0.6129070537,-0.6115270402, + -0.6101451639, -0.6087614290, -0.6073758397, -0.6059884003,-0.6045991149, + -0.6032079877, -0.6018150232, -0.6004202253, -0.5990235985,-0.5976251470, + -0.5962248750, -0.5948227868, -0.5934188866, -0.5920131788,-0.5906056676, + -0.5891963574, -0.5877852523, -0.5863723567, -0.5849576750,-0.5835412114, + -0.5821229702, -0.5807029557, -0.5792811723, -0.5778576244,-0.5764323162, + -0.5750052520, -0.5735764364, -0.5721458734, -0.5707135677,-0.5692795234, + -0.5678437451, -0.5664062369, -0.5649670034, -0.5635260489,-0.5620833779, + -0.5606389946, -0.5591929035, -0.5577451090, -0.5562956155,-0.5548444274, + -0.5533915492, -0.5519369853, -0.5504807401, -0.5490228180,-0.5475632235, + -0.5461019610, -0.5446390350, -0.5431744500, -0.5417082103,-0.5402403205, + -0.5387707850, -0.5372996083, -0.5358267950, -0.5343523494,-0.5328762761, + -0.5313985795, -0.5299192642, -0.5284383347, -0.5269557955,-0.5254716511, + -0.5239859060, -0.5224985647, -0.5210096318, -0.5195191119,-0.5180270094, + -0.5165333289, -0.5150380749, -0.5135412521, -0.5120428649,-0.5105429179, + -0.5090414158, -0.5075383630, -0.5060337641, -0.5045276238,-0.5030199466, + -0.5015107372, -0.5000000000, -0.4984877398, -0.4969739610,-0.4954586684, + -0.4939418666, -0.4924235601, -0.4909037536, -0.4893824517,-0.4878596591, + -0.4863353804, -0.4848096202, -0.4832823833, -0.4817536741,-0.4802234974, + -0.4786918579, -0.4771587603, -0.4756242091, -0.4740882090,-0.4725507649, + -0.4710118812, -0.4694715628, -0.4679298143, -0.4663866403,-0.4648420457, + -0.4632960351, -0.4617486132, -0.4601997848, -0.4586495545,-0.4570979271, + -0.4555449072, -0.4539904997, -0.4524347093, -0.4508775407,-0.4493189986, + -0.4477590878, -0.4461978131, -0.4446351792, -0.4430711908,-0.4415058528, + -0.4399391699, -0.4383711468, -0.4368017884, -0.4352310994,-0.4336590846, + -0.4320857488, -0.4305110968, -0.4289351334, -0.4273578634,-0.4257792916, + -0.4241994227, -0.4226182617, -0.4210358134, -0.4194520824,-0.4178670738, + -0.4162807923, -0.4146932427, -0.4131044298, -0.4115143586,-0.4099230338, + -0.4083304604, -0.4067366431, -0.4051415868, -0.4035452964,-0.4019477767, + -0.4003490326, -0.3987490689, -0.3971478906, -0.3955455026,-0.3939419096, + -0.3923371166, -0.3907311285, -0.3891239501, -0.3875155865,-0.3859060423, + -0.3842953227, -0.3826834324, -0.3810703764, -0.3794561595,-0.3778407868, + -0.3762242631, -0.3746065934, -0.3729877826, -0.3713678356,-0.3697467573, + -0.3681245527, -0.3665012267, -0.3648767843, -0.3632512305,-0.3616245701, + -0.3599968081, -0.3583679495, -0.3567379993, -0.3551069624,-0.3534748438, + -0.3518416484, -0.3502073813, -0.3485720473, -0.3469356516,-0.3452981990, + -0.3436596946, -0.3420201433, -0.3403795502, -0.3387379202,-0.3370952584, + -0.3354515698, -0.3338068592, -0.3321611319, -0.3305143927,-0.3288666467, + -0.3272178990, -0.3255681545, -0.3239174182, -0.3222656952,-0.3206129906, + -0.3189593093, -0.3173046564, -0.3156490369, -0.3139924560,-0.3123349185, + -0.3106764296, -0.3090169944, -0.3073566178, -0.3056953050,-0.3040330609, + -0.3023698908, -0.3007057995, -0.2990407923, -0.2973748741,-0.2957080500, + -0.2940403252, -0.2923717047, -0.2907021936, -0.2890317969,-0.2873605198, + -0.2856883674, -0.2840153447, -0.2823414568, -0.2806667089,-0.2789911060, + -0.2773146533, -0.2756373558, -0.2739592187, -0.2722802470,-0.2706004460, + -0.2689198206, -0.2672383761, -0.2655561175, -0.2638730500,-0.2621891786, + -0.2605045086, -0.2588190451, -0.2571327932, -0.2554457579,-0.2537579446, + -0.2520693582, -0.2503800041, -0.2486898872, -0.2469990127,-0.2453073859, + -0.2436150118, -0.2419218956, -0.2402280425, -0.2385334576,-0.2368381461, + -0.2351421131, -0.2334453639, -0.2317479035, -0.2300497372,-0.2283508701, + -0.2266513074, -0.2249510543, -0.2232501160, -0.2215484976,-0.2198462044, + -0.2181432414, -0.2164396139, -0.2147353272, -0.2130303863,-0.2113247965, + -0.2096185629, -0.2079116908, -0.2062041854, -0.2044960518,-0.2027872954, + -0.2010779211, -0.1993679344, -0.1976573404, -0.1959461442,-0.1942343512, + -0.1925219665, -0.1908089954, -0.1890954430, -0.1873813146,-0.1856666154, + -0.1839513506, -0.1822355255, -0.1805191453, -0.1788022151,-0.1770847403, + -0.1753667261, -0.1736481777, -0.1719291003, -0.1702094992,-0.1684893796, + -0.1667687467, -0.1650476059, -0.1633259622, -0.1616038211,-0.1598811877, + -0.1581580673, -0.1564344650, -0.1547103863, -0.1529858363,-0.1512608202, + -0.1495353434, -0.1478094111, -0.1460830286, -0.1443562010,-0.1426289337, + -0.1409012319, -0.1391731010, -0.1374445460, -0.1357155724,-0.1339861854, + -0.1322563903, -0.1305261922, -0.1287955966, -0.1270646086,-0.1253332336, + -0.1236014767, -0.1218693434, -0.1201368388, -0.1184039683,-0.1166707371, + -0.1149371505, -0.1132032138, -0.1114689322, -0.1097343111,-0.1079993557, + -0.1062640713, -0.1045284633, -0.1027925368, -0.1010562972,-0.0993197497, + -0.0975828998, -0.0958457525, -0.0941083133, -0.0923705874,-0.0906325802, + -0.0888942969, -0.0871557427, -0.0854169231, -0.0836778433,-0.0819385086, + -0.0801989243, -0.0784590957, -0.0767190281, -0.0749787268,-0.0732381971, + -0.0714974443, -0.0697564737, -0.0680152907, -0.0662739004,-0.0645323083, + -0.0627905195, -0.0610485395, -0.0593063736, -0.0575640270,-0.0558215050, + -0.0540788130, -0.0523359562, -0.0505929401, -0.0488497698,-0.0471064507, + -0.0453629881, -0.0436193874, -0.0418756537, -0.0401317925,-0.0383878091, + -0.0366437087, -0.0348994967, -0.0331551784, -0.0314107591,-0.0296662441, + -0.0279216387, -0.0261769483, -0.0244321782, -0.0226873336,-0.0209424199, + -0.0191974424, -0.0174524064, -0.0157073173, -0.0139621803,-0.0122170008, + -0.0104717841, -0.0087265355, -0.0069812603, -0.0052359638,-0.0034906514, + -0.0017453284, -0.0000000000, 0.0017453284, 0.0034906514, 0.0052359638, + 0.0069812603, 0.0087265355, 0.0104717841, 0.0122170008, 0.0139621803, + 0.0157073173, 0.0174524064, 0.0191974424, 0.0209424199, 0.0226873336, + 0.0244321782, 0.0261769483, 0.0279216387, 0.0296662441, 0.0314107591, + 0.0331551784, 0.0348994967, 0.0366437087, 0.0383878091, 0.0401317925, + 0.0418756537, 0.0436193874, 0.0453629881, 0.0471064507, 0.0488497698, + 0.0505929401, 0.0523359562, 0.0540788130, 0.0558215050, 0.0575640270, + 0.0593063736, 0.0610485395, 0.0627905195, 0.0645323083, 0.0662739004, + 0.0680152907, 0.0697564737, 0.0714974443, 0.0732381971, 0.0749787268, + 0.0767190281, 0.0784590957, 0.0801989243, 0.0819385086, 0.0836778433, + 0.0854169231, 0.0871557427, 0.0888942969, 0.0906325802, 0.0923705874, + 0.0941083133, 0.0958457525, 0.0975828998, 0.0993197497, 0.1010562972, + 0.1027925368, 0.1045284633, 0.1062640713, 0.1079993557, 0.1097343111, + 0.1114689322, 0.1132032138, 0.1149371505, 0.1166707371, 0.1184039683, + 0.1201368388, 0.1218693434, 0.1236014767, 0.1253332336, 0.1270646086, + 0.1287955966, 0.1305261922, 0.1322563903, 0.1339861854, 0.1357155724, + 0.1374445460, 0.1391731010, 0.1409012319, 0.1426289337, 0.1443562010, + 0.1460830286, 0.1478094111, 0.1495353434, 0.1512608202, 0.1529858363, + 0.1547103863, 0.1564344650, 0.1581580673, 0.1598811877, 0.1616038211, + 0.1633259622, 0.1650476059, 0.1667687467, 0.1684893796, 0.1702094992, + 0.1719291003, 0.1736481777, 0.1753667261, 0.1770847403, 0.1788022151, + 0.1805191453, 0.1822355255, 0.1839513506, 0.1856666154, 0.1873813146, + 0.1890954430, 0.1908089954, 0.1925219665, 0.1942343512, 0.1959461442, + 0.1976573404, 0.1993679344, 0.2010779211, 0.2027872954, 0.2044960518, + 0.2062041854, 0.2079116908, 0.2096185629, 0.2113247965, 0.2130303863, + 0.2147353272, 0.2164396139, 0.2181432414, 0.2198462044, 0.2215484976, + 0.2232501160, 0.2249510543, 0.2266513074, 0.2283508701, 0.2300497372, + 0.2317479035, 0.2334453639, 0.2351421131, 0.2368381461, 0.2385334576, + 0.2402280425, 0.2419218956, 0.2436150118, 0.2453073859, 0.2469990127, + 0.2486898872, 0.2503800041, 0.2520693582, 0.2537579446, 0.2554457579, + 0.2571327932, 0.2588190451, 0.2605045086, 0.2621891786, 0.2638730500, + 0.2655561175, 0.2672383761, 0.2689198206, 0.2706004460, 0.2722802470, + 0.2739592187, 0.2756373558, 0.2773146533, 0.2789911060, 0.2806667089, + 0.2823414568, 0.2840153447, 0.2856883674, 0.2873605198, 0.2890317969, + 0.2907021936, 0.2923717047, 0.2940403252, 0.2957080500, 0.2973748741, + 0.2990407923, 0.3007057995, 0.3023698908, 0.3040330609, 0.3056953050, + 0.3073566178, 0.3090169944, 0.3106764296, 0.3123349185, 0.3139924560, + 0.3156490369, 0.3173046564, 0.3189593093, 0.3206129906, 0.3222656952, + 0.3239174182, 0.3255681545, 0.3272178990, 0.3288666467, 0.3305143927, + 0.3321611319, 0.3338068592, 0.3354515698, 0.3370952584, 0.3387379202, + 0.3403795502, 0.3420201433, 0.3436596946, 0.3452981990, 0.3469356516, + 0.3485720473, 0.3502073813, 0.3518416484, 0.3534748438, 0.3551069624, + 0.3567379993, 0.3583679495, 0.3599968081, 0.3616245701, 0.3632512305, + 0.3648767843, 0.3665012267, 0.3681245527, 0.3697467573, 0.3713678356, + 0.3729877826, 0.3746065934, 0.3762242631, 0.3778407868, 0.3794561595, + 0.3810703764, 0.3826834324, 0.3842953227, 0.3859060423, 0.3875155865, + 0.3891239501, 0.3907311285, 0.3923371166, 0.3939419096, 0.3955455026, + 0.3971478906, 0.3987490689, 0.4003490326, 0.4019477767, 0.4035452964, + 0.4051415868, 0.4067366431, 0.4083304604, 0.4099230338, 0.4115143586, + 0.4131044298, 0.4146932427, 0.4162807923, 0.4178670738, 0.4194520824, + 0.4210358134, 0.4226182617, 0.4241994227, 0.4257792916, 0.4273578634, + 0.4289351334, 0.4305110968, 0.4320857488, 0.4336590846, 0.4352310994, + 0.4368017884, 0.4383711468, 0.4399391699, 0.4415058528, 0.4430711908, + 0.4446351792, 0.4461978131, 0.4477590878, 0.4493189986, 0.4508775407, + 0.4524347093, 0.4539904997, 0.4555449072, 0.4570979271, 0.4586495545, + 0.4601997848, 0.4617486132, 0.4632960351, 0.4648420457, 0.4663866403, + 0.4679298143, 0.4694715628, 0.4710118812, 0.4725507649, 0.4740882090, + 0.4756242091, 0.4771587603, 0.4786918579, 0.4802234974, 0.4817536741, + 0.4832823833, 0.4848096202, 0.4863353804, 0.4878596591, 0.4893824517, + 0.4909037536, 0.4924235601, 0.4939418666, 0.4954586684, 0.4969739610, + 0.4984877398, 0.5000000000, 0.5015107372, 0.5030199466, 0.5045276238, + 0.5060337641, 0.5075383630, 0.5090414158, 0.5105429179, 0.5120428649, + 0.5135412521, 0.5150380749, 0.5165333289, 0.5180270094, 0.5195191119, + 0.5210096318, 0.5224985647, 0.5239859060, 0.5254716511, 0.5269557955, + 0.5284383347, 0.5299192642, 0.5313985795, 0.5328762761, 0.5343523494, + 0.5358267950, 0.5372996083, 0.5387707850, 0.5402403205, 0.5417082103, + 0.5431744500, 0.5446390350, 0.5461019610, 0.5475632235, 0.5490228180, + 0.5504807401, 0.5519369853, 0.5533915492, 0.5548444274, 0.5562956155, + 0.5577451090, 0.5591929035, 0.5606389946, 0.5620833779, 0.5635260489, + 0.5649670034, 0.5664062369, 0.5678437451, 0.5692795234, 0.5707135677, + 0.5721458734, 0.5735764364, 0.5750052520, 0.5764323162, 0.5778576244, + 0.5792811723, 0.5807029557, 0.5821229702, 0.5835412114, 0.5849576750, + 0.5863723567, 0.5877852523, 0.5891963574, 0.5906056676, 0.5920131788, + 0.5934188866, 0.5948227868, 0.5962248750, 0.5976251470, 0.5990235985, + 0.6004202253, 0.6018150232, 0.6032079877, 0.6045991149, 0.6059884003, + 0.6073758397, 0.6087614290, 0.6101451639, 0.6115270402, 0.6129070537, + 0.6142852001, 0.6156614753, 0.6170358751, 0.6184083954, 0.6197790318, + 0.6211477803, 0.6225146366, 0.6238795967, 0.6252426563, 0.6266038114, + 0.6279630576, 0.6293203910, 0.6306758074, 0.6320293027, 0.6333808726, + 0.6347305132, 0.6360782203, 0.6374239897, 0.6387678175, 0.6401096995, + 0.6414496316, 0.6427876097, 0.6441236298, 0.6454576877, 0.6467897795, + 0.6481199011, 0.6494480483, 0.6507742173, 0.6520984038, 0.6534206040, + 0.6547408137, 0.6560590290, 0.6573752458, 0.6586894601, 0.6600016680, + 0.6613118653, 0.6626200482, 0.6639262127, 0.6652303547, 0.6665324702, + 0.6678325555, 0.6691306064, 0.6704266190, 0.6717205893, 0.6730125135, + 0.6743023876, 0.6755902076, 0.6768759697, 0.6781596699, 0.6794413043, + 0.6807208690, 0.6819983601, 0.6832737737, 0.6845471059, 0.6858183529, + 0.6870875108, 0.6883545757, 0.6896195437, 0.6908824111, 0.6921431739, + 0.6934018283, 0.6946583705, 0.6959127966, 0.6971651029, 0.6984152854, + 0.6996633405, 0.7009092643, 0.7021530530, 0.7033947028, 0.7046342100, + 0.7058715707, 0.7071067812, 0.7083398377, 0.7095707365, 0.7107994739, + 0.7120260460, 0.7132504492, 0.7144726796, 0.7156927337, 0.7169106077, + 0.7181262978, 0.7193398003, 0.7205511117, 0.7217602281, 0.7229671459, + 0.7241718614, 0.7253743710, 0.7265746710, 0.7277727577, 0.7289686274, + 0.7301622766, 0.7313537016, 0.7325428988, 0.7337298645, 0.7349145951, + 0.7360970871, 0.7372773368, 0.7384553406, 0.7396310950, 0.7408045963, + 0.7419758410, 0.7431448255, 0.7443115462, 0.7454759997, 0.7466381823, + 0.7477980905, 0.7489557208, 0.7501110696, 0.7512641335, 0.7524149089, + 0.7535633923, 0.7547095802, 0.7558534692, 0.7569950557, 0.7581343362, + 0.7592713073, 0.7604059656, 0.7615383075, 0.7626683297, 0.7637960286, + 0.7649214009, 0.7660444431, 0.7671651518, 0.7682835236, 0.7693995550, + 0.7705132428, 0.7716245834, 0.7727335735, 0.7738402097, 0.7749444887, + 0.7760464071, 0.7771459615, 0.7782431485, 0.7793379649, 0.7804304073, + 0.7815204724, 0.7826081569, 0.7836934573, 0.7847763705, 0.7858568932, + 0.7869350220, 0.7880107536, 0.7890840848, 0.7901550124, 0.7912235330, + 0.7922896434, 0.7933533403, 0.7944146205, 0.7954734809, 0.7965299180, + 0.7975839288, 0.7986355100, 0.7996846585, 0.8007313709, 0.8017756442, + 0.8028174752, 0.8038568606, 0.8048937974, 0.8059282822, 0.8069603121, + 0.8079898839, 0.8090169944, 0.8100416404, 0.8110638190, 0.8120835269, + 0.8131007610, 0.8141155184, 0.8151277957, 0.8161375901, 0.8171448983, + 0.8181497174, 0.8191520443, 0.8201518759, 0.8211492091, 0.8221440410, + 0.8231363685, 0.8241261886, 0.8251134983, 0.8260982945, 0.8270805743, + 0.8280603346, 0.8290375726, 0.8300122851, 0.8309844693, 0.8319541221, + 0.8329212407, 0.8338858221, 0.8348478633, 0.8358073614, 0.8367643135, + 0.8377187166, 0.8386705679, 0.8396198645, 0.8405666035, 0.8415107819, + 0.8424523970, 0.8433914458, 0.8443279255, 0.8452618332, 0.8461931661, + 0.8471219214, 0.8480480962, 0.8489716876, 0.8498926930, 0.8508111094, + 0.8517269341, 0.8526401644, 0.8535507973, 0.8544588301, 0.8553642602, + 0.8562670846, 0.8571673007, 0.8580649057, 0.8589598969, 0.8598522716, + 0.8607420270, 0.8616291604, 0.8625136692, 0.8633955506, 0.8642748020, + 0.8651514206, 0.8660254038, 0.8668967489, 0.8677654534, 0.8686315144, + 0.8694949295, 0.8703556959, 0.8712138111, 0.8720692724, 0.8729220773, + 0.8737722230, 0.8746197071, 0.8754645270, 0.8763066800, 0.8771461637, + 0.8779829754, 0.8788171127, 0.8796485729, 0.8804773535, 0.8813034521, + 0.8821268660, 0.8829475929, 0.8837656301, 0.8845809752, 0.8853936258, + 0.8862035792, 0.8870108332, 0.8878153851, 0.8886172327, 0.8894163733, + 0.8902128046, 0.8910065242, 0.8917975296, 0.8925858185, 0.8933713883, + 0.8941542368, 0.8949343616, 0.8957117602, 0.8964864304, 0.8972583697, + 0.8980275758, 0.8987940463, 0.8995577790, 0.9003187714, 0.9010770213, + 0.9018325264, 0.9025852843, 0.9033352929, 0.9040825497, 0.9048270525, + 0.9055687990, 0.9063077870, 0.9070440143, 0.9077774785, 0.9085081775, + 0.9092361090, 0.9099612709, 0.9106836608, 0.9114032766, 0.9121201162, + 0.9128341772, 0.9135454576, 0.9142539552, 0.9149596678, 0.9156625933, + 0.9163627296, 0.9170600744, 0.9177546257, 0.9184463813, 0.9191353393, + 0.9198214973, 0.9205048535, 0.9211854056, 0.9218631516, 0.9225380895, + 0.9232102171, 0.9238795325, 0.9245460336, 0.9252097184, 0.9258705848, + 0.9265286309, 0.9271838546, 0.9278362539, 0.9284858269, 0.9291325715, + 0.9297764859, 0.9304175680, 0.9310558159, 0.9316912276, 0.9323238012, + 0.9329535348, 0.9335804265, 0.9342044743, 0.9348256764, 0.9354440308, + 0.9360595357, 0.9366721892, 0.9372819895, 0.9378889346, 0.9384930228, + 0.9390942521, 0.9396926208, 0.9402881270, 0.9408807690, 0.9414705448, + 0.9420574528, 0.9426414911, 0.9432226579, 0.9438009516, 0.9443763702, + 0.9449489122, 0.9455185756, 0.9460853588, 0.9466492601, 0.9472102777, + 0.9477684100, 0.9483236552, 0.9488760116, 0.9494254776, 0.9499720515, + 0.9505157316, 0.9510565163, 0.9515944039, 0.9521293927, 0.9526614813, + 0.9531906678, 0.9537169507, 0.9542403285, 0.9547607995, 0.9552783621, + 0.9557930148, 0.9563047560, 0.9568135841, 0.9573194975, 0.9578224948, + 0.9583225745, 0.9588197349, 0.9593139745, 0.9598052920, 0.9602936857, + 0.9607791542, 0.9612616959, 0.9617413095, 0.9622179935, 0.9626917464, + 0.9631625668, 0.9636304532, 0.9640954042, 0.9645574185, 0.9650164945, + 0.9654726309, 0.9659258263, 0.9663760793, 0.9668233886, 0.9672677528, + 0.9677091705, 0.9681476404, 0.9685831611, 0.9690157314, 0.9694453499, + 0.9698720153, 0.9702957263, 0.9707164816, 0.9711342799, 0.9715491200, + 0.9719610006, 0.9723699204, 0.9727758782, 0.9731788728, 0.9735789029, + 0.9739759673, 0.9743700648, 0.9747611942, 0.9751493543, 0.9755345439, + 0.9759167619, 0.9762960071, 0.9766722783, 0.9770455744, 0.9774158943, + 0.9777832368, 0.9781476007, 0.9785089851, 0.9788673888, 0.9792228106, + 0.9795752496, 0.9799247046, 0.9802711746, 0.9806146585, 0.9809551553, + 0.9812926640, 0.9816271834, 0.9819587127, 0.9822872507, 0.9826127965, + 0.9829353491, 0.9832549076, 0.9835714708, 0.9838850379, 0.9841956080, + 0.9845031800, 0.9848077530, 0.9851093262, 0.9854078985, 0.9857034691, + 0.9859960371, 0.9862856015, 0.9865721616, 0.9868557164, 0.9871362651, + 0.9874138068, 0.9876883406, 0.9879598658, 0.9882283814, 0.9884938868, + 0.9887563810, 0.9890158634, 0.9892723330, 0.9895257891, 0.9897762309, + 0.9900236577, 0.9902680687, 0.9905094632, 0.9907478405, 0.9909831997, + 0.9912155403, 0.9914448614, 0.9916711624, 0.9918944426, 0.9921147013, + 0.9923319379, 0.9925461516, 0.9927573419, 0.9929655081, 0.9931706495, + 0.9933727656, 0.9935718557, 0.9937679192, 0.9939609555, 0.9941509640, + 0.9943379441, 0.9945218954, 0.9947028171, 0.9948807088, 0.9950555700, + 0.9952274000, 0.9953961984, 0.9955619646, 0.9957246982, 0.9958843986, + 0.9960410654, 0.9961946981, 0.9963452962, 0.9964928592, 0.9966373868, + 0.9967788785, 0.9969173337, 0.9970527522, 0.9971851335, 0.9973144772, + 0.9974407829, 0.9975640503, 0.9976842788, 0.9978014683, 0.9979156183, + 0.9980267284, 0.9981347984, 0.9982398279, 0.9983418166, 0.9984407642, + 0.9985366703, 0.9986295348, 0.9987193572, 0.9988061373, 0.9988898750, + 0.9989705698, 0.9990482216, 0.9991228301, 0.9991943951, 0.9992629164, + 0.9993283938, 0.9993908270, 0.9994502159, 0.9995065604, 0.9995598601, + 0.9996101150, 0.9996573250, 0.9997014898, 0.9997426093, 0.9997806835, + 0.9998157121, 0.9998476952, 0.9998766325, 0.9999025240, 0.9999253697, + 0.9999451694, 0.9999619231, 0.9999756307, 0.9999862922, 0.9999939077, 0.9999984769 }; diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt index e050fd9b90..88c42f191b 100644 --- a/eeschema/CMakeLists.txt +++ b/eeschema/CMakeLists.txt @@ -14,6 +14,7 @@ set(EESCHEMA_SRCS build_BOM.cpp busentry.cpp bus-wire-junction.cpp + class_BodyItem_Text.cpp class_drawsheet.cpp class_drawsheetpath.cpp class_hierarchical_PIN_sheet.cpp diff --git a/eeschema/class_libentry_fields.cpp b/eeschema/class_libentry_fields.cpp index e15f0a6798..ce768ea46c 100644 --- a/eeschema/class_libentry_fields.cpp +++ b/eeschema/class_libentry_fields.cpp @@ -254,26 +254,52 @@ void LibDrawField::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, */ bool LibDrawField::HitTest( const wxPoint& refPos ) { - // Reference designator text has one additional character (displays U?) - if( m_FieldId == REFERENCE ) - m_Text.Append('?'); - // if using TextHitTest() remember this function uses top to bottom y axis convention - // and for lib items we are using bottom to top convention - // so for non center Y justification we use a trick. - GRTextVertJustifyType vJustify = m_VJustify; - if ( m_VJustify == GR_TEXT_VJUSTIFY_TOP ) - m_VJustify = GR_TEXT_VJUSTIFY_BOTTOM; - else if ( m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM ) - m_VJustify = GR_TEXT_VJUSTIFY_TOP; - - bool hit = TextHitTest(refPos); - m_VJustify = vJustify; - - if( m_FieldId == REFERENCE ) - m_Text.RemoveLast( ); - return hit; + return HitTest( refPos, 0, DefaultTransformMatrix ); } + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = unused here (TextHitTest calculates its threshold ) + * @param aTransMat = the transform matrix + */ +bool LibDrawField::HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ) +{ + int extraCharCount = 0; + // Reference designator text has one or 2 additional character (displays U? or U?A) + if( m_FieldId == REFERENCE ) + { + extraCharCount++; + m_Text.Append('?'); + EDA_LibComponentStruct* parent = (EDA_LibComponentStruct*)m_Parent; + if ( parent && ( parent->m_UnitCount > 1 ) ) + { + m_Text.Append('A'); + extraCharCount++; + } + } + + wxPoint physicalpos = TransformCoordinate( aTransMat, m_Pos ); + wxPoint tmp = m_Pos; + m_Pos = physicalpos; + /* The text orientation may need to be flipped if the + * transformation matrix causes xy axes to be flipped. + * this simple algo works only for schematic matrix (rot 90 or/and mirror) + */ + int t1 = ( aTransMat[0][0] != 0 ) ^ ( m_Orient != 0 ); + int orient = t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT; + EXCHG( m_Orient, orient ); + + bool hit = TextHitTest(aPosRef); + + EXCHG( m_Orient, orient ); + m_Pos = tmp; + + while( extraCharCount-- ) + m_Text.RemoveLast( ); + + return hit; +} // Creation et Duplication d'un field LibDrawField* LibDrawField::GenCopy() diff --git a/eeschema/class_libentry_fields.h b/eeschema/class_libentry_fields.h index da851958e9..42beb54cb8 100644 --- a/eeschema/class_libentry_fields.h +++ b/eeschema/class_libentry_fields.h @@ -74,6 +74,14 @@ public: */ bool HitTest( const wxPoint& refPos ); + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + void operator=( const LibDrawField& field ) { m_FieldId = field.m_FieldId; diff --git a/eeschema/class_pin.cpp b/eeschema/class_pin.cpp index 2546e25634..7a00ead571 100644 --- a/eeschema/class_pin.cpp +++ b/eeschema/class_pin.cpp @@ -5,6 +5,7 @@ #include "fctsys.h" #include "appl_wxstruct.h" #include "gr_basic.h" +#include "trigo.h" #include "common.h" #include "class_drawpanel.h" #include "drawtxt.h" @@ -14,6 +15,20 @@ #include "plot_common.h" #include "protos.h" +const wxChar* MsgPinElectricType[] = +{ + wxT( "input" ), + wxT( "output" ), + wxT( "BiDi" ), + wxT( "3state" ), + wxT( "passive" ), + wxT( "unspc" ), + wxT( "power_in" ), + wxT( "power_out" ), + wxT( "openCol" ), + wxT( "openEm" ), + wxT( "?????" ) +}; LibDrawPin::LibDrawPin() : LibEDA_BaseStruct( COMPONENT_PIN_DRAW_TYPE ) { @@ -27,8 +42,42 @@ LibDrawPin::LibDrawPin() : LibEDA_BaseStruct( COMPONENT_PIN_DRAW_TYPE ) m_PinNameSize = 50; /* Default size for pin name and num */ m_Width = 0; m_typeName = _( "Pin" ); + m_PinNumShapeOpt = 0; + m_PinNameShapeOpt = 0; + m_PinNumPositionOpt = 0; + m_PinNamePositionOpt = 0; +} -// m_PinNumWidth = m_PinNameWidth = 0; // Unused + +/** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ +bool LibDrawPin::HitTest( const wxPoint& aRefPos ) +{ + int mindist = m_Width ? m_Width / 2 : g_DrawDefaultLineThickness / 2; + + // Have a minimal tolerance for hit test + if( mindist < 3 ) + mindist = 3; // = 3 mils + + return HitTest( aRefPos, mindist, DefaultTransformMatrix ); +} + +/** Function HitTest + * @return true if the point aPosRef is near a pin + * @param aRefPos = a wxPoint to test + * @param aThreshold = max distance to a segment + * @param aTransMat = the transform matrix + */ +bool LibDrawPin::HitTest( wxPoint aRefPos, int aThreshold, const int aTransMat[2][2] ) +{ + wxPoint pinPos = TransformCoordinate( aTransMat, m_Pos ); + wxPoint pinEnd = TransformCoordinate( aTransMat, ReturnPinEndPoint() ); + + return TestSegmentHit( aRefPos, pinPos, pinEnd, aThreshold ); } @@ -461,6 +510,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, wxSize PinNumSize( m_PinNumSize, m_PinNumSize ); int nameLineWidth = g_DrawDefaultLineThickness; + nameLineWidth = Clamp_Text_PenSize( nameLineWidth, m_PinNameSize, false ); int numLineWidth = g_DrawDefaultLineThickness; numLineWidth = Clamp_Text_PenSize( numLineWidth, m_PinNumSize, false ); @@ -561,7 +611,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, TEXT_ORIENT_VERT, PinNumSize, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, numLineWidth, - false, false); + false, false ); } else /* PIN_UP */ { @@ -582,7 +632,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, TEXT_ORIENT_VERT, PinNumSize, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, numLineWidth, - false, false); + false, false ); } } } @@ -611,7 +661,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, TEXT_ORIENT_HORIZ, PinNumSize, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, numLineWidth, - false, false); + false, false ); } } else /* Its a vertical line. */ @@ -643,6 +693,7 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, } } + /***************************************************************************** * Plot pin number and pin text info, given the pin line coordinates. * * Same as DrawPinTexts((), but output is the plotter @@ -653,11 +704,11 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, * the opposite direction to x2,y2), otherwise all is drawn outside. * *****************************************************************************/ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos, - int orient, - int TextInside, - bool DrawPinNum, - bool DrawPinName, - int aWidth ) + int orient, + int TextInside, + bool DrawPinNum, + bool DrawPinName, + int aWidth ) { int x, y, x1, y1; wxString StringPinNum; @@ -956,19 +1007,23 @@ LibDrawPin* LibDrawPin::GenCopy() { LibDrawPin* newpin = new LibDrawPin(); - newpin->m_Pos = m_Pos; - newpin->m_PinLen = m_PinLen; - newpin->m_Orient = m_Orient; - newpin->m_PinShape = m_PinShape; - newpin->m_PinType = m_PinType; - newpin->m_Attributs = m_Attributs; - newpin->m_PinNum = m_PinNum; - newpin->m_PinNumSize = m_PinNumSize; - newpin->m_PinNameSize = m_PinNameSize; - newpin->m_Unit = m_Unit; - newpin->m_Convert = m_Convert; - newpin->m_Flags = m_Flags; - newpin->m_Width = m_Width; + newpin->m_Pos = m_Pos; + newpin->m_PinLen = m_PinLen; + newpin->m_Orient = m_Orient; + newpin->m_PinShape = m_PinShape; + newpin->m_PinType = m_PinType; + newpin->m_Attributs = m_Attributs; + newpin->m_PinNum = m_PinNum; + newpin->m_PinNumSize = m_PinNumSize; + newpin->m_PinNameSize = m_PinNameSize; + newpin->m_PinNumShapeOpt = m_PinNumShapeOpt; + newpin->m_PinNameShapeOpt = m_PinNameShapeOpt; + newpin->m_PinNumPositionOpt = m_PinNumPositionOpt; + newpin->m_PinNamePositionOpt = m_PinNamePositionOpt; + newpin->m_Unit = m_Unit; + newpin->m_Convert = m_Convert; + newpin->m_Flags = m_Flags; + newpin->m_Width = m_Width; newpin->m_PinName = m_PinName; diff --git a/eeschema/classes_body_items.cpp b/eeschema/classes_body_items.cpp index 3dd45ee24b..8e11f5d0cb 100644 --- a/eeschema/classes_body_items.cpp +++ b/eeschema/classes_body_items.cpp @@ -15,21 +15,6 @@ #include "protos.h" -const wxChar* MsgPinElectricType[] = -{ - wxT( "input" ), - wxT( "output" ), - wxT( "BiDi" ), - wxT( "3state" ), - wxT( "passive" ), - wxT( "unspc" ), - wxT( "power_in" ), - wxT( "power_out" ), - wxT( "openCol" ), - wxT( "openEm" ), - wxT( "?????" ) -}; - static int fill_tab[3] = { 'N', 'F', 'f' }; //#define DRAW_ARC_WITH_ANGLE // Used to draw arcs @@ -177,21 +162,38 @@ bool LibDrawArc::Load( char* line, wxString& errorMsg ) /** * Function HitTest * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test + * @param aRefPoint A wxPoint to test in eeschema space * @return bool - true if a hit, else false */ -bool LibDrawArc::HitTest( const wxPoint& aRefPos ) +bool LibDrawArc::HitTest( const wxPoint& aRefPoint ) { - wxPoint relpos = aRefPos - m_Pos; - int dist = wxRound( sqrt( ( (double) relpos.x * relpos.x ) + ( (double) relpos.y * relpos.y ) ) ); int mindist = m_Width ? m_Width /2 : g_DrawDefaultLineThickness / 2; // Have a minimal tolerance for hit test if ( mindist < 3 ) mindist = 3; // = 3 mils - if( abs( dist - m_Rayon ) > mindist ) + + return HitTest( aRefPoint, mindist, DefaultTransformMatrix ); +} + +/** Function HitTest + * @return true if the point aPosRef is near this object + * @param aRefPoint = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ +bool LibDrawArc::HitTest( wxPoint aRefPoint, int aThreshold, const int aTransMat[2][2] ) +{ + // TODO: use aTransMat to calculmates parameters + wxPoint relpos = aRefPoint; + NEGATE(relpos.y); // reverse Y axis + + relpos -= m_Pos; + int dist = wxRound( sqrt( ( (double) relpos.x * relpos.x ) + ( (double) relpos.y * relpos.y ) ) ); + + if( abs( dist - m_Rayon ) > aThreshold ) return false; - // We are on the circle, ensure we are on the arc, between m_ArcStart and m_ArcEnd + // We are on the circle, ensure we are only on the arc, i.e. between m_ArcStart and m_ArcEnd int astart = t1; // arc starting point ( in 0.1 degree) int aend = t2; // arc ending point ( in 0.1 degree) int atest = wxRound( atan2(relpos.y, relpos.x) * 1800.0 / M_PI ); @@ -208,6 +210,7 @@ bool LibDrawArc::HitTest( const wxPoint& aRefPos ) return false; } + LibDrawArc* LibDrawArc::GenCopy() { LibDrawArc* newitem = new LibDrawArc(); @@ -422,23 +425,36 @@ bool LibDrawCircle::Load( char* line, wxString& errorMsg ) /** * Function HitTest * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test + * @param aRefPos A wxPoint to test in eeschema space * @return bool - true if a hit, else false */ -bool LibDrawCircle::HitTest( const wxPoint& aRefPos ) +bool LibDrawCircle::HitTest( const wxPoint& aPosRef ) { - wxPoint relpos = aRefPos - m_Pos; - int dist = wxRound( sqrt( ( (double) relpos.x * relpos.x ) + ( (double) relpos.y * relpos.y ) ) ); int mindist = m_Width ? m_Width /2 : g_DrawDefaultLineThickness / 2; // Have a minimal tolerance for hit test if ( mindist < 3 ) mindist = 3; // = 3 mils - if( abs( dist - m_Rayon ) > mindist ) - return false; + return HitTest( aPosRef, mindist, DefaultTransformMatrix ); +} + +/** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ +bool LibDrawCircle::HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ) +{ + wxPoint relpos = aPosRef - TransformCoordinate( aTransMat, m_Pos ); + + int dist = wxRound( sqrt( ( (double) relpos.x * relpos.x ) + ( (double) relpos.y * relpos.y ) ) ); + if( abs( dist - m_Rayon ) <= aThreshold ) + return true; return false; } + LibDrawCircle* LibDrawCircle::GenCopy() { LibDrawCircle* newitem = new LibDrawCircle(); @@ -526,216 +542,6 @@ void LibDrawCircle::DisplayInfo( WinEDA_DrawFrame* frame ) } -/***********************/ -/** class LibDrawText **/ -/***********************/ - -LibDrawText::LibDrawText() : - LibEDA_BaseStruct( COMPONENT_GRAPHIC_TEXT_DRAW_TYPE ), EDA_TextStruct() -{ - m_Size = wxSize( 50, 50 ); - m_typeName = _( "Text" ); -} - - -bool LibDrawText::Save( FILE* ExportFile ) const -{ - wxString text = m_Text; - - // Spaces are not allowed in text because it is not double quoted: - // changed to '~' - text.Replace( wxT( " " ), wxT( "~" ) ); - - fprintf( ExportFile, "T %d %d %d %d %d %d %d %s ", m_Orient, - m_Pos.x, m_Pos.y, m_Size.x, m_Attributs, m_Unit, m_Convert, - CONV_TO_UTF8( text ) ); - fprintf( ExportFile, " %s %d", m_Italic ? "Italic" : "Normal", (m_Bold>0) ? 1 : 0 ); - - char hjustify = 'C'; - if( m_HJustify == GR_TEXT_HJUSTIFY_LEFT ) - hjustify = 'L'; - else if( m_HJustify == GR_TEXT_HJUSTIFY_RIGHT ) - hjustify = 'R'; - - char vjustify = 'C'; - if( m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM ) - vjustify = 'B'; - else if( m_VJustify == GR_TEXT_VJUSTIFY_TOP ) - vjustify = 'T'; - - fprintf( ExportFile, " %c %c", hjustify, vjustify ); - - fprintf( ExportFile, "\n" ); - - return true; -} - - -bool LibDrawText::Load( char* line, wxString& errorMsg ) -{ - int cnt, thickness; - char hjustify = 'C', vjustify = 'C'; - char buf[256]; - char tmp[256]; - - buf[0] = 0; - tmp[0] = 0; // For italic option, Not in old versions - - cnt = sscanf( &line[2], "%d %d %d %d %d %d %d %s %s %d %c %c", - &m_Orient, &m_Pos.x, &m_Pos.y, &m_Size.x, &m_Attributs, - &m_Unit, &m_Convert, buf, tmp, &thickness, &hjustify, &vjustify ); - - if( cnt < 8 ) - { - errorMsg.Printf( _( "text only had %d parameters of the required 8" ), - cnt ); - return false; - } - - m_Size.y = m_Size.x; - - if( strnicmp( tmp, "Italic", 6 ) == 0 ) - m_Italic = true; - if( thickness > 0 ) - { - m_Bold = true; - } - - switch( hjustify ) - { - case 'L': - m_HJustify = GR_TEXT_HJUSTIFY_LEFT; - break; - - case 'C': - m_HJustify = GR_TEXT_HJUSTIFY_CENTER; - break; - - case 'R': - m_HJustify = GR_TEXT_HJUSTIFY_RIGHT; - break; - } - - switch( vjustify ) - { - case 'T': - m_VJustify = GR_TEXT_VJUSTIFY_TOP; - break; - - case 'C': - m_VJustify = GR_TEXT_VJUSTIFY_CENTER; - break; - - case 'B': - m_VJustify = GR_TEXT_VJUSTIFY_BOTTOM; - break; - } - - /* Convert '~' to spaces. */ - m_Text = CONV_FROM_UTF8( buf ); - m_Text.Replace( wxT( "~" ), wxT( " " ) ); - - return true; -} - -/** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ -bool LibDrawText::HitTest( const wxPoint& refPos ) -{ - // if using TextHitTest() remember this function uses top to bottom y axis convention - // and for lib items we are using bottom to top convention - // so for non center Y justification we use a trick. - GRTextVertJustifyType vJustify = m_VJustify; - if ( m_VJustify == GR_TEXT_VJUSTIFY_TOP ) - m_VJustify = GR_TEXT_VJUSTIFY_BOTTOM; - else if ( m_VJustify == GR_TEXT_VJUSTIFY_BOTTOM ) - m_VJustify = GR_TEXT_VJUSTIFY_TOP; - - bool hit = TextHitTest(refPos); - m_VJustify = vJustify; - - return hit; -} - - -LibDrawText* LibDrawText::GenCopy() -{ - LibDrawText* newitem = new LibDrawText(); - - newitem->m_Pos = m_Pos; - newitem->m_Orient = m_Orient; - newitem->m_Size = m_Size; - newitem->m_Attributs = m_Attributs; - newitem->m_Unit = m_Unit; - newitem->m_Convert = m_Convert; - newitem->m_Flags = m_Flags; - newitem->m_Text = m_Text; - newitem->m_Width = m_Width; - newitem->m_Italic = m_Italic; - newitem->m_Bold = m_Bold; - newitem->m_HJustify = m_HJustify; - newitem->m_VJustify = m_VJustify; - return newitem; -} - - -void LibDrawText::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, - const wxPoint& aOffset, int aColor, int aDrawMode, - void* aData, const int aTransformMatrix[2][2] ) -{ - wxPoint pos1, pos2; - - int color = ReturnLayerColor( LAYER_DEVICE ); - int linewidth = m_Width; - - if( linewidth == 0 ) // Use default values for pen size - { - if( m_Bold ) - linewidth = GetPenSizeForBold( m_Size.x ); - else - linewidth = g_DrawDefaultLineThickness; - } - - // Clip pen size for small texts: - linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold ); - - if( aColor < 0 ) // Used normal color or selected color - { - if( ( m_Selected & IS_SELECTED ) ) - color = g_ItemSelectetColor; - } - else - color = aColor; - - pos1 = TransformCoordinate( aTransformMatrix, m_Pos ) + aOffset; - - /* The text orientation may need to be flipped if the - * transformation matrix causes xy axes to be flipped. */ - int t1 = ( aTransformMatrix[0][0] != 0 ) ^ ( m_Orient != 0 ); - - DrawGraphicText( aPanel, aDC, pos1, (EDA_Colors) color, m_Text, - t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT, - m_Size, m_HJustify, m_VJustify, - linewidth, m_Italic, m_Bold ); -} - - -void LibDrawText::DisplayInfo( WinEDA_DrawFrame* frame ) -{ - wxString msg; - - LibEDA_BaseStruct::DisplayInfo( frame ); - - msg = ReturnStringFromValue( g_UnitMetric, m_Width, - EESCHEMA_INTERNAL_UNIT, true ); - - frame->MsgPanel->Affiche_1_Parametre( 20, _( "Line width" ), msg, BLUE ); -} - /*************************/ /** class LibDrawSquare **/ @@ -857,6 +663,62 @@ EDA_Rect LibDrawSquare::GetBoundingBox() return rect; } +/** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPoint A wxPoint to test in eeschema space + * @return bool - true if a hit, else false + */ +bool LibDrawSquare::HitTest( const wxPoint& aRefPoint ) +{ + + int mindist = (m_Width ? m_Width /2 : g_DrawDefaultLineThickness / 2) + 1; + // Have a minimal tolerance for hit test + if ( mindist < 3 ) + mindist = 3; // = 3 mils + + return HitTest( aRefPoint, mindist, DefaultTransformMatrix ); +} + +/** Function HitTest + * @return true if the point aPosRef is near this object + * @param aRefPoint = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ +bool LibDrawSquare::HitTest( wxPoint aRefPoint, int aThreshold, const int aTransMat[2][2] ) +{ + wxPoint actualStart = TransformCoordinate( aTransMat, m_Pos); + wxPoint actualEnd = TransformCoordinate( aTransMat, m_End); + + // locate lower segment + wxPoint start, end; + start = actualStart; + end.x = actualEnd.x; + end.y = actualStart.y; + if( TestSegmentHit( aRefPoint, start, end, aThreshold ) ) + return true; + + // locate right segment + start.x = actualEnd.x; + end.y = actualEnd.y; + if( TestSegmentHit( aRefPoint, start, end, aThreshold ) ) + return true; + + // locate upper segment + start.y = actualEnd.y; + end.x = actualStart.x; + if( TestSegmentHit( aRefPoint, start, end, aThreshold ) ) + return true; + + // locate left segment + start.x = actualStart.x; + end.x = actualStart.y; + if( TestSegmentHit( aRefPoint, start, end, aThreshold ) ) + return true; + + return false; +} /**************************/ /** class LibDrawSegment **/ @@ -939,6 +801,36 @@ void LibDrawSegment::DisplayInfo( WinEDA_DrawFrame* frame ) frame->MsgPanel->Affiche_1_Parametre( 60, _( "Bounding box" ), msg, BROWN ); } + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ +bool LibDrawSegment::HitTest( const wxPoint& aPosRef ) +{ + int mindist = m_Width ? m_Width /2 : g_DrawDefaultLineThickness / 2; + // Have a minimal tolerance for hit test + if ( mindist < 3 ) + mindist = 3; // = 3 mils + + return HitTest( aPosRef, mindist, DefaultTransformMatrix ); +} + +/** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ +bool LibDrawSegment::HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ) +{ + wxPoint start = TransformCoordinate( aTransMat, m_Pos ); + wxPoint end = TransformCoordinate( aTransMat, m_End ); + + return TestSegmentHit( aPosRef, start, end, aThreshold ); +} + /***************************/ /** class LibDrawPolyline **/ @@ -1108,6 +1000,21 @@ void LibDrawPolyline::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, } +/** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ +bool LibDrawPolyline::HitTest( const wxPoint& aRefPos ) +{ + int mindist = m_Width ? m_Width /2 : g_DrawDefaultLineThickness / 2; + // Have a minimal tolerance for hit test + if ( mindist < 3 ) + mindist = 3; // = 3 mils + return HitTest( aRefPos, mindist, DefaultTransformMatrix ); +} + /** Function HitTest * @return true if the point aPosRef is near a segment * @param aPosRef = a wxPoint to test @@ -1123,10 +1030,8 @@ bool LibDrawPolyline::HitTest( wxPoint aPosRef, int aThreshold, { start = TransformCoordinate( aTransMat, m_PolyPoints[ii - 1] ); end = TransformCoordinate( aTransMat, m_PolyPoints[ii] ); - ref = aPosRef - start; - end -= start; - if( distance( end.x, end.y, ref.x, ref.y, aThreshold ) ) + if ( TestSegmentHit( aPosRef, start, end, aThreshold ) ) return true; } diff --git a/eeschema/classes_body_items.h b/eeschema/classes_body_items.h index d833dca5ce..2c82a5d461 100644 --- a/eeschema/classes_body_items.h +++ b/eeschema/classes_body_items.h @@ -161,6 +161,29 @@ public: virtual bool Save( FILE* aFile ) const = 0; virtual bool Load( char* line, wxString& errorMsg ) = 0; + + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param refPos A wxPoint to test + * @return bool - true if a hit, else false + */ + virtual bool HitTest( const wxPoint& refPos ) + { + return false; // derived classes should override this function + } + + /** Function HitTest (overlayed) + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ) = 0; + + /** Function GetBoundingBox + * @return the boundary box for this, in library coordinates + */ virtual EDA_Rect GetBoundingBox() { return EDA_BaseStruct::GetBoundingBox(); @@ -188,8 +211,12 @@ public: int m_PinNumSize; int m_PinNameSize; /* Pin num and Pin name sizes */ -// int m_PinNumWidth, m_PinNameWidth; /* (Currently Unused) Pin num and Pin name text width */ - wxPoint m_Pos; /* Position or centre (Arc and Circle) or start + // (Currently Unused) Pin num and Pin name text opt: italic/normal/bold, 0 = default: + char m_PinNumShapeOpt, m_PinNameShapeOpt; + // (Currently Unused) Pin num and Pin name text opt position, 0 = default: + char m_PinNumPositionOpt, m_PinNamePositionOpt; + +wxPoint m_Pos; /* Position or centre (Arc and Circle) or start * point (segments) */ int m_Width; /* Line width */ @@ -217,6 +244,22 @@ public: virtual bool Load( char* line, wxString& errorMsg ); + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ + virtual bool HitTest( const wxPoint& aRefPos ); + + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + LibDrawPin* GenCopy(); virtual void DisplayInfo( WinEDA_DrawFrame* frame ); virtual EDA_Rect GetBoundingBox(); @@ -288,7 +331,14 @@ public: * @return bool - true if a hit, else false */ virtual bool HitTest( const wxPoint& aRefPos ); - + + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); LibDrawArc* GenCopy(); @@ -339,6 +389,14 @@ public: */ virtual bool HitTest( const wxPoint& aRefPos ); + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + LibDrawCircle* GenCopy(); void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, @@ -385,6 +443,14 @@ public: */ virtual bool HitTest( const wxPoint& refPos ); + /** Function HitTest + * @return true if the point aPosRef is near a segment + * @param aPosRef = a wxPoint to test, in eeschema coordinates + * @param aThreshold = max distance to a segment + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + /** * Function HitTest (overlayed) * tests if the given EDA_Rect intersect this object. @@ -436,6 +502,22 @@ public: virtual bool Save( FILE* aFile ) const; virtual bool Load( char* line, wxString& errorMsg ); + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ + virtual bool HitTest( const wxPoint& aRefPos ); + + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + LibDrawSquare* GenCopy(); void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, @@ -476,6 +558,22 @@ public: virtual bool Save( FILE* aFile ) const; virtual bool Load( char* line, wxString& errorMsg ); + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ + virtual bool HitTest( const wxPoint& aRefPos ); + + /** Function HitTest + * @return true if the point aPosRef is near this object + * @param aPosRef = a wxPoint to test + * @param aThreshold = max distance to this object (usually the half thickness of a line) + * @param aTransMat = the transform matrix + */ + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + LibDrawSegment* GenCopy(); void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, @@ -523,13 +621,21 @@ public: */ unsigned GetCornerCount() const { return m_PolyPoints.size(); } + /** + * Function HitTest + * tests if the given wxPoint is within the bounds of this object. + * @param aRefPos A wxPoint to test + * @return bool - true if a hit, else false + */ + virtual bool HitTest( const wxPoint& aRefPos ); + /** Function HitTest * @return true if the point aPosRef is near a segment * @param aPosRef = a wxPoint to test * @param aThreshold = max distance to a segment * @param aTransMat = the transform matrix */ - bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); + virtual bool HitTest( wxPoint aPosRef, int aThreshold, const int aTransMat[2][2] ); /** Function GetBoundingBox * @return the boundary box for this, in library coordinates diff --git a/eeschema/cleanup.cpp b/eeschema/cleanup.cpp index 81c1dc971b..c288172dd5 100644 --- a/eeschema/cleanup.cpp +++ b/eeschema/cleanup.cpp @@ -5,6 +5,7 @@ #include "fctsys.h" #include "appl_wxstruct.h" #include "common.h" +#include "trigo.h" #include "confirm.h" #include "class_drawpickedstruct.h" #include "program.h" @@ -16,8 +17,7 @@ /* Routines locales */ -static int TstAlignSegment( EDA_DrawLineStruct* RefSegm, - EDA_DrawLineStruct* TstSegm ); +static int TstAlignSegment( EDA_DrawLineStruct* RefSegm, EDA_DrawLineStruct* TstSegm ); /* Variable locales */ @@ -37,7 +37,7 @@ bool SCH_SCREEN::SchematicCleanUp( wxDC* DC ) WinEDA_SchematicFrame* frame; - frame = (WinEDA_SchematicFrame*)wxGetApp().GetTopWindow(); + frame = (WinEDA_SchematicFrame*) wxGetApp().GetTopWindow(); DrawList = EEDrawList; for( ; DrawList != NULL; DrawList = DrawList->Next() ) @@ -50,7 +50,7 @@ bool SCH_SCREEN::SchematicCleanUp( wxDC* DC ) if( TstDrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE ) { flag = TstAlignSegment( (EDA_DrawLineStruct*) DrawList, - (EDA_DrawLineStruct*) TstDrawList ); + (EDA_DrawLineStruct*) TstDrawList ); if( flag ) /* Suppression de TstSegm */ { /* keep the bits set in .m_Flags, because the deleted segment can be flagged */ @@ -87,7 +87,7 @@ void BreakSegmentOnJunction( SCH_SCREEN* Screen ) if( Screen == NULL ) { DisplayError( NULL, - wxT( "BreakSegmentOnJunction() error: NULL screen" ) ); + wxT( "BreakSegmentOnJunction() error: NULL screen" ) ); return; } @@ -144,7 +144,6 @@ DrawPickedStruct* BreakSegment( SCH_SCREEN* screen, { EDA_BaseStruct* DrawList; EDA_DrawLineStruct* segment, * NewSegment; - int ox, oy, fx, fy; DrawPickedStruct* List = NULL; DrawList = screen->EEDrawList; @@ -154,17 +153,13 @@ DrawPickedStruct* BreakSegment( SCH_SCREEN* screen, { case DRAW_SEGMENT_STRUCT_TYPE: segment = (EDA_DrawLineStruct*) DrawList; - ox = segment->m_Start.x; oy = segment->m_Start.y; - fx = segment->m_End.x; fy = segment->m_End.y; - if( distance( fx - ox, fy - oy, breakpoint.x - ox, breakpoint.y - - oy, 0 ) == 0 ) + + if( !TestSegmentHit( breakpoint, segment->m_Start, segment->m_End, 0 ) ) break; /* Segment connecte: doit etre coupe en 2 si px,py n'est * pas une extremite */ - if( (ox == breakpoint.x) && (oy == breakpoint.y ) ) - break; - if( (fx == breakpoint.x) && (fy == breakpoint.y ) ) + if( (segment->m_Start == breakpoint) || (segment->m_End == breakpoint ) ) break; /* Ici il faut couper le segment en 2 */ if( PutInUndoList ) // First: put copy of the old segment in undo list diff --git a/eeschema/locate.cpp b/eeschema/locate.cpp index 9767b46693..0a10c8950c 100644 --- a/eeschema/locate.cpp +++ b/eeschema/locate.cpp @@ -15,15 +15,11 @@ #include "protos.h" -/* Routines exportees */ -int distance( int dx, int dy, int spot_cX, int spot_cY, int seuil ); - /* Routines Locales */ static SCH_ITEM* LastSnappedStruct = NULL; static int PickedBoxMinX, PickedBoxMinY, PickedBoxMaxX, PickedBoxMaxY; static bool IsBox1InBox2( int StartX1, int StartY1, int EndX1, int EndY1, int StartX2, int StartY2, int EndX2, int EndY2 ); -static bool IsPointOnSegment( wxPoint aPosRef, wxPoint aSegmStart, wxPoint aSegmEnd, int aDist = 0 ); static bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, SCH_ITEM* DrawList, DrawPickedStruct* DontSnapList, double aScaleFactor ); @@ -208,6 +204,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, if( DontSnap->m_PickedStruct == DrawList ) continue; + int hitminDist = MAX( g_DrawDefaultLineThickness, 3 ) ; switch( DrawList->Type() ) { case DRAW_POLYLINE_STRUCT_TYPE: @@ -218,8 +215,8 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, for( unsigned i = 0; i < STRUCT->GetCornerCount() - 1; i++ ) { - if( IsPointOnSegment( aPosRef, STRUCT->m_PolyPoints[i], - STRUCT->m_PolyPoints[i + 1] ) ) + if( TestSegmentHit( aPosRef, STRUCT->m_PolyPoints[i], + STRUCT->m_PolyPoints[i + 1], hitminDist ) ) { LastSnappedStruct = DrawList; return TRUE; @@ -234,7 +231,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, if( !( SearchMask & (DRAWITEM | WIREITEM | BUSITEM) ) ) break; - if( IsPointOnSegment( aPosRef, STRUCT->m_Start, STRUCT->m_End ) ) + if( TestSegmentHit( aPosRef, STRUCT->m_Start, STRUCT->m_End, 0 ) ) { if( ( (SearchMask & DRAWITEM) && (STRUCT->GetLayer() == LAYER_NOTES) ) || ( (SearchMask & WIREITEM) && (STRUCT->GetLayer() == LAYER_WIRE) ) @@ -266,7 +263,7 @@ bool SnapPoint2( const wxPoint& aPosRef, int SearchMask, if( !( SearchMask & (RACCORDITEM) ) ) break; - if( IsPointOnSegment( aPosRef, STRUCT->m_Pos, STRUCT->m_End() ) ) + if( TestSegmentHit( aPosRef, STRUCT->m_Pos, STRUCT->m_End(), hitminDist ) ) { LastSnappedStruct = DrawList; return TRUE; @@ -654,25 +651,6 @@ static bool IsBox1InBox2( int StartX1, int StartY1, int EndX1, int EndY1, } -/********************************************************************************/ -static bool IsPointOnSegment( wxPoint aPosRef, wxPoint aSegmStart, wxPoint aSegmEnd, int aDist ) -/********************************************************************************/ - -/* Routine detectant que le point pX,pY est sur le Segment X1,Y1 a X2,Y2 - * Retourne TRUE ou FALSE. - */ -{ - /* Move coordinates origin to aSegmStart */ - aPosRef -= aSegmStart; - aSegmEnd -= aSegmStart; - - if( distance( aSegmEnd.x, aSegmEnd.y, aPosRef.x, aPosRef.y, aDist ) ) - return TRUE; - - else - return FALSE; -} - /*********************************************************************************/ LibEDA_BaseStruct* LocateDrawItem( SCH_SCREEN* Screen, @@ -702,15 +680,6 @@ LibEDA_BaseStruct* LocateDrawItem( SCH_SCREEN* Screen, DrawItem = LibEntry->m_Drawings; - int seuil = 3; /* Tolerance: 1/2 pas de petite grille */ - - // Calculates aRefPoint according to library components Y axis convention: - // Y axis is bottom to top - // RefPoint Y is top to bottom - // so negate the aRefPoint Y coordinate value does the trick - wxPoint pointInLibitemsSpace = aRefPoint; - NEGATE( pointInLibitemsSpace.y ); - for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) { if( Unit && DrawItem->m_Unit && (Unit != DrawItem->m_Unit) ) @@ -721,88 +690,45 @@ LibEDA_BaseStruct* LocateDrawItem( SCH_SCREEN* Screen, switch( DrawItem->Type() ) { case COMPONENT_ARC_DRAW_TYPE: - { - LibDrawArc* Arc = (LibDrawArc*) DrawItem; if( (masque & LOCATE_COMPONENT_ARC_DRAW_TYPE) == 0 ) break; - if( Arc->HitTest( pointInLibitemsSpace ) ) + if( DrawItem->HitTest( aRefPoint ) ) return DrawItem; - } break; case COMPONENT_CIRCLE_DRAW_TYPE: - { - LibDrawCircle* Circle = (LibDrawCircle*) DrawItem; if( (masque & LOCATE_COMPONENT_CIRCLE_DRAW_TYPE) == 0 ) break; - if( Circle->HitTest( pointInLibitemsSpace ) ) + if( DrawItem->HitTest( aRefPoint ) ) return DrawItem; - } break; - case COMPONENT_RECT_DRAW_TYPE: - { // Locate a rect if the mouse cursor is on a side of this rectangle - LibDrawSquare* Square = (LibDrawSquare*) DrawItem; + case COMPONENT_RECT_DRAW_TYPE: // Locate a rect if the mouse cursor is on a side of this rectangle if( (masque & LOCATE_COMPONENT_RECT_DRAW_TYPE) == 0 ) break; - wxPoint start, end; - start.x = Square->m_Pos.x; - start.y = -Square->m_Pos.y; - end.x = Square->m_End.x; - end.y = -Square->m_Pos.y; - - // locate lower segment - if( IsPointOnSegment( aRefPoint, start, end, seuil ) ) + if( DrawItem->HitTest( aRefPoint ) ) return DrawItem; - - // locate right segment - start.x = Square->m_End.x; - end.y = -Square->m_End.y; - if( IsPointOnSegment( aRefPoint, start, end, seuil ) ) - return DrawItem; - - // locate upper segment - start.y = -Square->m_End.y; - end.x = Square->m_Pos.x; - if( IsPointOnSegment( aRefPoint, start, end, seuil ) ) - return DrawItem; - - // locate left segment - start.x = Square->m_Pos.x; - end.x = -Square->m_Pos.y; - if( IsPointOnSegment( aRefPoint, start, end, seuil ) ) - return DrawItem; - } - break; + break; case COMPONENT_POLYLINE_DRAW_TYPE: - { - LibDrawPolyline* polyline = (LibDrawPolyline*) DrawItem; if( (masque & LOCATE_COMPONENT_POLYLINE_DRAW_TYPE) == 0 ) break; - if( polyline->HitTest( aRefPoint, seuil, DefaultTransformMatrix ) ) + if( DrawItem->HitTest( aRefPoint ) ) return DrawItem; - } break; case COMPONENT_LINE_DRAW_TYPE: - { - LibDrawSegment* Segment = (LibDrawSegment*) DrawItem; if( (masque & LOCATE_COMPONENT_LINE_DRAW_TYPE) == 0 ) break; - if( IsPointOnSegment( pointInLibitemsSpace, Segment->m_Pos, Segment->m_End, seuil ) ) + if( DrawItem->HitTest( aRefPoint ) ) return DrawItem; - } break; case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE: - { - LibDrawText* Text = (LibDrawText*) DrawItem; if( (masque & LOCATE_COMPONENT_GRAPHIC_TEXT_DRAW_TYPE) == 0 ) break; - if( Text->HitTest( pointInLibitemsSpace ) ) - return DrawItem; /* Found! */ - } + if( DrawItem->HitTest( aRefPoint ) ) + return DrawItem; break; default: @@ -814,117 +740,6 @@ LibEDA_BaseStruct* LocateDrawItem( SCH_SCREEN* Screen, } -/****************************************************************/ -int distance( int dx, int dy, int spot_cX, int spot_cY, int seuil ) -/****************************************************************/ - -/* - * Calcul de la distance du point spot_cx,spot_cy a un segment de droite, - * d'origine 0,0 et d'extremite dx, dy; - * retourne: - * 0 si distance > seuil - * 1 si distance <= seuil - * Variables utilisees ( sont ramenees au repere centre sur l'origine du segment) - * dx, dy = coord de l'extremite segment. - * spot_cX,spot_cY = coord du curseur souris - * la recherche se fait selon 4 cas: - * segment horizontal - * segment vertical - * segment quelconque - */ -{ - int cXrot, cYrot, /* coord du point (souris) dans le repere tourne */ - segX, segY; /* coord extremite segment tj >= 0 */ - int pointX, pointY; /* coord point a tester dans repere modifie dans lequel - * segX et segY sont >=0 */ - - segX = dx; segY = dy; pointX = spot_cX; pointY = spot_cY; - - /*Recalcul coord pour que le segment soit dans 1er quadrant (coord >= 0)*/ - if( segX < 0 ) /* mise en0 par symetrie par rapport a l'axe Y */ - { - segX = -segX; pointX = -pointX; - } - if( segY < 0 ) /* mise en > 0 par symymetrie par rapport a l'axe X */ - { - segY = -segY; pointY = -pointY; - } - - - if( segY == 0 ) /* piste Horizontale */ - { - if( abs( pointY ) <= seuil ) - { - if( (pointX >= 0) && (pointX <= segX) ) - return 1; - /* Etude des extremites : cercle de rayon seuil */ - if( (pointX < 0) && (pointX >= -seuil) ) - { - if( ( (pointX * pointX) + (pointY * pointY) ) <= (seuil * seuil) ) - return 1; - } - if( (pointX > segX) && ( pointX <= (segX + seuil) ) ) - { - if( ( ( (pointX - segX) * (pointX - segX) ) + (pointY * pointY) ) <= - (seuil * seuil) ) - return 1; - } - } - } - else if( segX == 0 ) /* piste verticale */ - { - if( abs( pointX ) <= seuil ) - { - if( (pointY >= 0 ) && (pointY <= segY) ) - return 1; - if( (pointY < 0) && (pointY >= -seuil) ) - { - if( ( (pointY * pointY) + (pointX * pointX) ) <= (seuil * seuil) ) - return 1; - } - if( (pointY > segY) && ( pointY <= (segY + seuil) ) ) - { - if( ( ( (pointY - segY) * (pointY - segY) ) + (pointX * pointX) ) <= - (seuil * seuil) ) - return 1; - } - } - } - else /* orientation quelconque */ - { - /* On fait un changement d'axe (rotation) de facon a ce que le segment - * de piste soit horizontal dans le nouveau repere */ - int angle; - - angle = (int) ( atan2( (double) segY, (double) segX ) * 1800 / M_PI ); - cXrot = pointX; cYrot = pointY; - RotatePoint( &cXrot, &cYrot, angle ); /* Rotation du point a tester */ - RotatePoint( &segX, &segY, angle ); /* Rotation du segment */ - - /*la piste est Horizontale , par suite des modifs de coordonnes - * et d'axe, donc segX = longueur du segment */ - - if( abs( cYrot ) <= seuil ) /* ok sur axe vertical) */ - { - if( (cXrot >= 0) && (cXrot <= segX) ) - return 1; - /* Etude des extremites : cercle de rayon seuil */ - if( (cXrot < 0) && (cXrot >= -seuil) ) - { - if( ( (cXrot * cXrot) + (cYrot * cYrot) ) <= (seuil * seuil) ) - return 1; - } - if( (cXrot > segX) && ( cXrot <= (segX + seuil) ) ) - { - if( ( ( (cXrot - segX) * (cXrot - segX) ) + (cYrot * cYrot) ) <= (seuil * seuil) ) - return 1; - } - } - } - return 0; -} - - /*******************************************************************/ LibDrawPin* LocatePinByNumber( const wxString& ePin_Number, SCH_COMPONENT* eComponent ) @@ -989,10 +804,6 @@ LibEDA_BaseStruct* LocatePin( const wxPoint& RefPos, * Si convert = 0, le numero convert n'est pas teste */ { - LibEDA_BaseStruct* DrawItem; - LibDrawPin* Pin; - int x1, y1, x2, y2; - if( Entry == NULL ) return NULL; @@ -1002,12 +813,12 @@ LibEDA_BaseStruct* LocatePin( const wxPoint& RefPos, return NULL; } - DrawItem = Entry->m_Drawings; + LibEDA_BaseStruct* DrawItem = Entry->m_Drawings; for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) { if( DrawItem->Type() == COMPONENT_PIN_DRAW_TYPE ) /* Pin Trouvee */ { - Pin = (LibDrawPin*) DrawItem; + LibDrawPin* Pin = (LibDrawPin*) DrawItem; if( Unit && DrawItem->m_Unit && (DrawItem->m_Unit != Unit) ) continue; @@ -1015,36 +826,22 @@ LibEDA_BaseStruct* LocatePin( const wxPoint& RefPos, if( convert && DrawItem->m_Convert && (DrawItem->m_Convert != convert) ) continue; - x2 = Pin->m_Pos.x; - y2 = Pin->m_Pos.y; - x1 = Pin->ReturnPinEndPoint().x; - y1 = Pin->ReturnPinEndPoint().y; - if( DrawLibItem == NULL ) { - y1 = -y1; y2 = -y2; + if ( Pin->HitTest( RefPos ) ) + return DrawItem; } + else { - int x = x1, y = y1; - x1 = DrawLibItem->m_Pos.x + DrawLibItem->m_Transform[0][0] *x - + DrawLibItem->m_Transform[0][1] *y; - y1 = DrawLibItem->m_Pos.y + DrawLibItem->m_Transform[1][0] *x - + DrawLibItem->m_Transform[1][1] *y; - x = x2; y = y2; - x2 = DrawLibItem->m_Pos.x + DrawLibItem->m_Transform[0][0] *x - + DrawLibItem->m_Transform[0][1] *y; - y2 = DrawLibItem->m_Pos.y + DrawLibItem->m_Transform[1][0] *x - + DrawLibItem->m_Transform[1][1] *y; + int mindist = Pin->m_Width ? Pin->m_Width / 2 : g_DrawDefaultLineThickness / 2; + + // Have a minimal tolerance for hit test + if( mindist < 3 ) + mindist = 3; // = 3 mils + if ( Pin->HitTest( RefPos - DrawLibItem->m_Pos, mindist, DrawLibItem->m_Transform ) ) + return DrawItem; } - - if( x1 > x2 ) - EXCHG( x1, x2 );if( y1 > y2 ) - EXCHG( y1, y2 ); - - if( (RefPos.x >= x1) && (RefPos.x <= x2) - && (RefPos.y >= y1) && (RefPos.y <= y2) ) - return DrawItem; } } diff --git a/eeschema/protos.h b/eeschema/protos.h index 2ab86f7c54..de6134a493 100644 --- a/eeschema/protos.h +++ b/eeschema/protos.h @@ -139,12 +139,12 @@ SCH_ITEM * PickStruct(const wxPoint & refpos, BASE_SCREEN* screen, int SearchMas Return: - -Bloc searc: + -Bloc search: pointeur sur liste de pointeurs de structures si Plusieurs structures selectionnees. pointeur sur la structure si 1 seule - Positon serach: + Positon search: pointeur sur la structure. Si pas de structures selectionnees: retourne NULL */ @@ -160,20 +160,6 @@ LibDrawPin * LocateAnyPin(SCH_ITEM *DrawList, const wxPoint & RefPos, Hierarchical_PIN_Sheet_Struct * LocateAnyPinSheet(const wxPoint & RefPos, SCH_ITEM *DrawList); -int distance(int dx, int dy, int spot_cX, int spot_cY, int seuil); - /* Calcul de la distance du point spot_cx,spot_cy a un segment de droite, - d'origine 0,0 et d'extremite dx, dy; - retourne: - 0 si distance > seuil - 1 si distance <= seuil - Variables utilisees ( sont ramenees au repere centre sur l'origine du segment) - dx, dy = coord de l'extremite segment. - spot_cX,spot_cY = coord du curseur souris - la recherche se fait selon 4 cas: - segment horizontal - segment vertical - segment quelconque */ - /***************/ /* EEREDRAW.CPP */ diff --git a/include/common.h b/include/common.h index 2cbfdfa84b..e4f0cb24fb 100644 --- a/include/common.h +++ b/include/common.h @@ -271,13 +271,8 @@ void InitKiCadAbout( wxAboutDialogInfo& info); wxString GetBuildVersion(); /* Return the build date */ wxString GetAboutBuildVersion(); /* Return custom build date for about dialog */ -void Affiche_1_Parametre( WinEDA_DrawFrame* frame, - int pos_X, - const wxString& texte_H, - const wxString& texte_L, - int color ); - -/* +/** + * function Affiche_1_Parametre * Routine d'affichage d'un parametre. * pos_X = cadrage horizontal * si pos_X < 0 : la position horizontale est la derniere @@ -288,6 +283,11 @@ void Affiche_1_Parametre( WinEDA_DrawFrame* frame, * si "", par d'affichage sur cette ligne * color = couleur d'affichage */ +void Affiche_1_Parametre( WinEDA_DrawFrame* frame, + int pos_X, + const wxString& texte_H, + const wxString& texte_L, + int color ); void AfficheDoc( WinEDA_DrawFrame* frame, const wxString& Doc, const wxString& KeyW ); diff --git a/include/trigo.h b/include/trigo.h index 51279474ee..415b2ad3ae 100644 --- a/include/trigo.h +++ b/include/trigo.h @@ -14,15 +14,27 @@ void RotatePoint( wxPoint* point, int angle ); void RotatePoint( wxPoint *point, const wxPoint & centre, int angle ); void RotatePoint( double *pX, double *pY, int angle ); void RotatePoint( double *pX, double *pY, double cx, double cy, int angle ); -int ArcTangente( int dy, int dx ); -/* Retourne l'arc tangente en 0.1 degres du vecteur de coord dx, dy + +/** function ArcTangente +Retourne l'arc tangente en 0.1 degres du vecteur de coord dx, dy entre -1800 et 1800 Analogue a atan2 ( mais plus rapide pour les caculs si l'angle est souvent 0, -1800, ou +- 900 */ +int ArcTangente( int dy, int dx ); bool DistanceTest( int seuil, int dx, int dy, int spot_cX, int spot_cY ); +/** Function TestSegmentHit + * test for hit on line segment + * i.e. cursor within a given distance from segment + * @param aRefPoint = cursor (point to test) coords + * @param aStart is the first end-point of the line segment + * @param aEnd is the second end-point of the line segment + * @param aDist = maximum distance for hit +*/ +bool TestSegmentHit( wxPoint aRefPoint, wxPoint aStart, wxPoint aEnd, int aDist ); + /*******************/ /* Macro NEW_COORD */ /*******************/