Saravanan666/pypi-org huggingface dataset:
Package: acudpclient
# ACUDPClient[![Build Status](https://travis-ci.org/joaoubaldo/acudpclient.svg?branch=master)](https://travis-ci.org/joaoubaldo/acudpclient)ACUDPClient is a Python module that can be used to communicate with an Assetto Corsa dedicated server.Using its UDP protocol, real time telemetry, lap timings and session information is pushed to the client.A few actions, like sending/broadcasting messages are also available.## Installation```bash$ python setup.py install```or```bash$ pip install acudpclient```(virtualenv is recommended)## Testing```bash$ nosetests```### Capturing real data for testing purposes1. Start the ACServer with UDP active.2. Capture the data using `tcpdump`:```bash$ tcpdump -w /tmp/ac_out.pcap -s0 -i lo -n udp dst port 10000```3. Extract all udp payload from the pcap file:```bash$ tshark -r /tmp/ac_out.pcap -T fields -e data | tr -d '\n' | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' > /tmp/ac_out```4. `/tmp/ac_out` contains binary data sent by ACServer.## UsageThe client should be initialized like this:```pythonfrom acudpclient.client import ACUDPClientclient = ACUDPClient(port=10000, remote_port=10001, host='127.0.0.1')client.listen()```* `remote_port` and `host` are used to send data to the AC server* `listen()` will bind the server socket to `port`.Server events can be handled directly or by event subscribers. Inboth cases, `get_next_event()` method must be invoked in theapplication's main loop.When handling events directly, a call to `get_next_event()`might return `None`, meaning there's no event available at thatpoint (the internal `ACUDPClient` socket is non-blocking).When creating a subscriber class, specific events can be handled by creatingmethods with the following naming scheme `on_<event_type>(self, event)`where `event_type` is any of the types found in`acudpclient.protocol.ACUDPConst` class (see Usage).Events passed to `on_<event_type>(self, event)` are dictionaries containingdifferent keys depending on the event's type. Refer to `acudpclient.client import ACUDPClient`to see which keys are available per event type.## ExamplesHandle events directly:```pythonfrom acudpclient.client import ACUDPClientclient = ACUDPClient(port=10000, remote_port=10001)client.listen()client.get_session_info()while True:event = client.get_next_event(call_subscribers=False)print event```Handle events with a subscriber:```pythonfrom acudpclient.client import ACUDPClientclass ACEventHandler(object):def on_ACSP_LAP_COMPLETED(self, event):print eventdef on_ACSP_NEW_SESSION(self, event):print eventdef on_ACSP_NEW_CONNECTION(self, event):print eventhandler = ACEventHandler()client = ACUDPClient(port=10000, remote_port=10001)client.listen()client.subscribe(handler)while True:client.get_next_event()```
Package: acuity
A brief guide to AcuityliteAcuitylite is an end-to-end neural-network deployment tool for embedded systems.Acuitylite support converting caffe/darknet/onnx/tensorflow/tflite models to TIM-VX/TFLite cases.
In addition, Acuitylite support asymmetric uint8 and symmetric int8 quantization.System RequirementOS:  Ubuntu Linux 20.04 LTS 64-bit (recommend)Python Version:  python3.8 (needed)Installpip install acuityliteDocumentReference: https://verisilicon.github.io/acuityliteFramework SupportImporter:Caffe,Darknet,Onnx,Tensorflow,TFLiteExporter:TFLite,TIM-VXTips: You can export a TFLite app and usingtflite-vx-delegateto run on TIM-VX if the exported TIM-VX app does not meet your requirements.How to run TIM-VX caseThe exported TIM-VX case supports both make and cmake.Please set environment for build and run case:TIM_VX_DIR=/path/to/tim-vx/build/installVIVANTE_SDK_DIR=/path/to/tim-vx/prebuilt-sdk/x86_64_linuxLD_LIBRARY_PATH=$TIM_VX_DIR/lib:$VIVANTE_SDK_DIR/libAttention: The TIM_VX_DIR path should include lib and header files of TIM-VX.
You can referTIM-VXto build TIM-VX.SupportCreate issue on github or email toML_Support@verisilicon.com
Package: acuitylite
A brief guide to AcuityliteAcuitylite is an end-to-end neural-network deployment tool for embedded systems.Acuitylite support converting caffe/darknet/onnx/tensorflow/tflite models to TIM-VX/TFLite cases.
In addition, Acuitylite support asymmetric uint8 and symmetric int8 quantization.Attention: We have introduced some important changes and updated the APIs that are not compatible with the version before Acuitylite6.20.0(include).
Please read the document and demos carefully.System RequirementOS:Ubuntu Linux 20.04 LTS 64-bit(python3.8)Ubuntu Linux 22.04 LTS 64-bit(python3.10)Installpip install acuityliteDocumentReference: https://verisilicon.github.io/acuityliteFramework SupportImporter:Caffe,Darknet,Onnx,Tensorflow,TFLiteExporter:TFLite,TIM-VXTips: You can export a TFLite app and usingtflite-vx-delegateto run on TIM-VX if the exported TIM-VX app does not meet your requirements.How to generate nbg and TIM-VX caseWhen you need generate TIM-VX case and nbg, please set the export() function's param pack_nbg_unify=True.
Such as: TimVxExporter(model).export(pack_nbg_unify=True), it will use our default SDK.
If you want to use your own SDK and licence, please set the param of export() viv_sdk, licence.
Such as: TimVxExporter(model).export(pack_nbg_unify=True, viv_sdk=your_sdk_path, licence=path_of_licence_txt)Attention: your sdk directory structure must strictly follow the directory structure of acuitylib/vsi_sdk!!!
your sdk need satisfy the structure of "your_sdk_path/build/install", "your_sdk_path/prebuilt-sdk/x86_64_linux",
otherwise the path may have problems.
And the licence content is the device target which you want to use.How to run TIM-VX caseThe exported TIM-VX case supports both make and cmake.Please set environment for build and run case:TIM_VX_DIR=/path/to/tim-vx/build/installVIVANTE_SDK_DIR=/path/to/tim-vx/prebuilt-sdk/x86_64_linuxLD_LIBRARY_PATH=$TIM_VX_DIR/lib:$VIVANTE_SDK_DIR/libAttention: The TIM_VX_DIR path should include lib and header files of TIM-VX.
You can referTIM-VXto build TIM-VX.How to generate nbg by OvxlibWhen you need generate nbg, please use OvxlibExporter class and set the export() function's param pack_nbg_only=True.
Such as: OvxlibExporter(model).export(pack_nbg_only=True), it will use our default SDK.
If you want to use your own SDK and licence, please set the "viv_sdk" and "licence" params of export() function.
Such as: OvxlibExporter(model).export(pack_nbg_only=True, viv_sdk=your_sdk_path, licence=path_of_licence_txt)Attention: your sdk directory structure must strictly follow the directory structure of  acuitylib/vsi_sdk!!!
your sdk need satisfy the structure of "your_sdk_path/prebuilt-sdk/x86_64_linux", otherwise the path may have problems.
The content of licence is the device target which you want to use.SupportCreate issue on github or email toML_Support@verisilicon.com
Package: acuitypro
A brief guide to AcuityliteAcuitylite is an end-to-end neural-network deployment tool for embedded systems.Acuitylite support converting caffe/darknet/onnx/tensorflow/tflite models to TIM-VX/TFLite cases.
In addition, Acuitylite support asymmetric uint8 and symmetric int8 quantization.System RequirementOS:  Ubuntu Linux 20.04 LTS 64-bit (recommend)Python Version:  python3.8 (needed)Installpip install acuityliteDocumentReference: https://verisilicon.github.io/acuityliteFramework SupportImporter:Caffe,Darknet,Onnx,Tensorflow,TFLiteExporter:TFLite,TIM-VXTips: You can export a TFLite app and usingtflite-vx-delegateto run on TIM-VX if the exported TIM-VX app does not meet your requirements.How to run TIM-VX caseThe exported TIM-VX case supports both make and cmake.Please set environment for build and run case:TIM_VX_DIR=/path/to/tim-vx/build/installVIVANTE_SDK_DIR=/path/to/tim-vx/prebuilt-sdk/x86_64_linuxLD_LIBRARY_PATH=$TIM_VX_DIR/lib:$VIVANTE_SDK_DIR/libAttention: The TIM_VX_DIR path should include lib and header files of TIM-VX.
You can referTIM-VXto build TIM-VX.SupportCreate issue on github or email toML_Support@verisilicon.com
Package: acurl
AcurlIt is an asynchronous wrapper aroundlibcurlwhich is built to interface with the Uvloop python library.Using Acurl In MiteThe gateway into Acurl is through the CurlWrapper (discussed inArchitectural Notes) and requires an event loop being passed to its constructor. Below is the mite implementation of acurl:classSessionPool:...def__init__(self):importacurlself._wrapper=acurl.CurlWrapper(asyncio.get_event_loop())...Architectural NotesAcurl uses a single loop maintained within python using UVloop.Acurl surfaces the CurlWrapper interface which takes the asyncio event loop as an argument. The wrapper deals directly with the curl_multi interface from libcurl, defining 2 functions (curl_perform_writeandcurl_perform_read) for checking both read and write availability of file descriptors.There are 2 notable functions within thecore Acurl implementation, notablyhandle_socketandstart_timer:handle_socketis passed as a callback function to the curl_multi interface and upon calls to thecurl_multi_socket_actionfunction, will receive updates regarding the socket status. We then handle those statuses by either adding or removing the aforementioned readers or writers.start_timeris another callback function that is passed to the curl_multi interface and is used as a way to handle timeouts and retries within curl. Upon a timeout, the timeout callback will be called and the transfer can be retried.
Package: acurl-ng
Acurl_NG (Next Generation)Acurl_NG is a Cython refactoring/rewrite of an earlier iteration of the asynchronous curl wrapper concept, which was written in C for the mite project by Tony Simpsonagjasimpson@gmail.com.
It is an asynchronous wrapper aroundlibcurlwhich is built to interface with the Uvloop python library.Using Acurl_NG In MiteThe current implementation of Acurl_NG is behind a feature toggle which defaults to using the old implementation of acurl. To switch over to using the new version of Acurl_NG within mite, the flagMITE_CONF_enable_new_acurl_implementation="True"The gateway into Acurl_NG is through the CurlWrapper (discussed inArchitectural Notes) and requires an event loop being passed to it's constructor. Below is the mite implementation of acurl, using the aforementioned flag to switch between versions of acurl:classSessionPool:...def__init__(self,use_new_acurl_implementation=False):ifuse_new_acurl_implementation:importacurl_ngself._wrapper=acurl_ng.CurlWrapper(asyncio.get_event_loop())else:importacurlself._wrapper=acurl.EventLoop()...Architectural NotesIn the old implementation ofacurlthere was two loops in play, UVloop in python and a second loop called AE. This has now been reduced to a single loop maintained within python using UVloop.Acurl_NG surfaces the CurlWrapper interface which takes the asyncio event loop as an argument. The wrapper deals directly with the curl_multi interface from libcurl, defining 2 functions (curl_perform_writeandcurl_perform_read) for checking both read and write availability of file descriptors.There are 2 notable functions within thecore Acurl_NG implementation, notablyhandle_socketandstart_timer:handle_socketis passed as a callback function to the curl_multi interface and upon calls to thecurl_multi_socket_actionfunction, will receive updates regarding the socket status. We then handle those statuses by either adding or removing the aforementioned readers or writers.start_timeris another callback function that is passed to the curl_multi interface and is used as a way to handle timeouts and retries within curl. Upon a timeout, the timeout callback will be called and the transfer can be retried.
Package: acute-dbapi
Welcome to the home page for acute-dbapi, a DB-API compliance test suite.  Acute is still in it’s infancy, but it’s reached the level of maturity that it would benefit from community input.  It currently contains 71 tests, and many more will be added soon.Comments, suggestions, and patches are all warmly welcome.  There are several TODOs listed in the [TODO] file, and many more generously sprinkled throughout the code; if you’d like to help out but don’t know where to begin, feel free to take a crack at one of them!Please read the project’s [README] for an introduction to the suite.  You’ll also find usage, architecture, and project philosophy information there.If you just want to see the results, take a look at TestResults, and DriverFeatures on the project wiki.
Package: a-cv2-calculate-difference
Calculates the difference between 2 imagesfroma_cv2_calculate_differenceimportcheck_before_afterrect=check_before_after("https://github.com/hansalemaos/screenshots/raw/main/colorfind3.png",r"https://github.com/hansalemaos/screenshots/raw/main/colorfind1.png",show_results=False,return_image=True,color=(255,0,0),)print(rect[0])[(93,150,39,18),(100,137,26,13),(150,117,15,15),(100,100,50,32)]
Package: a-cv2-easy-resize
Different ways of resizing pictures in OpenCVpipinstalla-cv2-easy-resizefroma_cv2_easy_resizeimportadd_easy_resize_to_cv2froma_cv_imwrite_imread_plusimportadd_imwrite_plus_imread_plus_to_cv2add_imwrite_plus_imread_plus_to_cv2()add_easy_resize_to_cv2()importcv2pic=cv2.imread_plus(r"https://raw.githubusercontent.com/hansalemaos/screenshots/main/splitted1.jpeg")pic1=cv2.easy_resize_image(pic.copy(),width=200,height=None,percent=None,interpolation=cv2.INTER_AREA)pic2=cv2.easy_resize_image(pic.copy(),width=None,height=200,percent=None,interpolation=cv2.INTER_AREA)pic3=cv2.easy_resize_image(pic.copy(),width=100,height=200,percent=None,interpolation=cv2.INTER_AREA)pic4=cv2.easy_resize_image(pic.copy(),width=None,height=None,percent=40,interpolation=cv2.INTER_AREA)pic5=cv2.easy_resize_image(pic.copy(),width=None,height=None,percent=None,interpolation=cv2.INTER_AREA)# returns originalcv2.imwrite('f:\\papagei\\pic1.png',pic1)cv2.imwrite('f:\\papagei\\pic2.png',pic2)cv2.imwrite('f:\\papagei\\pic3.png',pic3)cv2.imwrite('f:\\papagei\\pic4.png',pic4)cv2.imwrite('f:\\papagei\\pic5.png',pic5)
Package: a-cv2-find-biggest-square
Get the largest blank square area in a picture$pipinstalla-cv2-find-biggest-square#adding to cv2froma_cv2_imshow_threadimportadd_imshow_thread_to_cv2add_imshow_thread_to_cv2()froma_cv2_find_biggest_squareimportadd_find_biggest_square_to_cv2add_find_biggest_square_to_cv2()importcv2bil=r"https://github.com/hansalemaos/screenshots/raw/main/cv2_putTrueTypeText_000015.png"box,resultpic,length=cv2.find_largest_square(image=bil,scale_percent=30,gaussian_blur=6,draw_result=True)cv2.imshow_thread(resultpic)#without adding to cvfroma_cv2_imshow_threadimportadd_imshow_thread_to_cv2add_imshow_thread_to_cv2()froma_cv2_find_biggest_squareimportfind_largest_squareimportcv2bil=r"https://github.com/hansalemaos/screenshots/raw/main/cv2_putTrueTypeText_000015.png"box,resultpic,length=find_largest_square(image=bil,scale_percent=30,gaussian_blur=6,draw_result=True)
Package: a-cv2-imshow-thread
Solution for the "window - not responding" problem with cv2.imshow()pipinstalla-cv2-imshow-threadUsage:importglobimportosfroma_cv2_imshow_threadimportadd_imshow_thread_to_cv2add_imshow_thread_to_cv2()#monkey patchingimportcv2image_background_folder=r'C:\yolovtest\backgroundimages'pics=[cv2.imread(x)forxinglob.glob(f'{image_background_folder}{os.sep}*.png')]cv2.imshow_thread(image=pics[0],window_name='screen1',sleep_time=None,quit_key='q')#single picturecv2.imshow_thread(image=pics,window_name='screen1',sleep_time=.2,quit_key='e')#sequence of pics like a video clipParameters:image:Union[list,np.ndarray]Youcanpassalistofimagesorasingleimagewindow_name:strWindowtitle(default="")sleep_time:Union[float,int,None]=NoneUsefulifyouhaveanimagesequence.IfyoupassNone,youwillhavetopressthequit_keytocontinue(default=None)quit_key:str="q"keytoclosethewindowReturns:None
Package: a-cv2-putTrueTypeText
cv2.putTrueTypeText works just like cv2.putText, but with TTF fonts!You can add putTrueTypeText to cv2, or ...$pipinstalla_cv2_putTrueTypeTextfroma_cv_imwrite_imread_plusimportadd_imwrite_plus_imread_plus_to_cv2fromrandomimportchoicefroma_cv2_imshow_threadimportadd_imshow_thread_to_cv2froma_cv2_putTrueTypeTextimportadd_truetypetext_to_cv2,get_all_ttf_fontsimportcv2add_imshow_thread_to_cv2()add_truetypetext_to_cv2()add_imwrite_plus_imread_plus_to_cv2()url=r"https://raw.githubusercontent.com/hansalemaos/screenshots/main/templatematching1.png"filepath="c:\\temptemptemppic.png"pic=cv2.imread_plus(url)cv2.imwrite_plus(filepath,pic)ttfonts=get_all_ttf_fonts()font1=choice(ttfonts)test1=cv2.putTrueTypeText(img=filepath,text=f"{font1}".lower(),org=(50,120),fontFace=font1,#needs to be a file path!fontScale=46,color=(255,255,0),)font2=choice(ttfonts)test2=cv2.putTrueTypeText(img=url,text=f"{font2}".lower(),org=(50,120),fontFace=font2,fontScale=46,color=(255,0,255),)font3=choice(ttfonts)test3=cv2.putTrueTypeText(img=cv2.imread(filepath),text=f"{font3}".lower(),org=(50,120),fontFace=font3,fontScale=46,color=(123,50,110),)font4=choice(ttfonts)test4=cv2.putTrueTypeText(img=cv2.imread(filepath,cv2.IMREAD_GRAYSCALE),text=f"{font4}".lower(),org=(50,120),fontFace=font4,fontScale=46,color=(255,0,255),)test5=cv2.putTrueTypeText(img=cv2.imread(filepath),text=f"cv2.FONT_HERSHEY_SIMPLEX",org=(50,120),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=2,color=(255,0,255),)cv2.imshow_thread([test1,test2,test3,test4,test5])... import the functionfroma_cv_imwrite_imread_plusimportadd_imwrite_plus_imread_plus_to_cv2fromrandomimportchoicefroma_cv2_imshow_threadimportadd_imshow_thread_to_cv2froma_cv2_putTrueTypeTextimportputTrueTypeText,get_all_ttf_fontsimportcv2add_imwrite_plus_imread_plus_to_cv2()url=r"https://raw.githubusercontent.com/hansalemaos/screenshots/main/templatematching1.png"filepath="c:\\temptemptemppic.png"pic=cv2.imread_plus(url)cv2.imwrite_plus(filepath,pic)ttfonts=get_all_ttf_fonts()add_imshow_thread_to_cv2()font1=choice(ttfonts)test1=putTrueTypeText(img=filepath,text=f"{font1}".lower(),org=(50,120),fontFace=font1,#needs to be a file path!fontScale=46,color=(255,255,0),)font2=choice(ttfonts)test2=putTrueTypeText(img=url,text=f"{font2}".lower(),org=(50,120),fontFace=font2,fontScale=46,color=(255,0,255),)font3=choice(ttfonts)test3=putTrueTypeText(img=cv2.imread(filepath),text=f"{font3}".lower(),org=(50,120),fontFace=font3,fontScale=46,color=(123,50,110),)font4=choice(ttfonts)test4=putTrueTypeText(img=cv2.imread(filepath,cv2.IMREAD_GRAYSCALE),text=f"{font4}".lower(),org=(50,120),fontFace=font4,fontScale=46,color=(255,0,255),)test5=putTrueTypeText(img=cv2.imread(filepath),text=f"cv2.FONT_HERSHEY_SIMPLEX",org=(50,120),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=2,color=(255,0,255),)cv2.imshow_thread([test1,test2,test3,test4,test5])
Package: a-cv2-split-images-into-equal-parts
Split an image into equal partsimportcv2froma_cv2_split_images_into_equal_partsimportadd_split_images_to_cv2add_split_images_to_cv2()list_pics,list_files=cv2.split_image_into_equal_parts(img=r"https://github.com/hansalemaos/screenshots/raw/main/splitted1.jpeg",outputfolder="f:\\picsplittedxxx",pixel_width=100,pixel_height=200,colorborder=(255,0,0),text_color_border1=(0,150,0),text_color_border2=(200,0,0),text_height_1=0.4,text_height_2=0.4,)In[3]:list_picsOut[3]:[array([[[145,170,144],[145,170,144],[145,170,144],...,[113,149,119],[112,148,118],[114,150,120]],[[145,170,144],[145,170,144],[145,170,144],...,[112,148,118],[112,148,118],[113,149,119]],....list_filesOut[4]:['f:\\picsplittedxxx\\splitted\\0x0-100x200.png','f:\\picsplittedxxx\\splitted\\0x200-100x400.png','f:\\picsplittedxxx\\splitted\\0x400-100x750.png','f:\\picsplittedxxx\\splitted\\100x0-200x200.png','f:\\picsplittedxxx\\splitted\\100x200-200x400.png','f:\\picsplittedxxx\\splitted\\100x400-200x750.png','f:\\picsplittedxxx\\splitted\\200x0-300x200.png','f:\\picsplittedxxx\\splitted\\200x200-300x400.png','f:\\picsplittedxxx\\splitted\\200x400-300x750.png',....importcv2froma_cv2_split_images_into_equal_partsimportadd_split_images_to_cv2add_split_images_to_cv2()list_pics,list_files=cv2.split_image_into_equal_parts(img=r"https://github.com/hansalemaos/screenshots/raw/main/splitted1.jpeg",outputfolder=None,pixel_width=100,pixel_height=200,colorborder=(255,0,0),text_color_border1=(0,150,0),text_color_border2=(200,0,0),text_height_1=0.4,text_height_2=0.4,)In[3]:list_picsOut[3]:[array([[[145,170,144],[145,170,144],[145,170,144],...,[113,149,119],[112,148,118],[114,150,120]],[[145,170,144],[145,170,144],[145,170,144],...,[112,148,118],[112,148,118],[113,149,119]],....
Package: acwater
Atmospheric correction of EnMAP hyperspectral data for water surfacesACwaterimplements a class to load an EnMAP object and
execute Polymer atmospheric correction for water surfaces. ACwater
requiresEnPTfor the EnMAP data processing andPolymerfor the
atmospheric correction algorithm.Operating systemfor installation isLinux, tested on Debian
GNU/Linux 9.9 (stretch) - Linux 4.9.0-9-amd64 x86_64.RequirementsareEnPTandPolymer.Installationof EnPT followsEnPT
instructions.InstallationTheinstructionsinvolve cloning the package and installing its dependencies using a Python package manager. Note that both ACwater and Polymer must be installed with EnPT in the same environment.How to use command lineFirst, download an EnMAP Level 1B image fromhttps://eoweb.dlr.de/egp/.Please refer to the list of arguments that can be used in EnPT, which is available athttps://enmap.git-pages.gfz-potsdam.de/GFZ_Tools_EnMAP_BOX/EnPT/doc/usage.html.Here is an example of what the command might look like:
enpt –CPUs 4 –auto_download_ecmwf True –average_elevation 0 –blocksize 100 –deadpix_P_algorithm spectral –deadpix_P_interp_spatial linear –deadpix_P_interp_spectral linear –disable_progress_bars True –drop_bad_bands True –enable_ac True –mode_ac water  –polymer_additional_results True –ortho_resampAlg gauss –output_dir /your output dir/ –output_format GTiff –path_l1b_enmap_image /path to your EnMAP L1B zip file/ENMAP01-____L1B-DT0000002037_20220801T105350Z_026_V010111_20230223T123717Z.ZIP –polymer_root /Polymer path/polymer-v4.14 –run_deadpix_P True –scale_factor_boa_ref 10000 –scale_factor_toa_ref 10000 –target_epsg 4326 –threads -3 –vswir_overlap_algorithm vnir_onlyFeaturesLevel 1 class for connecting EnPT and Polymer.LicenseThis software is underGNU General Public License
v3CreditsCredits are with Phytooptics Group at AWI. This software was developed within the context of the EnMAP project supported by the DLR Space Administration with
funds of the German Federal Ministry of Economic Affairs and Energy (on the basis of a decision by the German
Bundestag: 50 EE 1923 and 50 EE 1915) and contributions from GFZ and Hygeos.This package was created withCookiecutterand theaudreyrproject
template.History0.1.0 (2020-04-23)
0.2.6 (2021-05-04)
0.3.0 (2023-02-10)
——————Development at AWI, Bremerhaven.