pym2149
View on PyPI — Reverse Dependencies (0)
Wheel Details
Project: | pym2149 |
Version: | 32 |
Filename: | pym2149-32-cp39-cp39-manylinux2014_x86_64.whl |
Download: | [link] |
Size: | 1421452 |
MD5: | d6be63ca47de70d96fab3173665a7cbc |
SHA256: | 3154eed09560ec6f24942deac9fad42f22a06d4db51db60146e5c3d477d4ebec |
Uploaded: | 2023-12-03 18:04:55 +0000 |
dist-info
METADATA · WHEEL · RECORD · top_level.txt · entry_points.txt
METADATA
WHEEL
Wheel-Version: | 1.0 |
Generator: | bdist_wheel (0.42.0) |
Root-Is-Purelib: | false |
Tag: | cp39-cp39-manylinux2014_x86_64 |
RECORD
Path | Digest | Size |
---|---|---|
pym2149-32.dist-info/WHEEL | sha256=AyC7IKhmiSSXhRuoUM7tu5qJrXUSwmuWU1FT9I5W70I | 111 |
pym2149-32.dist-info/entry_points.txt | sha256=jjWB54oZBEXqn-NC60tXmVc-Eh4iccIoT7QOF5SAAak | 590 |
pym2149-32.dist-info/METADATA | sha256=JmLnZa4Si64oVXwnvghVNvuE9NRaM1zWqDLHVUac1AM | 2526 |
pym2149-32.dist-info/top_level.txt | sha256=Z4a_O8jeaCaG7p9FgalNMd7kDGGBcrpX_vTQuZ0u0E8 | 28 |
pym2149-32.dist-info/RECORD | — | — |
pym2149-32.dist-info/COPYING | sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM | 35147 |
spectrogram/noise5k.py | sha256=IyXV748kgM8U5e6Rtv6netdnkzlclenfqHANkZD0bak | 923 |
spectrogram/tone1k.py | sha256=UGWgeLia4zRsWRdeLZbQD8Eaoh0Tl-0-43kKiVzp5kY | 921 |
spectrogram/tone1k+noise5k+tri1.py | sha256=OTOpQ3DemrYvjIAKQ7JmVtgtCm7GXI5eYKWdpDXstHc | 1097 |
spectrogram/noise125k.py | sha256=NCUv7VtaFIHx9trzeRBRqrV0x738RR7hGacZQ0tlHWE | 929 |
spectrogram/tri650.py | sha256=7eWojGkbCyVQALDlTXQCZOkZJ_WP5NpAmYDt8dYWpKU | 995 |
spectrogram/sin1k.py | sha256=t-vL49fx1-VM-4Uq2cUzlD6NWuORAdvXCFJFtt5LfZA | 1105 |
spectrogram/noise5k+tone1.py | sha256=02gKbXLayxO92PKeGwJVtq4AHl7Ogj7dCKHO0Hx5i34 | 980 |
spectrogram/pwm100.py | sha256=j2mULY5haCEygU20zKUYZuT290T553Ge5idT20Sh4po | 1051 |
spectrogram/saw600.py | sha256=CD-OESfHR3iwPcjPmX5f7mOYxJFmxeNy9sHoPxUEcNs | 995 |
spectrogram/tone1k5.py | sha256=zpAFZFhsz6iiU048GNSHCftzFIRG7SfZRzqx5mFu76k | 923 |
spectrogram/tone1-8.py | sha256=JUNI41XF7xvr3emHGYsK48a49aNd1NdOLV2sP_A74GY | 987 |
spectrogram/__init__.py | sha256=wIajZZGBqVsjtcfW23iaG07ho09-asLpYc66WkUuQ14 | 821 |
spectrogram/tone1k,2k,3k,4k.py | sha256=NKNhIfoiH-obfKh-JkporZQp1NxJOyCOwVTgBfHAID0 | 981 |
spectrogram/tone250.py | sha256=KbJ2GwMFq-4cWV353YIWPNctBnEtO82a9CRvmSSiS6M | 922 |
spectrogram/tone1k+noise5k.py | sha256=S_9fTewWzTUJ55dclewKp-TIwTJ9cOY3cnIknUNFrpI | 983 |
spectrogram/pwm250.py | sha256=lqtdjO-OkKrn1RQq3OPefThekJ_qatFBsurbeNlRXvQ | 1029 |
ymtests/qanlgmix.py | sha256=0uoRjEHLmEbxKImsqDRoqA2pSFHat7h96ur4gepbyPs | 1042 |
ymtests/qnoipbuf.py | sha256=XhjT8XTSggtvw2yBTqqQ_CvCo7cTmCyqqDU6oXKBifg | 854 |
ymtests/qnoispec.py | sha256=yD18zC3SEo0L2GGl7gXvFhiHlpKQJhtTEoIAwuwt4M4 | 829 |
ymtests/qenvrbuf.py | sha256=yEpa4WWY6Qjmmp_-LKBMvGnBqwPlWKHk2LZz2DNWv_g | 886 |
ymtests/dosound1.py | sha256=gCnkkYpYlRtndcGNmwb1VzVADhCs8rjTII0Kj94guTY | 984 |
ymtests/qtonpzer.py | sha256=Q-tUivMr3dCwbdHNuIYpAYlyibzJzdMvnI7Qz7L-JYY | 887 |
ymtests/qbmixenv.py | sha256=T8-Ktw8es2gvj9dM2qP557Ztxgt_Jct5FSWzL04XhCU | 918 |
ymtests/dosound2.py | sha256=2JIuj7jupYj4_PEcE4S364h9H4lAHkQehWcHhWLJ0-U | 856 |
ymtests/qenvpbuf.py | sha256=zLewgnVZfQpEd5swofTgx0LVIpBECpg--kt5XpGtN8o | 921 |
ymtests/__init__.py | sha256=R9j6BLAasBKTzSy_1kvQ1lNCQnxi8c9ibvKx_4XJh8U | 707 |
ymtests/qmtreset.py | sha256=I0JwHWB6X2yLwO2QLO6AnZKCknxRFVN_3GSEpNZb6Lc | 862 |
ymtests/qtinheri.py | sha256=FKjx9SeA9gUnLrV-dE_KZGPjnrJX3LXix-EvZwkEVxE | 1005 |
ymtests/qtonpbuf.py | sha256=7qTSTh9DgsOARLlq5r3Qh8MW2apzZvnix_njPia7im0 | 897 |
ymtests/mkdsd.py | sha256=W5Kk9Q7fKViHFalT-4GsBvJO4zPgetAVFBbFOLG4hoE | 3152 |
ymtests/qmnreset.py | sha256=4zcMNTlc4KfFpN9VcZO5at-d7pdtvVgrZoGfllN7W7U | 869 |
ymtests/dosound0.py | sha256=7U5-DFO-Hh0y1dUUN6m6DSEGMnWVO6HgzXQroOhFi4o | 885 |
ymtests/qtonflip.py | sha256=H1s5qQ3brpvL4mkDHT5dhusZ22MA51MpLhEqQCFSdwk | 1031 |
ymtests/qenvpzer.py | sha256=GUyYB-FBQzKM8NyKc6gNTFxMkQuvtEZFfX3KLPqoEXw | 937 |
pym2149/txt.arid | sha256=969gLIDLcum6UtDKQaNEWq17esy6RGoEd39hcYKIg3U | 818 |
pym2149/root.arid | sha256=jEYd3WQ32xjkehRcs-RXjPcKEbsAFUCs3YTp0-f_oIU | 4927 |
pym2149/timerimpl.py | sha256=GPugPvLytNPb6iPyILuzL2hRyKVKcZH58yZTLBUoyaE | 2114 |
pym2149/iface.py | sha256=YtAjveP5KGwLI6kAr3sHnVHrj1Bj1A51bOSjpo6EDjA | 996 |
pym2149/mix.py | sha256=09C4pVKNJW_fyRbHGOoy5YcGwdGJugCQ63ZpSlBWidI | 3752 |
pym2149/nod.py | sha256=THfyw25M6Q9NSELAaLOOraV9iPeRw0oBwDUBziXLih4 | 2380 |
pym2149/vis.py | sha256=sKQswD2zHwY-N2fXZKFDJ1lRvtk5HtstszWeJ2rFAew | 4593 |
pym2149/osc2.py | sha256=sVb-Oh0WsfVqLvrvNsJy8XtMefwekyt4KJCW4fEwygE | 8355 |
pym2149/jackclient.py | sha256=r75OO_JWWxJr7jMgGEKMWMA4fwpybQ2HjYMgEWHFg2c | 3652 |
pym2149/timer.py | sha256=lVbF23QALamN_s15elQVSZERwoWDOVMoL8L0NdYjHLw | 1938 |
pym2149/wav.py | sha256=JrLMmjwH3e4RB906JMiiJeNQa3gOLpbbAR3nrjFU8xc | 2662 |
pym2149/resid.py | sha256=GIJpcEGBvAulKbj46paYk3aGMgjr9lCL8GI3Jfe3-kw | 6734 |
pym2149/warmup.py | sha256=_LbTK6TSERDjDn3-RQArXjc2t2Jl1vgDGynR7cBYHy0 | 985 |
pym2149/realtime.arid | sha256=Z4RIZIVx6n7cA0aw1CdUGaN8v6sYL8RnOUTOgoj0gGA | 760 |
pym2149/__init__.py | sha256=R9j6BLAasBKTzSy_1kvQ1lNCQnxi8c9ibvKx_4XJh8U | 707 |
pym2149/buf.py | sha256=RWnfI3L7DATkeAVsP68NgJ0u8h6iN057ygDWGGxp-5c | 4916 |
pym2149/txt.py | sha256=ycwaDtZOFMT-i2XMdFuCCvEAXf2Sws9WGt7Lnq4usLs | 1207 |
pym2149/lurlene.py | sha256=W-jvrjHxOdFmM6OakFnq4mhCk-t_0v-RhxhXvXWXt0Y | 5485 |
pym2149/portaudioclient.py | sha256=l4G7uxqQL18hA5Be0aQl2BETNOKNtYwgz3g_PXVYtvg | 2037 |
pym2149/lfsr.py | sha256=uIw-nGmMR1rUJRQEf9Ub7v2BJ8vdCOJfAtnK0_AZWpw | 1151 |
pym2149/dsd.arid | sha256=HziNu1bK8pO4i8k-m-irQXNIxlOdQu5LWzFw6XpfyKE | 744 |
pym2149/ymplayer.py | sha256=LiY9htqM7ez7rvAMIzPUOcFhVvsc_5erKrkRuhUF-2g | 2050 |
pym2149/dosound.py | sha256=TWf22IpWK_PmCu6yqmEGOt2H5eiI0AxZvUrZMeV8APs | 2513 |
pym2149/mfp.py | sha256=2jcDZdWbjUDurGGWAGMv23WPXl_WbY_mORQbPV13L2Y | 2626 |
pym2149/minblep.py | sha256=MHDYURZPXFDDJf3vdW_pAI3qMvkrJXZJqV6A3lMRRzg | 993 |
pym2149/const.py | sha256=kN3d4bY_gKwnf-yjZZhoR8ufAlhDMSpTYE5jkQHZWfI | 845 |
pym2149/reg.py | sha256=7W_pDq8mESj60m-Mr1DBWiRZtiWUdz2Vrk_y2Ny5DVo | 2499 |
pym2149/out.py | sha256=SkSAdjkWG9iQIr_fMTA2Vn7j4-8c4ZzqezcOhv-XQSU | 6037 |
pym2149/power.py | sha256=KDW83GpXixXGnfXTPfWEWk7RjWqm_JSL3uUaLrlWie4 | 1320 |
pym2149/ym2149.py | sha256=HdRjukwk1cyV7NnVvQpnlyCut3MorJInnBASxOBOMKA | 5747 |
pym2149/budgie.py | sha256=eY2wDNc6zegjvS3ranvuhZYnD-aG4KVrgACsTC_8JPo | 3290 |
pym2149/util.py | sha256=WKzhSdR9s60XHlrPFEo3hoqluR3kTGvONOa7GCy0GM0 | 2088 |
pym2149/shapes.py | sha256=9Ri3B24godc6cfJIidUCAL7w_V58JbAEMnLdV4oC-LQ | 2616 |
pym2149/dac.py | sha256=J1DpGy4E8LAC-4oNxvXWATGiLABpNfBySAc52UDeQ0c | 3553 |
pym2149/ymformat.py | sha256=xFN0YXn5QgKrAIf6JU2Rx9vpcJ_QuBQVZtPAolkLaKI | 11804 |
pym2149/lha.py | sha256=dQM1bWn100Cuh9HLV0dzACzdWz08Bq8Gx-1faoKqOfQ | 5118 |
pym2149/pitch.py | sha256=HYv_fsTbuwjobeDOeNQ-j53UCA31jw3UepgiX4TUwX4 | 4648 |
pym2149/config.py | sha256=o5u2UL60EtMTnVNY1ZpSnGAlhUNEXF5LWMvaowCkdqk | 3582 |
pym2149/clock.py | sha256=k5wOIKFbct59FKE4rlMcLcXUS4TPTigiUwn9V6y9-io | 3145 |
pym2149/buf_turbo/fill_same_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/fill_i1_float32ETint16ETuint8.pyx | sha256=O7y7FNXMc6rqMfVM4NMS0fH3RDJGxfHUAYrqxgnP394 | 1165 |
pym2149/buf_turbo/putstrided_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=OX5X6JdobOCUiV_ymsTuWzd8XEUtbS6A44yoQTw4LeQ | 363088 |
pym2149/buf_turbo/fillpart_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=cnBTckz1xzzE2QO3Y0RwXiAt7RT-CK_Q-XufgbbEYQg | 305928 |
pym2149/buf_turbo/fill_same_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=2QdSdbyWW5u7BHgoZyYsoJreTL9j1QhyCX-r9DWDyAc | 258704 |
pym2149/buf_turbo/partcopyintonp_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/mapbuf_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=UPPiNJbGtfDggOa8yYAzS1c_OhD5AY4tqojDwlJJ_Kc | 260824 |
pym2149/buf_turbo/fill_i1_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/__init__.py | sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU | 0 |
pym2149/buf_turbo/copyasprefix_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/copywindow_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=4BLclXh3GESBg7YlCN7WI2KZnI0QWgPJX8Q6zZP7FVw | 309240 |
pym2149/buf_turbo/partcopyintonp_float32ETint16ETuint8.pyx | sha256=hXMIoBs65H1gLX1QJtARNUGtLs3UsUKy-Irh6wSzKO4 | 1500 |
pym2149/buf_turbo/fillpart_float32ETint16ETuint8.pyx | sha256=qU6EHqQ5N5ZAyiwHjYy9sj1ekeOteLHgNN24BWV6Iuo | 1189 |
pym2149/buf_turbo/putstrided_float32ETint16ETuint8.pyx | sha256=YUB7_1WChA9OuvKTNOGAjB8XCMwQAdW-BL_fur3dfMI | 1482 |
pym2149/buf_turbo/copywindow_float32ETint16ETuint8.pyx | sha256=FsYb-_6Dce5JDZHQXy7FoDYZt2OI6gbx-WkkykmHvJw | 1587 |
pym2149/buf_turbo/mapbuf_float32ETint16ETuint8.pyx | sha256=-aOJQRLBo5gVibhSYv8tDkFJwKlz5Rj6uaiY7VuRnc0 | 1581 |
pym2149/buf_turbo/mapbuf_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/copyasprefix_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=Rz-uGtDtMFovkx7-IEgEkzZkcajQCONMDlPhUp7vc_s | 257480 |
pym2149/buf_turbo/fill_i1_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=hNn_yn3LGKEiQxvxeVgh2BqCPwZzoY8LjBRYSkMCVbU | 266912 |
pym2149/buf_turbo/putstrided_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/copywindow_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/fill_same_float32ETint16ETuint8.pyx | sha256=Co0EQwF8GvYtoiMI7UqPTh1MYOm90KSmKZpM63lx4VM | 1039 |
pym2149/buf_turbo/partcopyintonp_float32ETint16ETuint8.cpython-39-x86_64-linux-gnu.so | sha256=xSDehcKnS5LDiXQQT521UUdq2XRCJ6RN80M2NeNcgOs | 304960 |
pym2149/buf_turbo/fillpart_float32ETint16ETuint8.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/buf_turbo/copyasprefix_float32ETint16ETuint8.pyx | sha256=FcqFJ2m0UB8qeSWWTPDjF-vNZyOSExW__YQOtCQMFWs | 1383 |
pym2149/native/calsa.cpython-39-x86_64-linux-gnu.so | sha256=9xM9CilKWI-LRnAnXqzHFPojA6aAbPbuVjKALMxjVtE | 759144 |
pym2149/native/calsa.pyxbld | sha256=FOMvPhClioAnht30PsLocAAYLkV5HCnhwA6heSRqkGw | 132 |
pym2149/native/resid.pyx | sha256=6cY8zoR_GX9jQbU6_cAq3kTpJY83xnWcFVbAtcOvUgE | 1298 |
pym2149/native/calsa.pyx | sha256=FFksbpK0K3PXBHF2M_aLBUOfbzrvCTZI8k0n2Os70qU | 5563 |
pym2149/native/__init__.py | sha256=R9j6BLAasBKTzSy_1kvQ1lNCQnxi8c9ibvKx_4XJh8U | 707 |
pym2149/native/resid.cpython-39-x86_64-linux-gnu.so | sha256=TXJDwoN9yO6VExeZCgvNx-r_8qqJH2-XD7UYbo78G0A | 321880 |
pym2149/native/ctime.pxd | sha256=lZgje6naDh8-GLkTKeNspmxJL2RLBKFmvm3_e3lc0lU | 972 |
pym2149/native/resid.pyxbld | sha256=UANC4xQf5xM9c2OPeV0_jHC7S9rF_IeQFNQ6JdQ4KDM | 203 |
pym2149/osc2_turbo/shapeimpl.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/osc2_turbo/rtoneimpl.pyxbld | sha256=HXXw-b6PaNVtjTVYwSEmh1Bz0EVo0-rcgwAnFlKrdIk | 162 |
pym2149/osc2_turbo/shapeimpl.cpython-39-x86_64-linux-gnu.so | sha256=DHLt3KfVsBtQsv9sW3Jhn4niY-TzatO84H2jMKQkn3g | 306616 |
pym2149/osc2_turbo/__init__.py | sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU | 0 |
pym2149/osc2_turbo/rtoneimpl.cpython-39-x86_64-linux-gnu.so | sha256=mcP2OgTGXVoLyFzU1iP4eRpXshzgXv3-hB-pzntK5ag | 350112 |
pym2149/osc2_turbo/shapeimpl.pyx | sha256=QuyFdqJS4C_PjuCIWmYEQJ1MweS8cWGfc-L1XHas8ps | 2375 |
pym2149/osc2_turbo/rtoneimpl.pyx | sha256=_H8JI1brltpT5DisYomULFzs0EwIf31EwP4rtFsOjSs | 2236 |
pym2149/scripts/dosound2jack.py | sha256=p-6yQzNy3qQ0etvRdOk_sxj_vq0OH1gHs6Q4m94FuzU | 1336 |
pym2149/scripts/ym2jack.py | sha256=y35oiIugh3L0N6EtB0eC97kvcr8TnFAe6TAf3iN3TwI | 1315 |
pym2149/scripts/dosound2wav.py | sha256=KgujaNhHDyRymVKrP5t5uW5GGEZXKxiGl-2W-pbq9CQ | 1333 |
pym2149/scripts/dsd2wav.py | sha256=6-YQA2RNCNDoneB3zcIzeAdXwcoXWi8kmS9CCztOLI8 | 1695 |
pym2149/scripts/lc2wav.py | sha256=rf96MNi0Jotz-fnpcXOe_U4n1Dn5AfgsjSEQDa2UjaI | 1425 |
pym2149/scripts/ym2portaudio.py | sha256=qc5f9vfcET1At2c_693PMVFc_xklVjfd90zP078b3JM | 1330 |
pym2149/scripts/dosound2txt.py | sha256=NRyCstqLlkFL9cjvGbwLD6d9-JDSa9Nu85s2F5FrFh0 | 1391 |
pym2149/scripts/__init__.py | sha256=KfrW9cBYX8hQnhyizLkkqrI8PPgeln5l5IKCd1O_VqU | 1858 |
pym2149/scripts/lc2portaudio.py | sha256=b8pJEGYFIkhNt1mYDL_JPZYAGZcV0aK6vhix6_rfqm4 | 1453 |
pym2149/scripts/ym2wav.py | sha256=HNNNwr48S7qOeyd7z1FFR1qP2lojILlReeY2pmxDAh4 | 1312 |
pym2149/scripts/lc2txt.py | sha256=O25tMEbnEFtCHUAQglkoUEOZKg4j-o-4mdt5dkdPyJ8 | 1444 |
pym2149/scripts/bpmtool.py | sha256=skdE0SjTN5jUdoIhM-4-TI1lfSLGK93FewzU1KEnPSc | 1081 |
pym2149/scripts/ym2txt.py | sha256=IMTLBbFc0CXgInDXJCXau9FrDiD7XkisRkedVF6-Hdk | 1319 |
pym2149/scripts/lc2jack.py | sha256=sia7r88ovbNKLfgWv0d-kumrDgyf-MLR1zvsR4jmpug | 1438 |
pym2149.libs/libresid-7a45ecb6.so.5.0.0 | sha256=44ar8ojDYvzObAWKhwjTNzCkTBiBKymL6aNP-VALS-U | 330920 |
top_level.txt
pym2149
spectrogram
ymtests
entry_points.txt
bpmtool = pym2149.scripts.bpmtool:main
dosound2jack = pym2149.scripts.dosound2jack:main
dosound2txt = pym2149.scripts.dosound2txt:main
dosound2wav = pym2149.scripts.dosound2wav:main
dsd2wav = pym2149.scripts.dsd2wav:main
lc2jack = pym2149.scripts.lc2jack:main
lc2portaudio = pym2149.scripts.lc2portaudio:main
lc2txt = pym2149.scripts.lc2txt:main
lc2wav = pym2149.scripts.lc2wav:main
mkdsd = ymtests.mkdsd:main
ym2jack = pym2149.scripts.ym2jack:main
ym2portaudio = pym2149.scripts.ym2portaudio:main
ym2txt = pym2149.scripts.ym2txt:main
ym2wav = pym2149.scripts.ym2wav:main