#
# Copyright (C) 2013,2014,2015,2016 The ESPResSo project
#
# This file is part of ESPResSo.
#
# ESPResSo is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ESPResSo is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Tests particle property setters/getters

from __future__ import print_function
import unittest as ut
import espressomd
import numpy as np
from espressomd.interactions import *
from espressomd.analyze import *
import espressomd
import sys

class Tabulated(ut.TestCase):
    """ Checks the tabulated non bonded interactions """

    epsilon=1e-6

    system = espressomd.System()

    def setUp(self):

        self.system.box_l = [10.0, 10.0, 10.0]
        self.system.time_step = 0.01

        self.system.non_bonded_inter[0,0].tabulated.set_params(filename="lj1.tab")
        self.system.non_bonded_inter[1,1].tabulated.set_params(filename="lj2.tab")
        self.system.non_bonded_inter[0,1].tabulated.set_params(filename="lj3.tab")

        self.system.part.add(id=0, type=1, pos=[32.6999, 6.14966, 5.34031], f=[172609.00468, 90109.0416958, -61747.0304427])
        self.system.part.add(id=1, type=0, pos=[-23.8829, 9.23126, 12.761], f=[194048.535562, -868975.312333, -1019245.73779])
        self.system.part.add(id=2, type=1, pos=[2.49633, 6.89473, -21.0496], f=[-66673.5016673, -116413.712678, 73235.9116717])
        self.system.part.add(id=3, type=0, pos=[-6.25779, 5.91975, -9.65196], f=[-130347.30713, 89529.0329246, -108882.021846])
        self.system.part.add(id=4, type=1, pos=[-3.92171, 34.2882, 0.628891], f=[-52238.8344566, -181492.367762, 76280.000539])
        self.system.part.add(id=5, type=0, pos=[-6.39955, 15.3786, 25.894], f=[-7425.60874055, -4505.42966605, 19116.9230427])
        self.system.part.add(id=6, type=1, pos=[-0.722762, -2.23058, -15.6541], f=[12506.1474018, -19155.104344, 21369.9662972])
        self.system.part.add(id=7, type=1, pos=[-20.9391, 12.2143, 16.7516], f=[125903.444986, 103109.156146, -257503.832784])
        self.system.part.add(id=8, type=0, pos=[9.86137, 6.08379, 7.63482], f=[1847.60894613, -1985.50671808, -1909.10150878])
        self.system.part.add(id=9, type=0, pos=[-44.3811, 10.9472, -3.26886], f=[-15095.247015, -12842.0288675, -7141.70122153])
        self.system.part.add(id=10, type=1, pos=[23.6451, -10.2068, 16.6861], f=[2.37389477315, -3.35215844929, 3.42189532799])
        self.system.part.add(id=11, type=1, pos=[-17.9408, -14.6865, -25.3674], f=[26020.6658993, -32430.6362582, -119602.087884])
        self.system.part.add(id=12, type=0, pos=[-1.63968, 9.40066, 26.7607], f=[-41419.6546134, -5474.92532854, 300735.00413])
        self.system.part.add(id=13, type=1, pos=[28.2716, -17.8088, 8.54688], f=[-5690.30932184, -12493.9110305, 17585.245942])
        self.system.part.add(id=14, type=1, pos=[42.8477, 15.7742, -0.662483], f=[73700.5739568, 3319.20263911, 55501.8198917])
        self.system.part.add(id=15, type=0, pos=[-1.28645, 4.77404, 6.51004], f=[19519.5595256, -4705.00286595, 345.144361529])
        self.system.part.add(id=16, type=1, pos=[11.7026, -6.11787, 2.5266], f=[88588.1367573, -104459.360083, 53375.4248874])
        self.system.part.add(id=17, type=0, pos=[-8.49265, 24.7968, 9.66456], f=[-60852.3157448, -726744.614596, -773758.404103])
        self.system.part.add(id=18, type=0, pos=[4.66071, 20.7015, 19.5571], f=[17193.5175185, -33844.4625239, 8657.16715595])
        self.system.part.add(id=19, type=0, pos=[23.3877, 4.01316, 7.01578], f=[36001.2255447, -7135.83245551, -72914.452808])
        self.system.part.add(id=20, type=0, pos=[-3.3036, 24.3823, -10.3294], f=[-52424.3356493, -90234.8967785, 30743.2445911])
        self.system.part.add(id=21, type=1, pos=[23.9279, 2.12368, 10.556], f=[824869.88849, 346310.948811, -358914.824381])
        self.system.part.add(id=22, type=1, pos=[25.3336, 2.15027, 12.9974], f=[376501.307915, 420465.603537, -208797.553059])
        self.system.part.add(id=23, type=1, pos=[9.34445, 9.92401, -20.3987], f=[73428.4288282, 70101.4241105, -27611.5261125])
        self.system.part.add(id=24, type=0, pos=[16.9007, 29.3776, 21.9794], f=[-10.8560118382, -0.02632908525, -1.14782854744])
        self.system.part.add(id=25, type=0, pos=[-1.88566, 11.78, 6.83349], f=[-658040.419202, 937869.894235, 69234.2227065])
        self.system.part.add(id=26, type=1, pos=[22.4545, 1.89461, 15.8406], f=[-116086.888559, 55842.1868688, -68178.5491237])
        self.system.part.add(id=27, type=1, pos=[19.352, -16.6605, -10.3743], f=[-1392239.68679, -208063.095013, -144392.689293])
        self.system.part.add(id=28, type=0, pos=[-18.7889, -27.0408, 13.4411], f=[1300759.62579, 558083.248751, -523770.751304])
        self.system.part.add(id=29, type=0, pos=[2.67754, 33.2706, 19.4872], f=[120433.549718, -813043.668731, 397467.561612])
        self.system.part.add(id=30, type=0, pos=[0.730263, 2.43414, 17.7877], f=[15589.1172731, 5275.98064041, -42990.341693])
        self.system.part.add(id=31, type=1, pos=[38.7614, -11.1486, 41.2415], f=[246253.048687, 85887.8637986, -142794.825589])
        self.system.part.add(id=32, type=1, pos=[21.0854, 4.71322, -16.4078], f=[-31627.2771072, -97588.3102019, -53240.6216801])
        self.system.part.add(id=33, type=1, pos=[-8.3059, 3.84164, -5.53546], f=[595025.843309, -203798.084415, -316532.071628])
        self.system.part.add(id=34, type=1, pos=[8.69924, -10.7915, -4.19637], f=[48604.9068606, -208904.415945, -425100.434326])
        self.system.part.add(id=35, type=1, pos=[18.1181, 6.62936, 20.3124], f=[-10386.0983216, 9160.70189944, -320019.782398])
        self.system.part.add(id=36, type=1, pos=[3.973, -12.0568, 17.9474], f=[-6471.17490869, -11486.2546826, -7048.46673507])
        self.system.part.add(id=37, type=1, pos=[31.2158, 28.1003, -23.5672], f=[-62149.6264734, 292979.374578, 35491.752507])
        self.system.part.add(id=38, type=1, pos=[-2.60289, 3.05326, 0.97681], f=[-18235.6833415, 10787.837609, -2753.19180882])
        self.system.part.add(id=39, type=0, pos=[19.8426, 24.9846, 12.774], f=[-10007.6642592, 32965.2158189, -51394.7282553])
        self.system.part.add(id=40, type=0, pos=[18.67, -12.5272, -0.126244], f=[-7573.12828027, -5476.18722583, -64500.8217879])
        self.system.part.add(id=41, type=1, pos=[7.37841, 14.1114, 31.3792], f=[-161882.082132, -148736.5019, -227912.948758])
        self.system.part.add(id=42, type=0, pos=[8.67561, 6.09108, 17.9593], f=[-491025.81778, -614801.416008, -476136.442698])
        self.system.part.add(id=43, type=0, pos=[19.8366, -20.7088, 3.97279], f=[-116196.581074, -38895.5417518, 86522.0419231])
        self.system.part.add(id=44, type=1, pos=[0.821285, -11.1865, 2.72424], f=[-24492.1535642, -41.7742331054, 6188.7370069])
        self.system.part.add(id=45, type=1, pos=[25.9696, 29.8633, 13.4993], f=[74891.4767541, 978900.504558, 1189316.99237])
        self.system.part.add(id=46, type=1, pos=[0.622923, -2.95182, 29.6812], f=[4116.07802411, 6313.48772716, 54921.4245201])
        self.system.part.add(id=47, type=0, pos=[-19.7758, 5.82526, 21.2401], f=[1205.07700647, 1938.72299675, 3665.70043791])
        self.system.part.add(id=48, type=1, pos=[18.3183, 9.69368, 9.32863], f=[89237.5982226, 37564.1524319, -152890.860977])
        self.system.part.add(id=49, type=1, pos=[-19.4871, 2.44379, 22.6629], f=[-10892.9635981, -8436.38872703, -13129.943772])
        self.system.part.add(id=50, type=0, pos=[-3.90983, 28.1874, 11.4462], f=[494156.49023, -14722.3274365, -394232.94051])
        self.system.part.add(id=51, type=0, pos=[22.5021, 35.1942, 41.2124], f=[-164720.38568, -255080.601046, -269213.989108])
        self.system.part.add(id=52, type=0, pos=[23.7698, 16.7017, 25.1381], f=[-6015.08147685, -12532.2353915, -33265.5903181])
        self.system.part.add(id=53, type=0, pos=[26.1393, 1.28842, 5.94661], f=[-81969.8494125, -11767.0100018, 52633.4081558])
        self.system.part.add(id=54, type=0, pos=[2.44402, -1.22219, -8.59332], f=[-25059.9630057, -28893.6620007, -36941.7374539])
        self.system.part.add(id=55, type=1, pos=[10.966, -28.2954, -6.10675], f=[-7.51893276524, -526.93148402, -252.911008188])
        self.system.part.add(id=56, type=0, pos=[-4.6061, 6.41508, 16.3606], f=[-13358.7432442, 16518.0773394, 61187.4543354])
        self.system.part.add(id=57, type=0, pos=[8.26169, -7.71632, -18.8751], f=[-11806.9158773, 18188.1314777, 3929.27617715])
        self.system.part.add(id=58, type=0, pos=[21.9765, 35.7343, -11.3207], f=[-36227.9985529, -55304.5784177, -62954.6903597])
        self.system.part.add(id=59, type=0, pos=[9.66668, 15.3888, 38.372], f=[-7441.26435483, 99647.2595038, -114379.127188])
        self.system.part.add(id=60, type=1, pos=[0.178205, -13.8037, -16.9067], f=[-305278.79365, 202105.743422, 445161.592825])
        self.system.part.add(id=61, type=0, pos=[-9.30627, 23.5376, 28.1433], f=[7718.73883263, 14821.232665, -10927.1874525])
        self.system.part.add(id=62, type=0, pos=[-11.4102, 19.9895, -26.0798], f=[-10511.6821031, 184592.232844, -211953.669025])
        self.system.part.add(id=63, type=0, pos=[1.96605, -6.32699, -24.2179], f=[936.83710797, -815.514376144, 664.10729736])
        self.system.part.add(id=64, type=1, pos=[20.8479, 10.4264, -3.73398], f=[340726.952462, 224332.72294, -201441.470561])
        self.system.part.add(id=65, type=0, pos=[3.95199, 14.3214, 28.4226], f=[49091.6229689, -32132.6534984, 12167.146391])
        self.system.part.add(id=66, type=0, pos=[21.9361, 32.6479, 24.1313], f=[-4311.608664, -9641.79630086, 7800.14016572])
        self.system.part.add(id=67, type=0, pos=[21.4614, -7.25158, -13.3158], f=[-484.846140478, -317.801410153, -674.418905396])
        self.system.part.add(id=68, type=1, pos=[-12.9327, 38.3009, 34.4506], f=[62.7217895012, -46.8626136096, -59.3269667096])
        self.system.part.add(id=69, type=0, pos=[-0.136573, 1.44237, -3.99287], f=[-88942.1103456, -2076.3418768, -54119.954511])
        self.system.part.add(id=70, type=0, pos=[19.5677, 37.5006, 17.5663], f=[3296.03524408, -36072.0662483, 11044.1509663])
        self.system.part.add(id=71, type=1, pos=[-3.51132, 6.29551, 2.40634], f=[5421.70887205, -10894.3122696, -173.303901693])
        self.system.part.add(id=72, type=1, pos=[31.9103, 1.86439, -16.8056], f=[-44423.6291438, 42187.0600003, 51162.2904663])
        self.system.part.add(id=73, type=1, pos=[10.9271, 11.8231, -29.5946], f=[-144.342426025, -334.268545232, 235.963541717])
        self.system.part.add(id=74, type=1, pos=[1.85393, -3.40053, 4.37367], f=[-46908.4308281, -61375.5987395, -66522.4658835])
        self.system.part.add(id=75, type=1, pos=[1.32773, -3.37234, -21.2072], f=[198020.982594, 304381.403858, -140106.565523])
        self.system.part.add(id=76, type=1, pos=[10.6974, 4.76438, 27.623], f=[-92253.0055769, -33450.9296363, 8667.38697277])
        self.system.part.add(id=77, type=1, pos=[-0.198799, -29.7271, -12.0833], f=[21548.5368432, -2597.64537528, 8281.62303866])
        self.system.part.add(id=78, type=0, pos=[0.833598, -8.88612, 7.96833], f=[15679.1694996, -74414.5158585, -106306.882519])
        self.system.part.add(id=79, type=0, pos=[-15.6552, -11.6322, -5.03931], f=[-114473.317588, -7234.95048733, 51822.679476])
        self.system.part.add(id=80, type=0, pos=[12.3292, 20.6077, 10.597], f=[223572.929042, 52069.3560054, -73338.431435])
        self.system.part.add(id=81, type=1, pos=[9.89068, -5.51084, 23.7728], f=[2074.07453854, -24818.569321, 49757.1478338])
        self.system.part.add(id=82, type=0, pos=[15.4584, -4.13943, -9.66844], f=[4016.54281022, -9694.36014807, -19415.6604144])
        self.system.part.add(id=83, type=1, pos=[32.8647, -14.2026, -8.04338], f=[164470.271778, 271414.065882, 337602.893515])
        self.system.part.add(id=84, type=1, pos=[-15.3861, -13.1607, 13.5337], f=[-38.2174782874, 656.41302401, -334.33524204])
        self.system.part.add(id=85, type=1, pos=[0.647266, -10.4272, -16.6674], f=[127123.335966, 26339.4104897, -92496.9475158])
        self.system.part.add(id=86, type=0, pos=[0.946113, 24.4829, 4.65973], f=[-580189.486663, 456080.501388, 91898.8746231])
        self.system.part.add(id=87, type=0, pos=[-6.68799, 1.52127, 26.3686], f=[589071.21444, -149048.196102, -303611.122232])
        self.system.part.add(id=88, type=1, pos=[-3.36343, 3.33105, -12.1742], f=[-49595.6992172, -6627.79216572, -43951.9525055])
        self.system.part.add(id=89, type=0, pos=[-17.0377, 27.5254, -10.2817], f=[77381.1227604, -86787.7463367, -95743.2668424])
        self.system.part.add(id=90, type=1, pos=[-12.7927, -3.50878, -5.52209], f=[112469.501296, 48219.9981041, -15428.9369625])
        self.system.part.add(id=91, type=0, pos=[4.22216, 8.04145, -27.6365], f=[49461.2686743, 47324.8790582, 54376.3546942])
        self.system.part.add(id=92, type=0, pos=[27.5759, 26.1765, -2.10853], f=[7905.20634567, 2967.75744558, -2196.98888552])
        self.system.part.add(id=93, type=1, pos=[-3.07339, 22.0591, 20.4203], f=[2881.66328068, 8469.49219937, 27681.8875588])
        self.system.part.add(id=94, type=0, pos=[14.794, 18.8543, 3.91248], f=[-139577.745191, 104288.610797, -238968.513311])
        self.system.part.add(id=95, type=0, pos=[13.5918, 9.88955, -25.778], f=[275098.792162, -47859.3717152, 141892.649728])
        self.system.part.add(id=96, type=0, pos=[25.9797, 13.4831, 14.1553], f=[-2018.86212338, 1654.38928066, 624.238150809])
        self.system.part.add(id=97, type=0, pos=[5.16693, 33.9763, 13.4321], f=[-292109.676807, 131444.743503, 507342.207201])
        self.system.part.add(id=98, type=1, pos=[-27.4465, -10.3867, 24.3574], f=[3121.1786896, -2488.53841048, 19265.4761733])
        self.system.part.add(id=99, type=0, pos=[15.5114, 15.9482, 14.0686], f=[845889.646147, -688417.978255, -1289692.33631])
        self.system.part.add(id=100, type=1, pos=[-9.51218, -30.172, 2.03994], f=[162996.363537, 211535.188006, 66359.352747])
        self.system.part.add(id=101, type=1, pos=[3.91474, 20.3536, 15.7574], f=[327595.077012, -167759.275945, 35628.4875937])
        self.system.part.add(id=102, type=1, pos=[15.5526, 36.2062, 7.65031], f=[353.779222886, -398.985107565, 1184.12410894])
        self.system.part.add(id=103, type=0, pos=[0.965672, 19.8596, 8.86631], f=[41325.6868278, -26607.7558133, 158781.496898])
        self.system.part.add(id=104, type=1, pos=[16.5893, -7.56041, -26.2389], f=[-198005.314799, -360595.088131, -510083.457847])
        self.system.part.add(id=105, type=1, pos=[-8.49689, 11.2801, 9.26527], f=[-14564.4541616, -546.140209797, -4261.48250269])
        self.system.part.add(id=106, type=1, pos=[-12.125, 19.7259, -31.776], f=[60777.9803639, 139734.936406, 72401.0982798])
        self.system.part.add(id=107, type=1, pos=[-6.58669, -5.74361, -15.647], f=[-34729.435197, 98387.2740839, 136229.81842])
        self.system.part.add(id=108, type=0, pos=[-15.7165, -16.0138, 7.52355], f=[-8865.84849125, -32264.3541126, 4693.58294673])
        self.system.part.add(id=109, type=1, pos=[8.63379, 19.3186, 14.7194], f=[11683.4753938, -181403.070404, 216536.406468])
        self.system.part.add(id=110, type=1, pos=[10.4293, 3.47129, 21.1444], f=[-15921.7346397, 4287.30479964, 3121.48953315])
        self.system.part.add(id=111, type=1, pos=[-7.47532, 31.6808, 6.98578], f=[-474672.218056, 95499.893301, 370549.893526])
        self.system.part.add(id=112, type=1, pos=[-25.6404, 6.33415, 5.98913], f=[-32475.6428617, -5388.54055658, 50428.6250506])
        self.system.part.add(id=113, type=1, pos=[-9.18993, 15.3198, -19.8304], f=[-537566.093453, 298388.397041, 359823.510801])
        self.system.part.add(id=114, type=1, pos=[-2.96488, 6.00711, 0.406486], f=[51717.3127804, -258470.857164, -157496.126838])
        self.system.part.add(id=115, type=0, pos=[-5.50418, -29.609, 3.46299], f=[-8976.41893123, -47166.7129837, -87559.7609972])
        self.system.part.add(id=116, type=1, pos=[-2.36794, 54.8164, -13.0382], f=[-54751.3554204, 79833.6452591, -8714.88234935])
        self.system.part.add(id=117, type=1, pos=[32.3499, 8.50294, -12.8513], f=[28088.4933904, -5513.82421545, -8245.9258622])
        self.system.part.add(id=118, type=1, pos=[-24.508, 31.0574, 32.7862], f=[242851.45029, -306252.291771, -33211.3224033])
        self.system.part.add(id=119, type=0, pos=[34.7384, -38.5751, 3.37959], f=[-949950.61886, -167825.742554, 318020.063015])
        self.system.part.add(id=120, type=1, pos=[4.34161, -4.41151, 18.5127], f=[264.053872407, 928.740405042, 10.6671323767])
        self.system.part.add(id=121, type=1, pos=[-32.9134, 1.97272, -13.7444], f=[12626.5215816, -10219.1493308, 23057.1902466])
        self.system.part.add(id=122, type=1, pos=[-0.754001, 6.47309, 14.7011], f=[-111742.002427, -3975.68098121, 69630.3513354])
        self.system.part.add(id=123, type=0, pos=[-17.6259, 10.8601, 24.8652], f=[34372.5272609, -45961.5661768, -14664.240145])
        self.system.part.add(id=124, type=0, pos=[11.8854, 25.5638, 25.6666], f=[-189595.397928, -91228.6184122, 191598.431906])
        self.system.part.add(id=125, type=1, pos=[7.05698, -4.82465, -10.9658], f=[-885460.279125, 917114.856906, -373122.862692])
        self.system.part.add(id=126, type=0, pos=[-4.84107, -1.66014, -3.7881], f=[91104.5309891, -110468.56248, 22740.9670498])
        self.system.part.add(id=127, type=1, pos=[10.1586, 9.09826, 25.1363], f=[-4963.68191006, 3489.81572572, 10221.1139143])
        self.system.part.add(id=128, type=1, pos=[-0.222215, 25.0987, 0.305143], f=[134216.113652, 93239.3836534, -3783.24886356])
        self.system.part.add(id=129, type=1, pos=[5.66027, -16.2463, 2.57482], f=[305749.038842, -155240.772051, -503417.774935])
        self.system.part.add(id=130, type=0, pos=[28.916, -16.7754, 2.67366], f=[-821799.935359, -50531.0620306, -733043.104752])
        self.system.part.add(id=131, type=0, pos=[-1.14309, 8.68334, -0.520204], f=[-81829.6707747, 164027.6659, -524794.296815])
        self.system.part.add(id=132, type=1, pos=[-24.17, 2.54552, 27.7739], f=[-18774.5666068, 98388.2183558, -53106.4571845])
        self.system.part.add(id=133, type=1, pos=[-13.5445, 10.1514, 27.2345], f=[-11214.2670455, -10229.9938142, 16911.4980988])
        self.system.part.add(id=134, type=1, pos=[-2.15534, 3.23596, 19.6995], f=[-302375.26654, 426323.051261, -205087.497673])
        self.system.part.add(id=135, type=1, pos=[-20.6863, 19.223, 12.7965], f=[25433.2340026, -92939.883816, -3609.51960117])
        self.system.part.add(id=136, type=1, pos=[3.74969, 6.21914, 21.5582], f=[35.5767604388, 1118.13686572, 4171.76125022])
        self.system.part.add(id=137, type=1, pos=[8.37468, -4.21701, -5.0865], f=[114.417385586, 36.8019441848, -10.5786351728])
        self.system.part.add(id=138, type=1, pos=[47.3101, -10.7765, 16.57], f=[-113603.379275, -19137.179892, -22837.1139832])
        self.system.part.add(id=139, type=0, pos=[-5.78292, 3.82749, 9.79264], f=[-325802.656979, 494737.918659, -111240.656964])
        self.system.part.add(id=140, type=0, pos=[4.56906, -10.2363, 14.6282], f=[-23572.8045964, -19626.9610079, 4078.73868049])
        self.system.part.add(id=141, type=0, pos=[8.0594, -22.9628, 18.8739], f=[-5940.37278726, 8946.83739789, -3551.85663108])
        self.system.part.add(id=142, type=0, pos=[8.47375, 13.6732, 1.08021], f=[7092.46286623, 3760.31047166, -4544.60481136])
        self.system.part.add(id=143, type=0, pos=[11.4906, 0.85363, 32.764], f=[569556.012003, 57158.7773401, 148544.704688])
        self.system.part.add(id=144, type=1, pos=[1.99228, -18.1409, 30.7974], f=[-84306.650964, 2510.0684668, -64456.5356776])
        self.system.part.add(id=145, type=1, pos=[-15.5443, 31.2741, 5.65632], f=[-23818.6095365, -16076.5197137, 32605.8385225])
        self.system.part.add(id=146, type=1, pos=[25.3654, -3.74981, -7.02039], f=[4179.2315355, 17115.5722851, -39275.3548668])
        self.system.part.add(id=147, type=0, pos=[21.0065, 13.4246, 26.2033], f=[38738.6189107, 18898.6919169, -11491.3676433])
        self.system.part.add(id=148, type=0, pos=[5.27122, 8.38946, -9.724], f=[-796.450734988, 137.629343628, 46.8830032743])
        self.system.part.add(id=149, type=1, pos=[2.07177, 37.7938, 30.8016], f=[158.258126165, -4828.3670545, -7174.44621296])
        self.system.part.add(id=150, type=0, pos=[23.1038, 4.12193, 16.012], f=[-2.33916003888, 0.896197384391, -8.2705250575])
        self.system.part.add(id=151, type=0, pos=[-30.1055, 0.466755, 23.351], f=[-436066.449263, -58166.4081785, -100617.729142])
        self.system.part.add(id=152, type=1, pos=[-9.71363, 0.750421, 8.93093], f=[-39005.7408491, 32677.0545167, 19498.8039885])
        self.system.part.add(id=153, type=0, pos=[1.8349, 3.99351, 46.9701], f=[-10699.9965232, 15428.0371135, -9483.16998122])
        self.system.part.add(id=154, type=1, pos=[16.4225, 22.7599, 26.5832], f=[54238.5170426, 16146.7370145, -1781.26279376])
        self.system.part.add(id=155, type=1, pos=[4.13263, 16.2125, 24.1544], f=[-198480.028634, 274102.27509, 227789.579271])
        self.system.part.add(id=156, type=0, pos=[-8.59059, 39.138, 14.8296], f=[-306500.538591, -133449.970023, -168613.356828])
        self.system.part.add(id=157, type=0, pos=[1.21264, 28.7849, 0.757462], f=[54695.302674, -99610.9566808, -609683.959504])
        self.system.part.add(id=158, type=1, pos=[20.5903, 9.99587, 9.97631], f=[79353.6958175, -125815.160959, -264269.262151])
        self.system.part.add(id=159, type=1, pos=[1.07782, -2.46876, 0.704081], f=[-9505.18074748, 333.648674141, -31753.6234551])
        self.system.part.add(id=160, type=0, pos=[20.4141, 17.0722, -1.41481], f=[-198730.198228, 506494.111184, -524908.205901])
        self.system.part.add(id=161, type=0, pos=[26.3415, -7.53124, 2.45962], f=[10657.9381234, 3711.11524989, -4913.50188024])
        self.system.part.add(id=162, type=0, pos=[31.068, -5.33086, 22.1746], f=[-86694.9267585, 144319.242153, 62110.867572])
        self.system.part.add(id=163, type=1, pos=[2.90542, 14.1131, 17.9978], f=[-62218.2751412, 3908.89993204, 61565.9697819])
        self.system.part.add(id=164, type=0, pos=[23.6408, 19.6548, -0.555014], f=[17769.8473232, 11431.0115143, -3894.62141472])
        self.system.part.add(id=165, type=1, pos=[13.8822, -1.23203, -2.75511], f=[14074.3286159, 37624.4957182, 15991.1205614])
        self.system.part.add(id=166, type=0, pos=[-2.7656, 30.5664, 9.00829], f=[-16291.0827041, -6182.14594511, -4163.48306493])
        self.system.part.add(id=167, type=1, pos=[-23.6137, 1.76972, -22.9781], f=[19080.920396, 17458.3924231, 14045.8457605])
        self.system.part.add(id=168, type=1, pos=[32.7545, -11.1446, 8.03269], f=[34467.3133421, -41893.5477479, -46761.9932339])
        self.system.part.add(id=169, type=0, pos=[4.67527, 3.046, -2.33888], f=[-2776.2067977, 1400.7979632, -433.124488731])
        self.system.part.add(id=170, type=1, pos=[-5.60794, 9.07545, -3.95086], f=[-98351.1601356, 95392.3520574, -19467.9607498])
        self.system.part.add(id=171, type=1, pos=[19.2931, 28.5405, -22.7765], f=[-9871.69062551, 38758.5220915, -12678.3333139])
        self.system.part.add(id=172, type=0, pos=[-2.94387, 4.33293, 8.41991], f=[1478.01503062, -234345.26268, -171421.457041])
        self.system.part.add(id=173, type=0, pos=[-1.22187, 18.4656, -6.40994], f=[6633.95058063, 11398.3661614, -6545.71150327])
        self.system.part.add(id=174, type=0, pos=[21.3272, 26.1586, -9.27202], f=[12361.9680665, 27268.7597068, 22087.1694731])
        self.system.part.add(id=175, type=0, pos=[31.8616, 4.10457, 10.39], f=[192188.164038, -32802.7516998, 7676.46467202])
        self.system.part.add(id=176, type=1, pos=[-0.223968, -5.32098, -0.831345], f=[136345.022177, 71683.7713873, 335063.558685])
        self.system.part.add(id=177, type=0, pos=[-3.12085, 5.57438, 23.888], f=[15596.1896781, -37845.5284647, 20594.5847185])
        self.system.part.add(id=178, type=0, pos=[17.4926, 18.8434, -2.23507], f=[-166687.891724, -143105.361675, -126778.918925])
        self.system.part.add(id=179, type=1, pos=[-12.3708, 29.4583, -5.07754], f=[468310.082716, 3105.59933404, -164164.921306])
        self.system.part.add(id=180, type=0, pos=[-27.906, 10.4461, 6.34728], f=[1387495.84087, -1980940.78896, 750472.648989])
        self.system.part.add(id=181, type=1, pos=[-22.4067, 28.6025, 15.5707], f=[1346.94359569, -1184.01323713, 414.020752306])
        self.system.part.add(id=182, type=1, pos=[-9.44938, 4.03549, -7.08772], f=[-29042.6885009, -53053.989688, 52333.3304139])
        self.system.part.add(id=183, type=1, pos=[13.2814, 2.50232, 5.58722], f=[-152.217353732, 2993.97734175, -2328.86136957])
        self.system.part.add(id=184, type=1, pos=[-19.5498, -3.82472, 49.069], f=[-17561.5142809, -452436.017412, 221689.857997])
        self.system.part.add(id=185, type=0, pos=[-19.7632, 8.56354, -19.6358], f=[4473.27935694, 2987.74396774, -2539.74882969])
        self.system.part.add(id=186, type=1, pos=[0.0874139, -7.13767, -13.4772], f=[-25440.7307568, -171841.936303, -40670.8767558])
        self.system.part.add(id=187, type=0, pos=[28.4694, 22.2221, 3.06984], f=[-82100.6861296, -152807.493501, -399816.912837])
        self.system.part.add(id=188, type=0, pos=[21.399, -2.59167, 31.7917], f=[64132.1506303, 155865.350946, -136287.148645])
        self.system.part.add(id=189, type=1, pos=[19.6205, 27.2998, 19.2357], f=[-163468.589388, 46783.4874263, 137288.568067])
        self.system.part.add(id=190, type=1, pos=[-1.22958, 7.65032, 32.7295], f=[189513.047991, 131037.417945, -177334.063394])
        self.system.part.add(id=191, type=0, pos=[4.73174, 13.6923, -3.44309], f=[-14024.0850271, 21446.5282381, 106993.986997])
        self.system.part.add(id=192, type=0, pos=[-21.0219, -29.755, 22.948], f=[-2419.96871018, 141404.025457, 17856.5737251])
        self.system.part.add(id=193, type=1, pos=[-24.0523, -2.75459, -21.2883], f=[-90216.6052501, -289529.337871, -135437.868085])
        self.system.part.add(id=194, type=0, pos=[-6.05277, 29.0204, 18.4026], f=[1345.30025017, -29373.0246105, 30452.0852325])
        self.system.part.add(id=195, type=1, pos=[29.6669, 6.62547, 10.2761], f=[2804.1063629, 1498.72208064, -9811.29058924])
        self.system.part.add(id=196, type=1, pos=[13.8616, -14.7066, 14.7599], f=[-32462.5445951, 3063.4378207, -52256.2247881])
        self.system.part.add(id=197, type=0, pos=[13.4033, 40.7943, 8.72951], f=[25655.5362207, 249901.952952, 166032.114672])
        self.system.part.add(id=198, type=1, pos=[13.2453, 27.1712, 0.723936], f=[16377.4477928, -23218.8020152, 69412.5669709])
        self.system.part.add(id=199, type=0, pos=[-38.5987, -3.75107, 47.8266], f=[164698.957653, -487527.301991, 175971.764388])
        self.system.part.add(id=200, type=1, pos=[26.0792, 18.1285, -22.9965], f=[375994.426593, 422135.264289, 191860.620768])
        self.system.part.add(id=201, type=0, pos=[5.13931, 14.1044, -1.31902], f=[-27101.1244086, 24838.9152064, -133326.719346])
        self.system.part.add(id=202, type=1, pos=[8.34896, 24.6854, 4.66302], f=[12021.8048414, 18621.5745536, -51794.2662549])
        self.system.part.add(id=203, type=1, pos=[27.5075, -8.13471, -5.89235], f=[152145.945086, 225700.818429, 64577.044111])
        self.system.part.add(id=204, type=0, pos=[20.079, 11.0004, 24.6306], f=[-64105.9100022, 125797.786895, -97674.9835382])
        self.system.part.add(id=205, type=0, pos=[-8.38593, 12.9526, -5.00555], f=[-26395.6016399, -273045.569282, 167394.463557])
        self.system.part.add(id=206, type=0, pos=[-13.729, -15.5658, 23.5712], f=[-83441.5259386, -171409.153175, 125767.739572])
        self.system.part.add(id=207, type=1, pos=[28.2817, 11.0168, 19.2674], f=[-17091.678551, 42139.349389, 36400.8619194])
        self.system.part.add(id=208, type=0, pos=[13.6304, -26.8779, -21.6353], f=[-61863.6285203, 182429.05685, -18749.9535966])
        self.system.part.add(id=209, type=0, pos=[-11.737, -14.2424, -13.0626], f=[27346.2293081, 37527.0279588, 12871.835422])
        self.system.part.add(id=210, type=0, pos=[20.7668, -1.4249, 14.1964], f=[4736.42871829, -1210.58830488, -1562.51228168])
        self.system.part.add(id=211, type=1, pos=[26.5376, 27.6911, 13.3257], f=[-70972.1193862, -172210.899708, 191191.983833])
        self.system.part.add(id=212, type=1, pos=[-8.81282, -0.945807, -28.2678], f=[-91889.1983233, 191757.313025, 539430.164036])
        self.system.part.add(id=213, type=1, pos=[23.007, -1.69326, -9.55568], f=[6768.75868336, 117411.697742, 104543.722507])
        self.system.part.add(id=214, type=1, pos=[3.28699, 9.92412, -1.83124], f=[-50804.7328021, -226405.574109, -169838.714863])
        self.system.part.add(id=215, type=1, pos=[-6.4398, -3.69166, -6.66101], f=[-727.6784606, 535.310103832, -147.385354794])
        self.system.part.add(id=216, type=0, pos=[2.18018, 9.48908, 8.73084], f=[-47312.3996048, 49502.3004704, 29441.1475727])
        self.system.part.add(id=217, type=1, pos=[36.4798, 38.0181, 5.15765], f=[48313.2977876, 30275.0668463, 11273.0086697])
        self.system.part.add(id=218, type=0, pos=[21.7302, 29.201, 16.3088], f=[-7896.74216109, -7473.49967707, -12136.3880219])
        self.system.part.add(id=219, type=1, pos=[3.40345, 2.06122, 17.5394], f=[-131239.981356, -110879.164441, 146923.859348])
        self.system.part.add(id=220, type=0, pos=[10.2974, 47.5883, -13.5401], f=[-203423.976165, -139000.74492, -59898.0045339])
        self.system.part.add(id=221, type=1, pos=[20.186, 15.303, -15.8004], f=[-6753.92445093, -4230.14730454, -4587.30094863])
        self.system.part.add(id=222, type=0, pos=[5.33247, -12.8054, 15.4006], f=[35930.9197489, 102106.473365, 69250.699426])
        self.system.part.add(id=223, type=1, pos=[12.8802, 0.231196, 3.5283], f=[-163567.633721, 77678.343926, -158887.831488])
        self.system.part.add(id=224, type=0, pos=[-2.5267, -26.9339, 22.5802], f=[72147.3199523, -70449.4719221, 5544.86985723])
        self.system.part.add(id=225, type=0, pos=[7.73989, -11.6712, -0.126099], f=[2738.35270799, -50761.6862309, -73222.1745293])
        self.system.part.add(id=226, type=1, pos=[44.1566, -8.30003, -0.62461], f=[87185.6740898, -7379.04281058, -37979.5083656])
        self.system.part.add(id=227, type=1, pos=[8.93566, 19.6858, 7.62401], f=[100817.163014, -76427.3995833, 102503.282652])
        self.system.part.add(id=228, type=0, pos=[16.2284, -14.7406, 10.2218], f=[-15766.9826509, 125474.489106, -77803.9354664])
        self.system.part.add(id=229, type=1, pos=[-7.04009, 17.1097, 5.89688], f=[799085.223093, -188140.367352, 749267.762679])
        self.system.part.add(id=230, type=0, pos=[25.4163, 1.65227, 35.2032], f=[64360.4621418, 3215.60928331, -2674.17155178])
        self.system.part.add(id=231, type=1, pos=[7.85975, -8.33836, -22.1744], f=[-8599.12500528, 149066.038472, 453010.135208])
        self.system.part.add(id=232, type=0, pos=[-11.0211, -28.746, 33.9259], f=[-1897.12278157, -4442.61136336, -9152.84085435])
        self.system.part.add(id=233, type=1, pos=[-11.6944, 9.35147, 12.9068], f=[-35548.7639642, -38888.7296503, -10319.8926257])
        self.system.part.add(id=234, type=1, pos=[-7.59205, 33.6735, 13.7742], f=[-219874.094675, 136846.955604, 391711.57238])
        self.system.part.add(id=235, type=0, pos=[16.9355, -1.56197, -7.29217], f=[98554.0815453, 184882.08448, -154007.353702])
        self.system.part.add(id=236, type=1, pos=[2.25575, -4.7257, 20.1252], f=[630485.601727, 413747.202855, 341317.523151])
        self.system.part.add(id=237, type=0, pos=[15.025, 4.98649, 9.85821], f=[-18203.2599974, 78724.6467208, 8857.37607488])
        self.system.part.add(id=238, type=1, pos=[4.1663, 55.9964, -12.5882], f=[18602.8490008, 21103.9134027, 6427.44561638])
        self.system.part.add(id=239, type=0, pos=[-29.6778, 3.46219, -0.293918], f=[1152599.78626, -154010.141559, -178474.899234])
        self.system.part.add(id=240, type=1, pos=[9.22559, 31.5867, -1.62517], f=[-100802.757446, -174802.110838, 200279.0771])
        self.system.part.add(id=241, type=0, pos=[15.1418, -10.4736, 2.97578], f=[-278294.512009, -113258.844974, -175986.563969])
        self.system.part.add(id=242, type=0, pos=[17.058, -2.52854, -1.36913], f=[36009.4875747, 7436.48579622, -1898.2810172])
        self.system.part.add(id=243, type=1, pos=[21.29, 7.73121, 28.713], f=[58902.7404681, 43128.5693611, 8617.14660669])
        self.system.part.add(id=244, type=0, pos=[8.04927, 18.4757, -28.1098], f=[-347473.694167, 86772.2353552, 535361.744907])
        self.system.part.add(id=245, type=0, pos=[29.5998, -17.7623, 7.64968], f=[235425.092939, 182303.973658, 22091.9097663])
        self.system.part.add(id=246, type=1, pos=[-0.987863, 11.4071, 25.1309], f=[3513.70902731, 4021.44741173, 5510.4900067])
        self.system.part.add(id=247, type=1, pos=[-9.06954, 11.3071, 11.4038], f=[5268.39437184, 7665.72936154, 4418.19536781])
        self.system.part.add(id=248, type=0, pos=[1.91847, 19.7806, 9.64636], f=[161727.489457, 545146.463547, -29039.1577357])
        self.system.part.add(id=249, type=1, pos=[-8.35956, 0.0667881, 11.9653], f=[5253.95283875, -27745.7792488, -28831.7948391])
        self.system.part.add(id=250, type=1, pos=[0.487446, 0.216921, -24.7753], f=[66795.5983579, -129392.319368, 97417.4799718])
        self.system.part.add(id=251, type=0, pos=[-1.32048, 35.0078, -9.6084], f=[-81798.7512647, -87946.9887898, -44846.4545817])
        self.system.part.add(id=252, type=0, pos=[8.09979, 4.32332, 15.6889], f=[21056.3882373, -100730.428199, 27155.2679953])
        self.system.part.add(id=253, type=0, pos=[7.38974, 11.9896, -17.0046], f=[-5734.24618771, -16060.7541932, -68843.2670803])
        self.system.part.add(id=254, type=1, pos=[-14.4854, 11.1328, -9.33585], f=[25533.0582186, -194603.698516, -28963.1725391])
        self.system.part.add(id=255, type=0, pos=[28.3348, -46.6827, 35.9808], f=[91220.9825979, -11914.1811302, -10285.5058093])
        self.system.part.add(id=256, type=1, pos=[7.26847, 2.20901, 8.84062], f=[290678.96438, 351389.857049, -259745.178826])
        self.system.part.add(id=257, type=1, pos=[-7.12085, -12.5296, 41.946], f=[779.536302848, 745.441700483, 616.383800664])
        self.system.part.add(id=258, type=0, pos=[-14.6772, 22.17, 0.731227], f=[-107706.826926, 176311.31789, 39411.9155093])
        self.system.part.add(id=259, type=1, pos=[5.03154, 6.33535, 14.823], f=[-896589.354985, 588387.315716, 1246292.73422])
        self.system.part.add(id=260, type=0, pos=[6.66531, 9.45172, 5.2604], f=[-562045.409724, -257397.306656, 302568.165387])
        self.system.part.add(id=261, type=0, pos=[22.0649, 17.5148, 26.312], f=[139402.101873, -126302.879678, -30870.4296256])
        self.system.part.add(id=262, type=1, pos=[14.5992, 10.8936, 4.42445], f=[155598.243911, -7704.21934303, 38147.8878215])
        self.system.part.add(id=263, type=1, pos=[-24.9766, -2.14758, 14.2537], f=[149430.236573, -156939.36269, 87887.6206494])
        self.system.part.add(id=264, type=0, pos=[-11.341, 20.734, -2.36689], f=[360.849501993, -11710.2457094, 541360.828776])
        self.system.part.add(id=265, type=1, pos=[37.8317, 15.3555, 5.91795], f=[-26585.8557645, 90822.7275781, 7202.21172967])
        self.system.part.add(id=266, type=0, pos=[2.11403, 12.7257, 12.4375], f=[-281885.457701, -90382.8559818, 238212.132245])
        self.system.part.add(id=267, type=0, pos=[20.1597, 16.5056, -5.86826], f=[114562.623608, 43571.9493337, 40338.2475928])
        self.system.part.add(id=268, type=0, pos=[1.32697, -6.80647, 0.388346], f=[24112.8258782, -37648.825121, -1368.99280021])
        self.system.part.add(id=269, type=0, pos=[19.3903, 4.08523, 8.40683], f=[367530.978255, 910004.376711, -346921.68909])
        self.system.part.add(id=270, type=1, pos=[41.9324, -0.559761, 23.3367], f=[9241.88935091, 109938.645364, 151715.548551])
        self.system.part.add(id=271, type=1, pos=[9.88502, 5.77538, -14.3992], f=[-18206.9501359, 1759.26632485, 7686.00171995])
        self.system.part.add(id=272, type=1, pos=[-6.69898, 18.6133, -17.5642], f=[272646.558003, 97109.1107779, -640959.775235])
        self.system.part.add(id=273, type=1, pos=[-14.1101, 25.3543, 25.5114], f=[29226.8404809, 14872.7879474, -36409.2263885])
        self.system.part.add(id=274, type=1, pos=[-18.3439, 31.0623, -12.9845], f=[-302994.857485, 418712.118205, 431757.072161])
        self.system.part.add(id=275, type=0, pos=[24.2161, -10.0633, 10.3326], f=[5559.18030796, 1424.6288843, -1727.95513734])
        self.system.part.add(id=276, type=1, pos=[27.7054, 8.85837, 3.78302], f=[-21285.5017442, 7834.06737852, 4127.04211873])
        self.system.part.add(id=277, type=1, pos=[11.2489, 4.73301, 1.12555], f=[10394.0660847, -1296.11055649, -164354.03048])
        self.system.part.add(id=278, type=0, pos=[22.999, 10.822, 25.6585], f=[-324000.299339, 160908.505068, -36521.1509323])
        self.system.part.add(id=279, type=1, pos=[20.0984, 7.47846, 21.0774], f=[20108.4989246, 24796.8004047, -13072.4385271])
        self.system.part.add(id=280, type=0, pos=[-24.7071, 10.7715, -12.232], f=[1734046.04072, -482751.891085, -1168036.29264])
        self.system.part.add(id=281, type=1, pos=[13.005, -4.13413, 4.21103], f=[-46.4592621129, -57.1129929678, -61.6328497454])
        self.system.part.add(id=282, type=1, pos=[5.32996, 23.94, 9.72681], f=[96860.810285, -94903.9560632, 119805.455483])
        self.system.part.add(id=283, type=0, pos=[12.6258, -18.8574, -0.403599], f=[129486.448111, -145493.925925, -39696.9247785])
        self.system.part.add(id=284, type=1, pos=[21.1657, -3.13347, -2.94105], f=[-152829.864303, 397304.569582, -451951.021149])
        self.system.part.add(id=285, type=1, pos=[16.9634, 11.3226, 35.2329], f=[791.909136547, 45984.1345276, 10405.249916])
        self.system.part.add(id=286, type=1, pos=[1.80774, 3.22237, 18.6318], f=[192077.973738, -138009.476699, -134968.06012])
        self.system.part.add(id=287, type=0, pos=[-12.8805, -13.1627, -18.9711], f=[21364.4720209, 245175.153491, 185725.369628])
        self.system.part.add(id=288, type=0, pos=[-4.91328, -15.2753, 12.3476], f=[72374.584109, 148611.850025, 426162.160716])
        self.system.part.add(id=289, type=0, pos=[19.4424, 5.30228, 17.015], f=[-2383.52945197, 153.411365338, 763.93932165])
        self.system.part.add(id=290, type=1, pos=[23.5326, 21.2132, 13.76], f=[-61737.2523539, -45353.8696814, -351994.603377])
        self.system.part.add(id=291, type=0, pos=[-15.9254, 8.02975, 13.7683], f=[-7474.81060352, 99439.4743799, 52369.774661])
        self.system.part.add(id=292, type=1, pos=[8.77804, -19.7785, -24.7348], f=[4940.57284102, -11095.5499563, -54003.1698257])
        self.system.part.add(id=293, type=1, pos=[-11.0482, -9.46797, -19.6454], f=[-914.876757168, 9257.01140839, -1095.20214657])
        self.system.part.add(id=294, type=1, pos=[-16.1757, 4.78398, -20.4276], f=[-81726.2285351, 189261.375095, -40577.5938991])
        self.system.part.add(id=295, type=1, pos=[23.2319, 7.63347, 14.8446], f=[331230.055368, -12782.8830981, -168476.024481])
        self.system.part.add(id=296, type=1, pos=[-7.91514, 18.084, 19.3609], f=[-63212.3291657, 40221.6464025, -25738.074593])
        self.system.part.add(id=297, type=1, pos=[-10.8636, 2.85694, 11.6977], f=[40708.3684066, -22567.9738496, -173791.126607])
        self.system.part.add(id=298, type=0, pos=[7.94237, 27.1333, 17.8495], f=[2499.09987105, -164.153956036, 1095.08773678])
        self.system.part.add(id=299, type=0, pos=[-39.901, -1.68615, 18.6173], f=[-109.372626152, 2274.24541351, -964.02877604])
        self.system.part.add(id=300, type=0, pos=[-11.9578, 6.423, 21.3234], f=[44143.1674187, 887670.026953, 490126.951251])
        self.system.part.add(id=301, type=0, pos=[8.11667, -3.92853, -27.5054], f=[-206909.591102, 159936.553623, 13443.5620746])
        self.system.part.add(id=302, type=1, pos=[12.7103, 4.18886, 31.8423], f=[-149936.127119, -105704.750768, 38734.6088894])
        self.system.part.add(id=303, type=0, pos=[2.89015, 33.4006, 2.91344], f=[216092.64091, -113389.259984, -394527.82677])
        self.system.part.add(id=304, type=1, pos=[10.9898, 4.56687, -24.2688], f=[5097.86882148, 12608.7868618, 135208.863876])
        self.system.part.add(id=305, type=0, pos=[26.7415, -0.0124172, -19.5371], f=[423731.080534, 535831.415897, 681221.524538])
        self.system.part.add(id=306, type=1, pos=[-16.0261, 12.1251, -1.52792], f=[-395638.110323, -676974.742697, -118308.77589])
        self.system.part.add(id=307, type=1, pos=[22.4778, -3.66117, 30.3185], f=[41555.4393138, -24441.3954031, -99759.5531849])
        self.system.part.add(id=308, type=0, pos=[1.56766, -4.31244, -6.42737], f=[33345.1578199, 101276.862127, 7594.9251329])
        self.system.part.add(id=309, type=1, pos=[-9.34157, -14.768, -3.37169], f=[-18999.4998714, -15088.897609, -805.859152471])
        self.system.part.add(id=310, type=0, pos=[-8.12854, 12.2901, 17.8688], f=[-62898.8476857, -99290.8711373, 38620.0173253])
        self.system.part.add(id=311, type=0, pos=[0.271517, 22.9569, 24.8564], f=[74141.8002108, 101672.675084, 92266.5421552])
        self.system.part.add(id=312, type=0, pos=[-1.70059, 23.9174, -1.93373], f=[-52488.957608, 55080.643627, -33150.8340226])
        self.system.part.add(id=313, type=1, pos=[8.3439, -12.3577, -3.66346], f=[-0.168052368041, 0.0590614534735, -0.0203304929785])
        self.system.part.add(id=314, type=1, pos=[8.5742, 24.6412, 13.6058], f=[47004.4830121, 48070.1032676, 29004.3010486])
        self.system.part.add(id=315, type=0, pos=[-15.5886, 2.68378, 22.5946], f=[-25464.2072097, 12130.3098164, 6061.34124545])
        self.system.part.add(id=316, type=0, pos=[-47.8756, -23.4025, 11.3119], f=[-31229.3390781, 25311.9582273, 83638.9245573])
        self.system.part.add(id=317, type=0, pos=[25.687, 44.0353, -3.21308], f=[-66258.5423071, 8351.31579581, 6630.14584447])
        self.system.part.add(id=318, type=1, pos=[-7.27703, 19.4779, 22.22], f=[248966.853692, 234205.327418, -28184.0412103])
        self.system.part.add(id=319, type=1, pos=[34.2794, 19.9522, 27.7506], f=[2426.6347506, 9997.97715896, -7532.71536888])
        self.system.part.add(id=320, type=1, pos=[-1.68596, 26.0317, 9.4843], f=[-461832.807937, 138104.627025, 42299.3395431])
        self.system.part.add(id=321, type=0, pos=[-8.4018, 25.9001, -13.3804], f=[19207.1947717, -14330.4351431, -16222.5961508])
        self.system.part.add(id=322, type=0, pos=[34.6457, 12.8489, 48.6769], f=[395887.701691, 554517.62011, 61444.9726936])
        self.system.part.add(id=323, type=0, pos=[-19.0386, -12.9167, 15.63], f=[72920.6514787, -5180.47789705, 22376.1575985])
        self.system.part.add(id=324, type=0, pos=[-7.67313, -12.7886, -14.8602], f=[-905141.474807, 71559.2566984, -654270.260837])
        self.system.part.add(id=325, type=1, pos=[-42.1065, 20.0133, 10.5374], f=[254675.557079, 215011.720425, 413252.322271])
        self.system.part.add(id=326, type=1, pos=[7.85882, -9.83641, -13.8482], f=[-39756.9739766, 58193.1073736, -46449.8897941])
        self.system.part.add(id=327, type=1, pos=[17.7812, 18.9758, 10.7564], f=[-36785.6331824, 36834.9724548, 90417.0335526])
        self.system.part.add(id=328, type=0, pos=[-1.07174, 0.350308, -11.3479], f=[3602.87628621, -1535.76243078, -106032.334094])
        self.system.part.add(id=329, type=1, pos=[13.3291, 25.2511, 28.2701], f=[-27395.4876737, 38703.4396355, 43021.3310208])
        self.system.part.add(id=330, type=1, pos=[-5.65484, -2.91928, 1.88109], f=[999.034795293, -117933.631902, -36701.5355173])
        self.system.part.add(id=331, type=0, pos=[-3.76892, 18.1284, 19.1779], f=[58007.7718012, 281882.230492, 54488.5805645])
        self.system.part.add(id=332, type=0, pos=[19.8696, -0.978259, -8.2067], f=[-147122.786591, -200953.628028, -77957.4879106])
        self.system.part.add(id=333, type=0, pos=[0.316131, 10.4155, 10.887], f=[-389177.932998, 132790.499972, 364601.617299])
        self.system.part.add(id=334, type=0, pos=[16.3898, 16.8903, -19.7831], f=[-37516.3238532, 45742.4914466, -10857.9217686])
        self.system.part.add(id=335, type=0, pos=[19.9042, 28.9257, 19.4875], f=[13176.7087196, -24110.0770056, -3113.26781302])
        self.system.part.add(id=336, type=0, pos=[4.14909, -15.6467, 15.4463], f=[-402604.322827, -81212.5506167, -129850.233018])
        self.system.part.add(id=337, type=0, pos=[-15.3921, 17.6944, -23.1293], f=[2970.94560481, -283.687361462, -3211.9755691])
        self.system.part.add(id=338, type=0, pos=[-2.51628, -6.63483, 18.5411], f=[48467.3210391, 10481.9814221, 33021.9075003])
        self.system.part.add(id=339, type=0, pos=[3.19186, 12.0895, -0.326107], f=[-116227.890014, 41827.6530265, 10127.9429285])
        self.system.part.add(id=340, type=1, pos=[7.17579, 14.6012, 2.95932], f=[-688629.345609, 720526.832369, -208850.135697])
        self.system.part.add(id=341, type=1, pos=[16.7636, 13.8178, 26.8868], f=[-122517.525471, -2549.8228951, -15519.2751994])
        self.system.part.add(id=342, type=1, pos=[6.97664, 9.52169, 3.53827], f=[12316.4229811, -62495.6233809, 88072.081659])
        self.system.part.add(id=343, type=0, pos=[20.9549, 15.6723, 25.1484], f=[17169.7343359, 3320.77559522, -6538.82588156])
        self.system.part.add(id=344, type=0, pos=[0.533194, 27.4352, -5.75287], f=[504581.437285, -367492.642748, 614637.339096])
        self.system.part.add(id=345, type=0, pos=[-13.4279, 2.52396, 5.40281], f=[-15820.7933988, 17454.5506358, -33800.9771954])
        self.system.part.add(id=346, type=0, pos=[-10.9643, -6.13645, -14.5351], f=[-79512.3364187, -155298.405639, 30135.9227917])
        self.system.part.add(id=347, type=1, pos=[2.07633, -4.78464, 12.6415], f=[18119.0665009, -7712.83297066, -15289.6269358])
        self.system.part.add(id=348, type=0, pos=[-25.065, 13.4621, -5.58194], f=[18811.8389902, -24186.8813873, -12260.8709225])
        self.system.part.add(id=349, type=1, pos=[20.5237, 20.7999, 22.458], f=[-529599.822374, -20988.5023144, -198522.235651])
        self.system.part.add(id=350, type=1, pos=[-18.183, 17.6236, 17.3922], f=[-41181.7808857, 3244.47660203, 31251.7610209])
        self.system.part.add(id=351, type=1, pos=[8.99255, 23.1866, -11.4973], f=[-272429.251764, -1011610.02952, 480196.771778])
        self.system.part.add(id=352, type=1, pos=[-2.05616, -18.7755, 15.9484], f=[-31613.037539, -43244.5567568, 55549.6536462])
        self.system.part.add(id=353, type=1, pos=[-2.74523, 17.4506, 15.0548], f=[456.180231377, 79.0446597149, 185.753856165])
        self.system.part.add(id=354, type=1, pos=[-6.37235, -2.90565, 7.47273], f=[61977.0829392, -32137.675754, -25395.8292902])
        self.system.part.add(id=355, type=1, pos=[-15.5279, 5.41772, -9.06838], f=[127538.852035, -91061.7382711, 109071.558467])
        self.system.part.add(id=356, type=0, pos=[25.3237, -11.9966, -6.82038], f=[10239.3913099, -2007.33823426, 4585.81731527])
        self.system.part.add(id=357, type=1, pos=[25.6056, 1.08582, 3.83722], f=[272880.288421, -145784.305926, 134124.365797])
        self.system.part.add(id=358, type=1, pos=[13.0481, 4.62343, -19.6275], f=[13703.0836879, -12186.8088907, -19228.241143])
        self.system.part.add(id=359, type=1, pos=[31.7489, 1.75658, 25.0869], f=[434035.194361, 158866.577629, -133531.313457])
        self.system.part.add(id=360, type=0, pos=[4.93794, 7.72619, -18.8734], f=[-2154.11175497, -4580.89972713, -53083.3344172])
        self.system.part.add(id=361, type=1, pos=[2.55317, -5.84126, 29.0504], f=[-41368.5811504, 809857.57283, -352953.878257])
        self.system.part.add(id=362, type=1, pos=[-5.51764, 2.06697, -5.30596], f=[49173.7250526, 113843.024728, 1571.55505067])
        self.system.part.add(id=363, type=0, pos=[27.9355, 10.9121, 4.94288], f=[77395.1334365, -62139.0317007, -249463.562579])
        self.system.part.add(id=364, type=0, pos=[38.0845, -22.8538, -36.6678], f=[-284532.867889, -108597.733955, 121907.369618])
        self.system.part.add(id=365, type=0, pos=[5.25071, 1.57145, -8.08758], f=[-69661.5225665, 144933.951358, -254681.742887])
        self.system.part.add(id=366, type=1, pos=[-5.18666, 29.753, 28.6484], f=[-32445.141122, 69926.9005615, -44097.9618832])
        self.system.part.add(id=367, type=0, pos=[-19.9623, 23.7312, 7.15746], f=[-6756.75635019, 105027.72239, 77021.1124197])
        self.system.part.add(id=368, type=1, pos=[17.4057, -11.844, 16.736], f=[-322.356448863, -2686.15597778, -3984.21463105])
        self.system.part.add(id=369, type=0, pos=[29.285, 5.72952, -20.5642], f=[540324.452872, -102078.39818, -596.846350509])
        self.system.part.add(id=370, type=0, pos=[-3.83269, 8.68623, 16.0081], f=[34329.2471466, -198.131563349, 15529.0681631])
        self.system.part.add(id=371, type=1, pos=[-33.6956, 9.39888, -10.2114], f=[-505817.734598, -563914.722607, -389356.587742])
        self.system.part.add(id=372, type=1, pos=[-17.5739, 33.1382, -2.50818], f=[70096.4110789, 78916.5449178, -30874.0384892])
        self.system.part.add(id=373, type=0, pos=[36.5357, 24.9728, 41.4357], f=[3582.74664871, 23172.1578332, 18669.4097444])
        self.system.part.add(id=374, type=0, pos=[16.9954, 5.33989, 15.0416], f=[4615.45711424, 24586.0682807, 5613.69638571])
        self.system.part.add(id=375, type=1, pos=[1.82334, 7.08591, 19.9433], f=[43700.0784101, 106294.552757, 30046.5379008])
        self.system.part.add(id=376, type=0, pos=[13.0631, 42.3133, 2.65241], f=[-7279.48024105, -48082.1141698, -15064.4285264])
        self.system.part.add(id=377, type=1, pos=[14.1583, 23.6694, 1.89258], f=[592.894775157, 820.523838976, -2249.92688651])
        self.system.part.add(id=378, type=0, pos=[-0.35301, 9.62877, 20.8785], f=[5884.6572214, 334.54595679, 903.221744571])
        self.system.part.add(id=379, type=0, pos=[6.67499, 5.20424, 26.3819], f=[266434.093426, -581671.982115, -996293.891106])
        self.system.part.add(id=380, type=1, pos=[25.2999, -21.789, -7.9224], f=[-465258.329093, 81069.5777949, 359876.747496])
        self.system.part.add(id=381, type=0, pos=[16.0707, 14.5449, 8.78741], f=[-8701.79958014, -5573.80598606, -2732.06560018])
        self.system.part.add(id=382, type=0, pos=[-25.8306, 27.0075, -50.1218], f=[2315.31639344, -396.390181723, -2040.26686864])
        self.system.part.add(id=383, type=0, pos=[-8.60183, -3.87077, 19.6745], f=[62924.1245455, -359785.709668, 471082.568389])
        self.system.part.add(id=384, type=1, pos=[19.9619, -2.14535, 23.5428], f=[-502660.753334, 365889.478594, -616466.879706])
        self.system.part.add(id=385, type=0, pos=[-11.917, 25.0486, -11.9888], f=[-252841.487364, 13692.6243924, -380884.674871])
        self.system.part.add(id=386, type=1, pos=[17.6316, 42.7367, 26.7442], f=[-100260.641148, -50713.7110736, -47507.852387])
        self.system.part.add(id=387, type=1, pos=[-16.5078, 28.1644, 41.4039], f=[-12799.5774151, -1592.63817009, 10915.5790055])
        self.system.part.add(id=388, type=0, pos=[2.40707, 7.63493, -25.9164], f=[-98416.3018031, 67976.5133864, -32383.8630576])
        self.system.part.add(id=389, type=0, pos=[11.3639, 2.55183, 29.29], f=[-321680.940885, 162955.406554, 34657.7013554])
        self.system.part.add(id=390, type=0, pos=[-12.5677, 30.7672, 17.4674], f=[-78288.3865436, -181844.032266, -73372.387592])
        self.system.part.add(id=391, type=0, pos=[11.019, -23.0012, -6.70126], f=[2185.24956457, 15847.3152984, 15616.7800604])
        self.system.part.add(id=392, type=1, pos=[-4.68606, 28.8649, 4.82749], f=[197825.116518, 29776.8092684, 194665.584048])
        self.system.part.add(id=393, type=0, pos=[3.62642, 3.64346, 3.50788], f=[95426.7747516, 133305.407313, -174294.905297])
        self.system.part.add(id=394, type=1, pos=[18.701, -7.43215, -5.99042], f=[95402.7472941, 143373.87079, 387719.704107])
        self.system.part.add(id=395, type=0, pos=[-0.918984, 14.3861, -7.71807], f=[-69714.6766965, 2325.95057819, 59656.3688397])
        self.system.part.add(id=396, type=0, pos=[-5.1385, 11.8359, -12.3905], f=[4962.35281625, 17872.6162777, -21529.0742789])
        self.system.part.add(id=397, type=1, pos=[-34.6372, -40.5613, 25.8628], f=[-42698.5500802, 58502.6591514, -13546.623495])
        self.system.part.add(id=398, type=1, pos=[-11.1098, -4.07139, -9.06733], f=[-20436.6408737, -270760.045318, -221611.353537])
        self.system.part.add(id=399, type=0, pos=[-19.408, -0.602715, -3.59942], f=[-10950.1426195, -101096.607992, -84884.8335726])
        self.system.part.add(id=400, type=1, pos=[23.0766, -0.355263, 0.687203], f=[-5923.80805124, -18251.7762592, 315.982007073])
        self.system.part.add(id=401, type=1, pos=[22.8645, 20.7687, 1.53809], f=[-1344471.45332, 1115941.1681, -158312.630525])
        self.system.part.add(id=402, type=1, pos=[5.72787, 39.9511, 14.4921], f=[13339.1898212, 2852.47977543, -2485.03727824])
        self.system.part.add(id=403, type=0, pos=[-0.81178, -5.67944, 7.37332], f=[-10.6582398182, -0.696123053823, -0.00325471160703])
        self.system.part.add(id=404, type=0, pos=[7.79782, -0.0438411, -8.22903], f=[-855095.741221, -511155.30489, 355875.160454])
        self.system.part.add(id=405, type=0, pos=[-37.4238, 1.16415, 32.6662], f=[44661.7520812, -45904.5136667, -32550.6355932])
        self.system.part.add(id=406, type=0, pos=[34.235, -11.9125, 10.5171], f=[18975.3517119, -1844.64270364, -17265.7857491])
        self.system.part.add(id=407, type=1, pos=[30.7658, 11.8295, 8.77407], f=[-92895.7722952, -33881.6072116, 38582.0179338])
        self.system.part.add(id=408, type=1, pos=[19.9135, -15.6501, 21.5744], f=[69409.2651814, -3513.21557656, -60134.2206779])
        self.system.part.add(id=409, type=1, pos=[29.574, 2.16048, 29.5709], f=[1703.70949271, -553.933784607, -767.745478369])
        self.system.part.add(id=410, type=1, pos=[31.9819, 11.9493, -10.1563], f=[149948.63715, -120821.414054, 287492.388316])
        self.system.part.add(id=411, type=1, pos=[-3.71502, 5.29894, 12.9606], f=[-16681.496585, 155478.063976, -146493.741388])
        self.system.part.add(id=412, type=1, pos=[20.2454, -17.408, -9.58198], f=[-7430.0122484, -36661.4555396, 28114.012798])
        self.system.part.add(id=413, type=1, pos=[-12.2415, -14.5315, -8.75518], f=[-251354.266942, -842186.935718, -71665.9694396])
        self.system.part.add(id=414, type=0, pos=[18.0658, 1.20393, 13.3932], f=[38588.9912102, -18145.5060944, 8551.5081197])
        self.system.part.add(id=415, type=1, pos=[19.9133, 47.1448, -14.7023], f=[-75786.8169704, 3042.87958746, -20874.9523635])
        self.system.part.add(id=416, type=1, pos=[-4.98195, 23.2353, 10.9409], f=[-11762.8858906, 41169.4830253, 8132.7193765])
        self.system.part.add(id=417, type=0, pos=[32.7212, -2.61271, -1.97336], f=[2819.72349085, 80999.955603, -69569.9823528])
        self.system.part.add(id=418, type=1, pos=[-14.9407, 24.5064, 15.8982], f=[495169.250935, -191847.532312, 274085.573474])
        self.system.part.add(id=419, type=1, pos=[-0.370994, 11.0288, 12.138], f=[114634.624253, -340243.460463, -89445.6577944])
        self.system.part.add(id=420, type=1, pos=[24.7918, 23.006, 19.818], f=[458738.822709, -648743.354097, 41219.8067326])
        self.system.part.add(id=421, type=0, pos=[12.2324, 10.8853, 18.0148], f=[-81481.7328728, 22983.9150517, 74994.3319967])
        self.system.part.add(id=422, type=1, pos=[-9.63005, 2.60135, 3.79172], f=[-1285441.45978, -562539.308989, 495438.318098])
        self.system.part.add(id=423, type=1, pos=[8.67506, 25.5567, -8.22007], f=[-10244.3934164, -261203.838925, -397322.001959])
        self.system.part.add(id=424, type=0, pos=[27.8241, -5.3103, -0.57812], f=[1343169.59562, 427658.923732, -2513304.53874])
        self.system.part.add(id=425, type=0, pos=[-15.5693, 2.79493, 3.76479], f=[158891.233171, 33656.8393647, 3189.94676725])
        self.system.part.add(id=426, type=1, pos=[-4.74511, 2.17108, -0.728546], f=[50075.9506856, -62528.133547, 61181.749071])
        self.system.part.add(id=427, type=1, pos=[6.78528, 17.2248, 27.3346], f=[-2758.1580956, 201.880806605, -1887.72294416])
        self.system.part.add(id=428, type=0, pos=[5.41781, 23.7927, 7.778], f=[-1904.78438599, 1870.50633386, -209.562530744])
        self.system.part.add(id=429, type=0, pos=[-27.1897, -11.444, 23.3116], f=[-363023.379898, -40166.9733598, 648772.476571])
        self.system.part.add(id=430, type=1, pos=[0.721097, 22.6138, -8.29598], f=[-239731.672951, -170143.561325, 63704.0568416])
        self.system.part.add(id=431, type=1, pos=[-9.14098, -4.92886, 48.7759], f=[-28482.55279, 15212.5069863, -26657.9210307])
        self.system.part.add(id=432, type=0, pos=[15.5035, -16.5838, 25.9115], f=[79867.1129408, 22225.5418003, 3056.77310978])
        self.system.part.add(id=433, type=0, pos=[31.2859, -14.321, 21.7618], f=[-8322.57895104, 7940.9282434, 2679.22206354])
        self.system.part.add(id=434, type=0, pos=[13.3687, -9.24494, -9.64525], f=[3551.26805761, 10350.3650979, -5076.08659636])
        self.system.part.add(id=435, type=1, pos=[1.42919, -1.11248, 39.6929], f=[-231600.685597, -449365.581371, -69037.1473738])
        self.system.part.add(id=436, type=1, pos=[7.26355, 13.5482, 6.01046], f=[-104737.77398, 5144.30106208, -14422.4482978])
        self.system.part.add(id=437, type=0, pos=[15.5378, -2.61664, 16.5859], f=[-343370.294598, -472423.897941, -264832.980026])
        self.system.part.add(id=438, type=1, pos=[10.3619, -1.05464, 37.3556], f=[-579934.340977, 106309.138829, -37395.8330258])
        self.system.part.add(id=439, type=1, pos=[37.1155, 31.809, -8.4016], f=[-300.169276722, -765.138941032, -395.293746518])
        self.system.part.add(id=440, type=1, pos=[4.03636, 13.1279, 25.0957], f=[-13252.7762994, -7073.58469897, 9319.45886376])
        self.system.part.add(id=441, type=0, pos=[2.73306, 28.5467, -5.46719], f=[-35207.6019812, 3621.8986015, -18517.3499795])
        self.system.part.add(id=442, type=0, pos=[16.1892, -3.69667, 24.8044], f=[-83198.1720846, -13703.1726585, -5776.57261601])
        self.system.part.add(id=443, type=0, pos=[-12.6562, 29.6716, -10.2506], f=[-319335.659743, -141817.998052, -332121.691525])
        self.system.part.add(id=444, type=1, pos=[-20.6156, -9.07022, 9.51543], f=[14902.9009195, 18932.0763092, 28206.9514831])
        self.system.part.add(id=445, type=0, pos=[-36.4144, -5.24311, 11.6416], f=[149316.340645, 99679.7290012, -34645.8440396])
        self.system.part.add(id=446, type=1, pos=[26.0792, 21.8337, 10.0011], f=[-331700.256771, 150621.887836, 237763.782273])
        self.system.part.add(id=447, type=0, pos=[-0.681588, 15.9295, 32.5118], f=[59730.9718097, 66470.3358774, 122193.174955])
        self.system.part.add(id=448, type=1, pos=[48.4635, 13.4953, -15.4497], f=[-16891.8412425, -10923.5443149, -27340.2010334])
        self.system.part.add(id=449, type=0, pos=[5.95144, 37.3585, 12.4261], f=[-4952.86824306, -35161.6461147, -24468.1205676])
        self.system.part.add(id=450, type=0, pos=[14.86, 7.39436, -0.724951], f=[-4660.17510101, 823.474923273, 2616.68587604])
        self.system.part.add(id=451, type=0, pos=[29.1326, 20.0451, -3.70222], f=[136080.815175, 62306.8076497, 122129.253081])
        self.system.part.add(id=452, type=0, pos=[-6.44948, -12.0999, 46.6197], f=[-13099.3117824, -24473.230839, -37032.5187097])
        self.system.part.add(id=453, type=0, pos=[-0.787449, 14.1766, 0.36943], f=[-64988.879062, -65297.7761163, 35018.5931316])
        self.system.part.add(id=454, type=0, pos=[35.7854, 5.00133, 44.444], f=[18275.6628638, -3508.40350419, -41998.8393095])
        self.system.part.add(id=455, type=1, pos=[15.3581, -3.91337, 28.685], f=[176195.770164, -134945.127273, -415653.933411])
        self.system.part.add(id=456, type=0, pos=[-3.15312, 1.48484, -0.573851], f=[180215.594205, -529066.492005, -31008.7150906])
        self.system.part.add(id=457, type=1, pos=[-3.29893, 13.822, 12.4555], f=[-79692.9879287, 77165.753708, -40302.9478819])
        self.system.part.add(id=458, type=1, pos=[-15.2886, 34.5822, 14.5128], f=[331.81673669, 29195.7801971, -47447.5090764])
        self.system.part.add(id=459, type=1, pos=[-9.1355, -19.3829, -26.3464], f=[272397.905287, 129776.100492, 94618.3149323])
        self.system.part.add(id=460, type=1, pos=[-13.886, 0.472531, 19.6791], f=[-26934.729863, 30792.1220637, -48056.689134])
        self.system.part.add(id=461, type=1, pos=[-4.14837, -26.8611, 18.9785], f=[-45148.3981119, 8031.13705147, -33699.2657512])
        self.system.part.add(id=462, type=0, pos=[35.9996, 27.2453, 34.5419], f=[-24853.6669223, -63691.774776, -41988.0130773])
        self.system.part.add(id=463, type=0, pos=[8.12899, 12.2741, 15.3574], f=[-1106.51360065, 8671.92488291, -2862.79263427])
        self.system.part.add(id=464, type=1, pos=[-20.5306, -16.1592, -25.612], f=[6766.17962799, 1141.17266119, -21173.1588201])
        self.system.part.add(id=465, type=0, pos=[7.81445, -26.2477, 7.00682], f=[256899.097168, 38682.6539982, 91019.1339103])
        self.system.part.add(id=466, type=0, pos=[-13.1114, -7.00921, 4.55311], f=[182036.48396, 361909.771543, 528434.480923])
        self.system.part.add(id=467, type=0, pos=[13.6581, 13.0613, -22.8111], f=[25776.685139, 90393.525096, -32420.7195382])
        self.system.part.add(id=468, type=1, pos=[0.731612, 18.1677, -18.5018], f=[-183740.577106, 95251.2464941, 8113.25764991])
        self.system.part.add(id=469, type=1, pos=[2.86373, -27.0131, 1.78031], f=[287991.498759, 147780.641893, -301541.57882])
        self.system.part.add(id=470, type=1, pos=[26.0484, 4.38345, 5.63318], f=[14602.484419, 24628.3216086, -12061.3372804])
        self.system.part.add(id=471, type=0, pos=[-14.6628, -20.9057, 17.409], f=[-1015.8699092, 1479.15886529, 596.173189892])
        self.system.part.add(id=472, type=0, pos=[6.37026, -11.1698, 27.8465], f=[9655.71795619, 23155.5653768, 27961.9366783])
        self.system.part.add(id=473, type=1, pos=[13.124, -9.3699, 7.45203], f=[90663.4010148, -26323.5856306, -58376.3247593])
        self.system.part.add(id=474, type=1, pos=[15.4635, 16.5177, 11.293], f=[415.466619071, 10572.3109383, 17070.9022577])
        self.system.part.add(id=475, type=0, pos=[16.6037, 1.11661, 18.1862], f=[61.3419027553, 52.4388846718, 847.4470994])
        self.system.part.add(id=476, type=0, pos=[-8.35625, 4.22599, 8.44338], f=[-123448.461953, 348831.974023, -116434.922867])
        self.system.part.add(id=477, type=0, pos=[5.84946, -9.98721, 2.12309], f=[533.824913842, -1625.78070183, -1413.93576566])
        self.system.part.add(id=478, type=1, pos=[7.6953, 0.927625, 2.36443], f=[40627.3957397, 67360.350236, -49538.277109])
        self.system.part.add(id=479, type=0, pos=[3.614, 20.1627, -18.3327], f=[1390361.88427, -1115450.78318, 241560.535146])
        self.system.part.add(id=480, type=1, pos=[10.0858, 22.713, 38.6951], f=[-26159.6012799, -7482.95629493, 34470.8617829])
        self.system.part.add(id=481, type=1, pos=[-6.62086, 2.63495, 3.66959], f=[-193837.899644, -248567.805867, 86942.5029001])
        self.system.part.add(id=482, type=0, pos=[-5.37556, -4.46687, 13.5613], f=[197693.466549, -294105.760938, -241652.678305])
        self.system.part.add(id=483, type=0, pos=[-21.2751, 19.3341, 0.263397], f=[-25054.5629593, 194899.721279, 5850.88464789])
        self.system.part.add(id=484, type=1, pos=[4.31085, 2.67273, 11.4199], f=[-1499.32842013, 2801.28027497, -15255.4558408])
        self.system.part.add(id=485, type=1, pos=[10.813, 24.1835, -19.766], f=[-17151.3889024, 360675.062033, 289872.521782])
        self.system.part.add(id=486, type=0, pos=[23.0983, -15.3739, 33.1195], f=[2368.40240459, -324.750659196, -97.4640564601])
        self.system.part.add(id=487, type=1, pos=[26.3883, 26.289, 5.92522], f=[88375.3927259, -3528.27187387, -5619.77714169])
        self.system.part.add(id=488, type=1, pos=[-13.4154, -1.88384, 10.2086], f=[27549.5568974, 2173.23119217, 94711.2680476])
        self.system.part.add(id=489, type=1, pos=[27.0924, 26.9394, 6.09175], f=[-0.046689540432, -0.373854802518, -0.323516903851])
        self.system.part.add(id=490, type=0, pos=[-5.60108, 9.51396, -27.8059], f=[110.880120795, 100.701338548, -28.0786446345])
        self.system.part.add(id=491, type=0, pos=[-0.0711613, -2.10658, -7.72058], f=[1605247.43442, -312633.129266, 1725922.13238])
        self.system.part.add(id=492, type=0, pos=[1.5837, -9.94894, 4.21], f=[-40983.6423457, 5010.35045904, 98024.956066])
        self.system.part.add(id=493, type=0, pos=[14.0725, -5.04008, 32.6928], f=[-10.7202580926, 6.99810114045, 28.2709331886])
        self.system.part.add(id=494, type=1, pos=[21.6236, 6.59296, -7.62256], f=[103301.847764, -312342.307167, 250908.549565])
        self.system.part.add(id=495, type=1, pos=[16.9848, 20.3233, 34.7887], f=[219366.8315, -542754.127861, 519313.566779])
        self.system.part.add(id=496, type=0, pos=[-4.38621, -4.72923, 6.57385], f=[-36149.8924372, -4897.0884601, 65511.2790487])
        self.system.part.add(id=497, type=0, pos=[-2.08958, 24.5887, 32.1344], f=[208109.22093, 140145.095743, 179034.64802])
        self.system.part.add(id=498, type=0, pos=[4.8845, 17.2248, -1.70277], f=[38133.3832608, 44438.9584195, -22858.4056466])
        self.system.part.add(id=499, type=0, pos=[16.4905, 20.12, 16.0676], f=[-76.3689329003, 763.361068076, -19188.6723771])
        self.system.part.add(id=500, type=1, pos=[-5.61473, 0.677861, -2.94091], f=[-20941.7302511, -2783.3291711, -14900.8261328])
        self.system.part.add(id=501, type=0, pos=[10.9471, 28.1139, 15.2034], f=[1381.64092797, -2314.14831914, -3238.42771624])
        self.system.part.add(id=502, type=0, pos=[26.9334, -9.79043, 2.69692], f=[-59548.2228531, 12738.6090492, -56639.4061343])
        self.system.part.add(id=503, type=0, pos=[1.94696, 8.83478, -27.5241], f=[-131120.270743, -350866.882814, -43781.1055603])
        self.system.part.add(id=504, type=1, pos=[17.9352, 1.39162, 10.368], f=[-3575.75615258, -9264.5338282, -3813.56456115])
        self.system.part.add(id=505, type=0, pos=[-8.06977, 7.98535, -36.9275], f=[128.263728071, -186.562213232, 51.4800231937])
        self.system.part.add(id=506, type=1, pos=[-9.25449, 27.7317, 17.4527], f=[11229.1036941, -39662.6021962, 63838.7501524])
        self.system.part.add(id=507, type=1, pos=[5.78556, 0.106931, 8.71538], f=[-42757.3274639, 52063.6101367, -2965.1502642])
        self.system.part.add(id=508, type=1, pos=[-9.0765, -0.222421, -22.1939], f=[-11513.058278, -1196.91357487, -173780.203385])
        self.system.part.add(id=509, type=0, pos=[-16.8338, 8.25018, 15.7144], f=[-10300.2490307, 94632.7889183, 133916.123983])
        self.system.part.add(id=510, type=1, pos=[-7.74373, -0.495665, -4.70655], f=[313810.255451, 137904.258013, 157305.449681])
        self.system.part.add(id=511, type=1, pos=[-10.0257, 3.23297, 2.27256], f=[37587.2621297, 395.410193423, -14199.3195391])
        self.system.part.add(id=512, type=1, pos=[-0.894466, -13.1217, -16.3853], f=[81752.5639607, -20955.1412871, 21659.456902])
        self.system.part.add(id=513, type=1, pos=[-1.22637, -1.70874, 15.0646], f=[-0.117807588582, -8.09360173851, 69.3625094134])
        self.system.part.add(id=514, type=1, pos=[-10.7919, -3.24196, -11.5246], f=[487620.738228, 611490.025483, 480860.575943])
        self.system.part.add(id=515, type=0, pos=[4.78847, -0.964608, 10.9806], f=[-37.0143859987, 60.1219807127, -72.6572380898])
        self.system.part.add(id=516, type=1, pos=[-15.482, 0.991917, -1.69862], f=[-1716727.40688, 466723.668367, 1194518.43442])
        self.system.part.add(id=517, type=0, pos=[-0.688694, 31.9809, 2.38321], f=[-108142.579988, 305731.329489, 115199.387751])
        self.system.part.add(id=518, type=0, pos=[26.7374, 12.9698, 9.62709], f=[13724.965183, -7032.8449552, 34707.6196532])
        self.system.part.add(id=519, type=1, pos=[29.5335, 4.79558, 15.5648], f=[73613.8661045, 210776.7568, -4277.80150252])
        self.system.part.add(id=520, type=1, pos=[-0.975577, 48.3502, 10.4248], f=[205259.77763, -406938.606011, 622883.031058])
        self.system.part.add(id=521, type=0, pos=[-23.4618, 29.2964, -11.231], f=[99262.9103663, -72735.1830103, -230453.779877])
        self.system.part.add(id=522, type=1, pos=[12.6893, 9.0265, -0.329318], f=[82257.8171907, -108560.830621, 23523.349894])
        self.system.part.add(id=523, type=0, pos=[-2.73528, -3.67112, -30.7565], f=[-48261.8407682, 28151.3788544, -15351.9535394])
        self.system.part.add(id=524, type=1, pos=[-23.5013, 25.7466, 28.2362], f=[-7645.59442967, -2819.40067021, 2022.85461027])
        self.system.part.add(id=525, type=1, pos=[13.591, -6.39236, 20.625], f=[-103383.854922, -36322.7047744, 137516.133054])
        self.system.part.add(id=526, type=1, pos=[-17.5074, 12.9774, 30.6448], f=[8499.72038733, -4647.91016543, 8734.43131088])
        self.system.part.add(id=527, type=1, pos=[-3.84318, -6.26911, -28.5044], f=[-488.613892051, -1597.29759405, 74.9106188577])
        self.system.part.add(id=528, type=1, pos=[-13.0563, 4.34363, -5.52071], f=[23015.539596, -20065.1495617, 27696.2228826])
        self.system.part.add(id=529, type=0, pos=[15.8341, 19.2309, 1.42873], f=[463.657124932, 884.726474976, -570.831760995])
        self.system.part.add(id=530, type=0, pos=[16.9428, 33.6052, 3.55647], f=[-19939.8452882, 4756.53351716, 16157.3483418])
        self.system.part.add(id=531, type=1, pos=[4.01827, -3.42838, -1.52657], f=[-63641.8915974, -47994.3344477, 12669.5387627])
        self.system.part.add(id=532, type=1, pos=[38.3054, 27.8912, -18.92], f=[96816.4080113, -219236.92912, -304328.701135])
        self.system.part.add(id=533, type=0, pos=[8.57537, -7.1674, 37.6287], f=[-157048.113415, -112928.19886, -335425.031925])
        self.system.part.add(id=534, type=0, pos=[0.804599, 21.5071, 25.3841], f=[-908528.887019, 88644.2145222, -105002.497401])
        self.system.part.add(id=535, type=1, pos=[4.73834, -3.93679, 11.8489], f=[-11.7524846559, 99.892464586, -43.9516765978])
        self.system.part.add(id=536, type=1, pos=[8.38832, 5.98932, 13.516], f=[51701.5290397, -23160.7083143, 189347.736083])
        self.system.part.add(id=537, type=0, pos=[-3.17043, -8.93144, 24.1512], f=[-336519.345004, 561767.940429, -702149.629401])
        self.system.part.add(id=538, type=0, pos=[3.98126, 21.4658, 11.6601], f=[368.588634741, -2979.65433683, 2420.61583084])
        self.system.part.add(id=539, type=1, pos=[6.55026, 26.6019, 3.46024], f=[-5562.30398587, 19585.3896269, -8798.30142546])
        self.system.part.add(id=540, type=1, pos=[-5.38646, 2.79602, 5.95052], f=[-90916.4843827, -114648.553129, -101589.287968])
        self.system.part.add(id=541, type=1, pos=[-11.1073, 31.3432, 11.0437], f=[20596.8835901, -30720.2616252, -2665.19696276])
        self.system.part.add(id=542, type=1, pos=[-16.7853, 16.8975, 4.05033], f=[64006.000344, -59858.3710018, -7352.25350474])
        self.system.part.add(id=543, type=1, pos=[19.2724, -1.98208, 21.5867], f=[-1627202.54965, 296087.459005, -1713287.44642])
        self.system.part.add(id=544, type=1, pos=[23.4088, -0.66687, 5.32616], f=[3176.51825857, 14395.6765959, -724.334579196])
        self.system.part.add(id=545, type=0, pos=[13.4265, -4.84288, -12.8438], f=[-28417.2515593, -24671.7723309, -57756.1175871])
        self.system.part.add(id=546, type=0, pos=[-3.46973, 31.108, 3.05], f=[147174.869517, 7227.21380937, 31165.490752])
        self.system.part.add(id=547, type=0, pos=[-0.0821683, -26.1713, 5.97847], f=[9431.05520458, -2869.02394666, -4554.40936193])
        self.system.part.add(id=548, type=1, pos=[1.30985, -29.6225, 0.582482], f=[27667.3925862, -71205.9383829, -93542.2091541])
        self.system.part.add(id=549, type=0, pos=[21.5514, 13.2031, 11.4834], f=[246110.035491, 166411.5634, -62666.2743888])
        self.system.part.add(id=550, type=0, pos=[10.3845, 16.5408, -27.8597], f=[69152.7654511, 120494.250639, -334448.222144])
        self.system.part.add(id=551, type=0, pos=[-8.28935, -4.84754, -12.475], f=[93058.170596, 35487.9514189, -8740.31014256])
        self.system.part.add(id=552, type=0, pos=[35.5385, 12.1062, 4.31989], f=[40437.0559535, 37224.5875459, 3925.33903065])
        self.system.part.add(id=553, type=1, pos=[-0.528858, 16.7777, 26.5076], f=[-16796.5878377, -17180.8273947, -1168.32782917])
        self.system.part.add(id=554, type=1, pos=[-11.3957, 0.945531, 16.64], f=[534683.44857, -845665.029378, -756961.971268])
        self.system.part.add(id=555, type=0, pos=[10.8882, 25.5222, 12.8017], f=[334029.149506, -305713.669699, -160171.623362])
        self.system.part.add(id=556, type=1, pos=[-1.35742, 5.02778, -11.1326], f=[430427.634949, 36956.0359961, 222499.153345])
        self.system.part.add(id=557, type=1, pos=[26.3316, 12.4681, 11.1585], f=[32978.448699, 9749.36363618, 12333.3473075])
        self.system.part.add(id=558, type=1, pos=[-10.3761, 2.20258, 34.4384], f=[-75333.257308, -84943.151016, -48216.2058522])
        self.system.part.add(id=559, type=0, pos=[-15.9597, 9.30416, -6.74832], f=[984.565632145, 864.516672928, 1042.44637639])
        self.system.part.add(id=560, type=0, pos=[4.73959, -4.61488, 5.46095], f=[-104314.641274, 296080.255884, -135506.975987])
        self.system.part.add(id=561, type=1, pos=[-0.321168, 8.50724, 26.2196], f=[-22533.7943523, 29882.4549259, -8475.692398])
        self.system.part.add(id=562, type=1, pos=[-2.35207, 34.378, 20.3019], f=[-607917.01772, -1114002.19345, 3150964.25683])
        self.system.part.add(id=563, type=0, pos=[15.4751, -10.1832, 10.4265], f=[-40716.7427674, 7599.72576054, 34299.5047818])
        self.system.part.add(id=564, type=0, pos=[-11.565, 42.5, 30.0747], f=[335582.872422, -416136.618707, 214012.41817])
        self.system.part.add(id=565, type=0, pos=[17.4963, -2.73451, 11.934], f=[-537.041296168, -397.038099413, 580.567525136])
        self.system.part.add(id=566, type=0, pos=[-5.0233, -13.6238, -10.4104], f=[-175412.970652, 133259.924797, 416318.285427])
        self.system.part.add(id=567, type=1, pos=[-1.72105, 7.05162, 14.4728], f=[3692.93598319, -1796.3085125, 21661.1759251])
        self.system.part.add(id=568, type=1, pos=[-0.455731, 43.3159, 3.43069], f=[749251.472751, 108886.713525, 902801.848806])
        self.system.part.add(id=569, type=0, pos=[-2.55408, -1.40829, 8.82917], f=[-20800.9981288, -6454.01162037, 11367.6470174])
        self.system.part.add(id=570, type=0, pos=[17.8645, -16.0832, 3.17078], f=[655768.3762, -743171.443044, 185671.44561])
        self.system.part.add(id=571, type=0, pos=[14.1322, -7.79982, -3.22981], f=[87709.9404572, -5399.86980565, -78756.3259062])
        self.system.part.add(id=572, type=1, pos=[14.586, -4.92644, 7.36388], f=[22522.8812545, 31087.9661929, -1404.82487508])
        self.system.part.add(id=573, type=0, pos=[12.4169, 25.0823, -3.49218], f=[-355.321571297, -1711.98412225, -719.084465816])
        self.system.part.add(id=574, type=1, pos=[-17.3399, 26.2522, 17.0015], f=[12989.9502409, 6627.84271454, 5267.67518978])
        self.system.part.add(id=575, type=1, pos=[8.43289, 18.8736, 8.29628], f=[184157.723274, 414061.995607, -181239.725202])
        self.system.part.add(id=576, type=1, pos=[-2.04445, -23.4408, 15.6832], f=[-7.53855974517, 18.909731445, -29.5145652576])
        self.system.part.add(id=577, type=0, pos=[2.68949, 1.94822, -1.36305], f=[-1952.90957292, -304.32617811, 986.560564078])
        self.system.part.add(id=578, type=1, pos=[-8.1431, -0.232726, 17.3082], f=[2192.11042208, 9174.11793883, 28196.946931])
        self.system.part.add(id=579, type=1, pos=[23.4328, 27.5271, 13.08], f=[-105969.989808, -89853.6587918, -100047.283123])
        self.system.part.add(id=580, type=0, pos=[2.36644, 41.9396, 11.8427], f=[10049.6525191, -14256.9672057, 57078.9068609])
        self.system.part.add(id=581, type=1, pos=[8.60727, 20.4134, 11.424], f=[857218.368201, 484472.250307, -367433.934444])
        self.system.part.add(id=582, type=0, pos=[24.8102, 10.2426, 21.2611], f=[-1243.57938913, -1571.59905197, 1053.88233439])
        self.system.part.add(id=583, type=0, pos=[-14.4274, -1.74955, 17.9685], f=[-39683.8746159, 10595.5533946, 73856.2360285])
        self.system.part.add(id=584, type=0, pos=[5.41668, -10.9445, 9.23773], f=[-16666.0758777, -86599.5485483, 10704.1934281])
        self.system.part.add(id=585, type=0, pos=[-11.6949, 7.98835, 8.79446], f=[-58383.2858161, -404328.07732, 227558.558214])
        self.system.part.add(id=586, type=1, pos=[6.45267, 25.6837, -12.7838], f=[-240326.232937, 591924.485372, 1027520.29285])
        self.system.part.add(id=587, type=0, pos=[-16.9133, 21.7649, -19.0497], f=[-740214.741475, -336932.081593, 379580.930376])
        self.system.part.add(id=588, type=1, pos=[21.6308, -8.8838, 15.8314], f=[-644875.09658, 1361842.98543, -965626.219512])
        self.system.part.add(id=589, type=1, pos=[27.7168, 22.7955, 33.748], f=[32809.8025293, -3472.53543405, 31439.6913332])
        self.system.part.add(id=590, type=0, pos=[16.2575, 20.649, 21.4141], f=[13957.6186603, -9221.67382856, 14133.9868696])
        self.system.part.add(id=591, type=0, pos=[-0.0244431, 20.2215, -3.21805], f=[-302537.968566, -73161.1707768, 153682.278988])
        self.system.part.add(id=592, type=0, pos=[1.92302, 8.19984, 5.20481], f=[-117.719104508, -636.204024245, -210.396688318])
        self.system.part.add(id=593, type=1, pos=[0.784799, 21.4609, 6.57932], f=[93877.7998564, 1447.51721784, 69236.4359148])
        self.system.part.add(id=594, type=0, pos=[1.30943, 18.6782, -12.4001], f=[557104.064168, -104034.928757, 164382.342909])
        self.system.part.add(id=595, type=0, pos=[-3.77016, 21.9838, 28.5867], f=[-16164.4993007, -112553.926353, 102211.299275])
        self.system.part.add(id=596, type=0, pos=[13.7001, 11.3459, 14.772], f=[-224534.129172, 9028.76864647, 406747.799368])
        self.system.part.add(id=597, type=0, pos=[-0.547051, 16.6198, 21.4523], f=[188050.02466, 231110.636436, 216128.798878])
        self.system.part.add(id=598, type=1, pos=[-15.1058, 14.4433, 11.3813], f=[-85498.6154746, -125783.482557, -431629.751872])
        self.system.part.add(id=599, type=0, pos=[15.3668, 2.46229, -3.21754], f=[-80857.95333, -24766.2501019, -53034.2227219])
        #read Blockfile

    def compare(self):

        self.system.integrator.run(0)

        energy = Analysis(self.system).energy()['non_bonded', 0, 0] + Analysis(self.system).energy()['non_bonded', 0, 1] + Analysis(self.system).energy()['non_bonded', 1, 1] 

        pressure = Analysis(self.system).pressure()['non_bonded', 0, 0] + Analysis(self.system).pressure()['non_bonded', 0, 1] + Analysis(self.system).pressure()['non_bonded', 1, 1] 

        totenergy = Analysis(self.system).energy()["total"]
        totpressure = Analysis(self.system).pressure()["total"]

        self.assertTrue(np.abs(energy -totenergy)/totenergy < self.epsilon, "Failed. Energy difference too large") 
        self.assertTrue(np.abs(pressure - totpressure)/totpressure < self.epsilon, "Failed. Pressure difference too large")

    
    if "TABULATED" in espressomd.features():
        def test_tab(self):
            self.compare()
    else:
        print("TABULATED feature inactive")
        sys.exit()


if __name__ == "__main__" :
    ut.main()
