FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
This model is a proof-of-concept example for combining FlexSim's GIS features with the power of mixed integer programming in python. The model simulates a distribution network of 'factories' (red icons) and 'warehouses' (blue icons). The factories produce the product you are selling, and then distribute the product to various warehouses in the network. Every day, each warehouse generates a random demand for the product. Once demand from each warehouse is known, the 'demand dispatcher' must determine which factory should produce and ship how much of the product to each warehouse, fulfilling all warehouses' demands at minimum total cost. Each factory has a maximum daily capacity of production and a per-unit cost of production. In addition, shipping costs must be taken into account from each factory to each warehouse. Given these factors and constraints, the problem of optimal dispatching boils down to the well-known min cost flow problem in optimization. I've created a simple python script that uses cvxpy to solve this min cost flow problem as a mixed integer program. The MIP is not exactly the same as the standard min cost flow problem, since total factory capacity may be more than total warehouse demand, and I'm using integer instead of continuous variables. Nevertheless, it is sufficient to demonstrate the capability. The Warehouse process flow generates daily demand for each warehouse and pushes it to a shared Demand list. The DemandDispatcher then pulls demand from the list, and marshals capacity, demand, and cost data into parameters that can be passed to python. Then it evaluates getMinCostFlow label on the process flow, passing those parameters in. The label is configured to connect to the getMinCostFlow function defined in the MinCostFlow.py module. This function formulates the MIP with cvxpy, solves the program, and then returns the optimal shipping quantities for each factory-warehouse pair, returning control back to FlexSim. Once the shipping quantities have been resolved, the DemandDispatcher process flow creates and labels 'Trucks' that are sent to each warehouse. Note that this travel mechanism is purely for animation purposes, letting you visualize how much product is being sent from factories to warehouses each day. Potential additions to this model could use inventory management strategies, simulating randomized lead times, etc. I've added several dashboards that show the cumulative average breakout for each warehouse of which factories supply that warehouse, as well as the cumulative average breakout for each factory of which warehouses that factory supplies. I've also added costing measures for the warehouses and factories. Some interesting insights that can be gleaned from this model are how shipping vs. production costs affect the balance of which factories will ship to which warehouses. For example, if your shipping costs are low relative to your production costs, then the min cost flow algorithm will push production to factories that are the lowest cost to produce, even if they are far away from the destination warehouse. High production cost factories are consequently relegated to little if any production. However, if shipping costs are high, the algorithm will localize production to the factories nearest their respective warehouses. In order to run this model, you need python properly configured, including: Install one of these python versions: 3.7, 3.8, 3.9, 3.10 Install the cvxpy and cvxopt packages: python -m pip install cvxpy cvxopt Make sure the python directory is part of your PATH environment variable Configure your Global Preferences (the Code tab) to use the associated python version. This model was built in FlexSim 22.1. MinCostFlow.zip
View full article
FlexSim 2022 Update 2 Beta is now available. (Updated July 18) FlexSim 22.2.0 Release Notes To get the beta, log in to your account at https://account.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. The More Versions button does not appear when logged in as a guest account. Subsequently the beta is available only to licensed accounts and accounts that have a license shared with them. Learn more about downloading the best version of FlexSim for your license here. If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Development space.
View full article
In a recent model I was building I needed a case packer that had some special abilities. This "Combiner" is different than a traditional library accessed Combiner because: 1) You can set how many containers can be packed at a time. (In my model 3 cases were packed simultaneously with each cycle. I call these "batches" in my logic. This variable is accessed as a label on the 3D object. 2) It assumes that all the flowitems being packed come from the same port, you can't have multiple sources of flowitems or have a recipe. Although it could be modified to allow for that. 3) It is very easy to set home many flowitems per container. This variable is accessed as a label on the 3D object. This could be changed easily as the itemtype or some other criteria changes while running the model. 4) If the flow of containers or flowitems is delayed, the machine can time out and release a partial batch or partially filled container. I have included a model control GUI so you can manually stop the sources and test this logic. Note the labels associated with max wait time in the object labels again. 5) After a batch of containers and flowitems has been collected, there is a RobotCycleTime that occurs that represents the moving of the flowitems into the containers, this time is ran one time for the entire batch. While this object may not be the final solution for a lot of instances, I believe that it is a good starting point for a lot of objects that will be needed in future models. The Process Flow is well documented to explain the logic. Note that this is an Object Process Flow and all instances will need to be connected to the logic in the process flow. CustomCasePacker.fsm 0
View full article
FloWorks 22.1.0 is now available (12 May 2022). This version of FloWorks is intended for use with FlexSim 2022 Update 1. If you are using FloWorks with FlexSim 2022 (LTS) please use FloWorks version 22.0.1. All versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Please do not hesitate to report any bugs, usability improvements and feature requests to [email protected]. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email [email protected]. Release notes FloWorks 22.1.0 All bug fixes in FloWorks 22.0.1 below. FloWorks 22.0.1 Added support for Object Property Tables Bug fix: incorrect MassFlowConveyor content Bug fix: LoadingPoint issue with not-released positions (and status) Bug fix: Object created at incorrect scale when not using meters The documentation at docs.flexsim.com is in progress of being updated with the new release and will become available shortly. Until such time you can use the offline documentation included in the FloWorks installer and available through the Help menu in FlexSim.
View full article
FlexSim 2022 Update 1 is now available for download. For more in depth discussion and videos of the new features, check out the official software release page: Official Software Release Page - FlexSim 2022 Update 1: Python Connector, Coroutines + more You can view the Release Notes in the online user manual. FlexSim 22.1.0 Release Notes If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Development space.
View full article
FlexSim 2022 Update 1 Beta is now available. (Updated March 28) FlexSim 22.1.0 Release Notes To get the beta, log in to your account at https://account.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. The More Versions button does not appear when logged in as a guest account. Subsequently the beta is available only to licensed accounts and accounts that have a license shared with them. Learn more about downloading the best version of FlexSim for your license here. If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Development space.
View full article
These instructions are to be performed on a license server hosting FlexSim licenses. You will need the license server files. If you do not already have a copy of those linked files on your license server, download them to your license server then extract the entire archive to a convenient location. Run flexsimserveractutil.exe as an adminstrator by right-clicking the .exe and selecting Run as Administrator. Go to the main menu, Tools > View License Rights. Scroll through the displayed license information. Find any activated licenses that indicate they are broken. Find each broken license's Fulfillment ID (starts with FID_). Copy the Fulfillment ID to the clipboard (highlight including the FID_ prefix, through to the end of the line. Ctrl-C to copy). Go to the main menu. Select Tools > Manual Activation > Generate Request. Select the Repair option. Paste the Fulfillment ID into the field (Ctrl-V). Delete any spaces that may have been included before or after the pasted Fulfillment ID. Browse to a location where you will save the XML repair request. Choose a file name for the saved file. Press the Generate button. Repeat steps 4-10 for any broken licenses. Transfer the XML repair request files to an Internet connected computer. The files are plain text XML and can be manually examined in any text editor if necessary for security purposes. Be sure not to modify the files, including line endings. If the file is modified in any way, the various hashes in the file will register the change and the request will fail. Log in to your FlexSim Account. Click the Licenses link in the top navigation menu, then choose Manual XML in the Licenses submenu. Upload your XML files by dragging them onto the drop zone. Your uploaded XML requests will be processed. Upon completion, you will be prompted to download each XML response. Transfer the XML response files back to your license server. In flexsimserveractutil.exe (your instance opened above in step 1 using Run as administrator), from the main menu, choose Tools > Manual Activation > Process Response. Process each response by browsing to an XML response, then pressing the Process button. The license should be successfully repaired. After repair it should be usable and returnable. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
The instructions below are for offline/Manual XML licensing. If your server successfully connects to the Internet and to FlexSim's main license server, you can try our simpler online license return instructions. Assumed configurations All steps below assume that you followed the installation instructions as described in our license server installation instructions, and that all FlexSim's license server files were extracted to the location C:\FlexSim_LMTOOLS. Throughout these instructions we will reference files inside that folder. Find your fulfillment ID On your license server, run the flexsimserveractutil.exe program (C:\FlexSim_LMTOOLS\flexsimserveractutil\flexsimserveractutil.exe) by right-clicking and selecting Run as Administrator. In the FlexSim ServerActUtil program, go to Tools > View License Rights. Copy the Fulfillment ID for the Activation ID you are returning/upgrading by highlighting the Fulfillment ID and pressing Ctrl+C. Generate return request If your license server cannot connect to the Internet, you need to return manually. In the FlexSim ServerActUtil program, select Tools > Manual Activation > Generate Request. Choose the Return option. Paste the Fulfillment ID into the field using Ctrl+V. Browse to select a location and file name for your XML return request. Press the Generate button. Repeat for all licenses you wish to upgrade. This creates a return request XML file for each license you are upgrading. Copy the XML return request files to a location with Internet access. Log in to your FlexSim Account. Use the top page navigation to select your Licenses page, then choose Manual XML in the Licenses submenu: Drag your XML requests onto the dropzone (alternatively you can click the dropzone and browse to a file to upload). Your XML request will be uploaded and processed. If there are any errors, you will get more information about the problem which you can use in contacting your local FlexSim representative for help. If the XML request is successfully processed, you will be prompted to download the response XML file. Download your XML responses and transfer them back to your license server. Process each response XML file by opening flexsimserveractutil.exe and going to Tools > Manual Activation > Process Response. Browse to each response XML file and Process. Your licenses should be successfully returned. If you have any questions or problems, please search our Answers Community for possible solutions. There is a good chance someone else has already asked your question. Still not finding what you're looking for? Submit a new question and we'll check it out. If you're including any confidential information, such as license codes, be sure to mark your question as private! You can also contact your local FlexSim distributor for live phone, web, or email help.
View full article
FlexSim licenses can either be standalone or network-based. Each license model has its pros and cons. Learn more about these two different license models. You're here because you've chosen network licensing and you're ready to get started. A license manager by any other name FlexSim is licensed using technology from Revenera's FlexNet. FlexNet is one of the top software licensing technologies and is used by many large software companies, including several others in the engineering software space. FlexNet offers two different license managers: lmtools and lmadmin. You decide which platform will work best for your organization's needs. (Spoiler alert: we like lmtools best). lmtools Hosting your FlexSim licenses with lmtools lmtools is a simple utility for creating and managing the licensing service that will serve your FlexSim licenses to your organization's client PCs. This basic utility isn't installed - it is a simple executable. It has no 3rd party dependencies. For maximum security, compatibility, and simplicity, FlexSim recommends using lmtools. Many organizations that add FlexSim to their toolkit already use lmtools for managing their license hosting services for other software, so using lmtools to manage your FlexSim licenses just makes sense. Even if your FlexSim purchase marks the first time your org has set up a license manager, lmtools is a great way to go, and is our recommended license manager. Visit Hosting your FlexSim licenses with lmtools for a complete reference on configuring your license server using lmtools. lmadmin Hosting your FlexSim licenses with lmadmin lmadmin is FlexNet's newer, shinier license manager. It includes a web-based front end, so all the administration is done from your web browser. It is more complex than lmtools, serving both the licensing service and a management front end, and lmadmin relies on Java, which you will need keep up to date with patches and security updates. FlexSim usually does not recommend lmadmin, mainly because of the more complex configuration needed to host and manage the web front end (including additional firewall considerations, an extra username and password, etc.), its reliance on Java, and the fact that many FlexSim users already host other software licenses using lmtools. Visit Hosting your FlexSim licenses with lmadmin for a complete reference on configuring your license server using lmadmin.
View full article
This article is used to aggregate all other licensing articles under one heading. You can use the navigation panel in Answers' right column to navigate between the various licensing articles in this tree. Sharing your licenses License Models Licensing Procedures Licensing Errors FlexSim Feature Limitations by License Type License server - feature pools - only checkout features for license type FlexSim Version Numbering, including how licensing works for a given version number In addition, the following links contain some general licensing tips. These will likely be added to a future article. A few of the items are outdated, but in general the advice is still good. General licensing tips (Mar 9, 2018) License Q&A (Jul 17, 2017)
View full article
Have you received this licensing error? Operations error: 7466 The return of the fulfillment is denied by the return policy because max return exceeded. This error indicates that returns are disabled for your license. Your license is configured for one-time activation onto a computer. If you believe your license should be able to transfer from one computer to another, please contact your local distributor to discuss the situation.
View full article
Have you received this licensing error? Operations error: 7131 Server activation is not allowed to activate entitlement line item: Make sure the license model is a server license model. You may encounter this error if you attempt to activate a standalone license using flexsimserveractutil.exe on a license server. A standalone license is intended to be activated directly within FlexSim Simulation Software installed on a client PC. Please see our instructions for standalone licensing for the procedures to use with your standalone FlexSim licenses.
View full article
Have you received this licensing error? An error occurred in the activation request Operations error: 7189 Client activation is not allowed to activate: Check the license model to make sure a client can activate. You may encounter this error if you attempt to activate a network license directly within FlexSim software. A network license is intended to be installed on a license server using a FlexNet license manager - either lmtools or lmadmin. Please see our instructions for installing a license server, which also include directions for connecting your client software to the license server to obtain a license.
View full article
When you try to activate offline, the following error might appear in the console: ERROR: flxActSvrActivationRespProcess - (50019, 42107, 10246) "Failure to process response for an unspecified reason. This error may be returned when a valid failure response is received, for example when the activation server denies a request. Recovery: check parameters used for the request." License Server Manual XML Activation error example: Standalone Manual XML Activation error example: If you encounter this error, check the response.xml file you are attempting to process. If it includes the text SERVER_CONFIG or CLIENT_CONFIG, but your Trusted Storage is already configured, you may receive this error. With Trusted Storage already successfully configured, you must generate a brand new activation request. Upload the new request to your FlexSim Account for processing. If the license is available you will be able to download the XML response. This response should process and successfully activate your license. Full instructions for performing manual XML licensing for license servers can be found in our license server installation instructions document. ===== Here are some other items to keep in mind with manual XML licensing on your license server: Download the response XML files and transfer them to their license server without modification. Modifying the XML files in any way will "break" them. This includes line endings and other white space. The files include checksums and if the files change they will not work. The destination license server needs to be the same system where the request was generated. The FlexNet Licensing Service 64 needs to be installed, be a high enough version, and be running properly as a Windows service. Checking these items is covered in our license server installation instructions starting on page 6 with 3. FlexNet Licensing Service. flexsimserveractutil.exe may need admin privileges to write to the proper places on the system. Be sure to right-click the application and choose Run as Administrator.
View full article
FloWorks 22.0.0 is now available (21 December 2021). This version of FloWorks is intended for use with FlexSim 2022. If you are using FloWorks with FlexSim 2021 (LTS) you can upgrade to FloWorks version 21.0.5. If you are using FlexSim 2021 Update 2, you can upgrade to FloWorks version 21.2.1. All versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Please do not hesitate to report any bugs, usability improvements and feature requests to [email protected]. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license with active maintenance. For any questions, please email [email protected]. Release notes FloWorks 22.0.0 Fixed and updated statistics pins. Tutorials revised and updated (thanks, @Clair!). All bug fixes in FloWorks 21.2.1 below. All bug fixes in FloWorks 21.0.5 below. FloWorks 21.2.1 New: (segmented) flow pipe has option to suppress "Product Out Changed" event from product 0 to initial product. Bug fix: changed wording in tutorial 2 so it can be completed again. Bug fix: FlowVessel and FlowTruck flow item issues fixed All bug fixes in FloWorks 21.0.5 below. Backwards Compatibility Note: The following change may change the way updated models behave. (Segmented) flow pipe no longer fires the "Product Out Changed" event for zero-width layers (e.g. as created by the Pass Product Downstream trigger). FloWorks 21.0.5 Bug fix: when impact event ends, when no recalculation is necessary, the flow object state is now re-determined. Bug fix: SetFlowConveyorSpeed function fixed. Bug fixes to solver: incorrect flow with full tank-type objects. Bug fix: FlowConveyor approximately full/empty issues fixed. Bug fix: FlowConveyor settings (width, speed, ...) could not be set in quick properties.
View full article
FlexSim 2022 introduced a Reinforcement Learning tool that enables you to configure your model to be used as an environment for reinforcement learning algorithms. That tool makes connecting to FlexSim from a reinforcement learning algorithm easier, but that tool is not absolutely necessary for this type of connectivity. The same socket communication protocols that are used by that tool are available generally in FlexScript. Attached (ChangeoverTimesRL_V22.0.fsm) is the FlexSim 2022 model that you build as part of the Using Reinforcement Learning documentation that walks you through the process of building and preparing a FlexSim model for reinforcement learning, training an agent within that model environment, evaluating the performance of the trained reinforcement learning model, and using that trained model in a real production environment. Also attached (ChangeoverTimesRL_V6.0.fsm) is a model built with FlexSim 6.0.2 from 2012 that does the exact same thing, but with custom FlexScript user commands instead of the Reinforcement Learning tool. You can use this model with the example python scripts and FlexSim 6.0.2 in the same way that you can use the other model with those same scripts in FlexSim 2022. I'm providing this FlexSim 6 model as an example that demonstrates how you can communicate between FlexSim and other programs. The Reinforcement Learning tool certainly makes this type of communication easier and simpler, with a nice UI for specifying RL-specific parameters, but the fundamental principles of how this works have been available in FlexSim for many years using FlexScript. Hopefully this example can help teach and inspire those who wish to control or communicate with FlexSim from external sources for purposes other than just reinforcement learning. FlexSim is flexible, and the possibilities are endless.
View full article
FlexSim 2022 is now available for download. You can view the Release Notes in the online user manual. For more in depth discussion and videos of the new features, check out the official software release page. If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Development space.
View full article
If you have colleagues who should also have visibility to your license codes, you can "share" your licenses with their account. Licenses should only be shared in accordance with FlexSim's end user license agreement. When you share your licenses with another FlexSim Account, they are able to view all of your activation IDs in full, as well as the activation histories of those licenses. To share your licenses with another FlexSim Account, do the following: Log in to your FlexSim Account at https://flexs.im/account. In the navigation header, click the Licenses link, then choose Sharing from the submenu: Follow the instructions to add one or more FlexSim Accounts to share your licenses with. The FlexSim Accounts must already exist. Press the Add button to submit the accounts. When you submit, if you are navigated away from the Share page, simply revisit the Sharing link as described in step 2 above. You should see the results of your share attempt. You will also see a list of the accounts you're sharing with, as well as any accounts that are sharing with you: Your licenses will now be listed in your colleague's FlexSim Account. They will see your licenses listed on their Licenses page the next time they log in. If they were currently logged in to their account while you shared your licenses, they should log out, then log back it to note the change.
View full article
FlexSim 2022 Beta is now available. (Updated November 23) To get the beta, log in to your account at https://account.flexsim.com, then go to the Downloads section, and click on More Versions. It will be at the top of the list. The More Versions button does not appear when logged in as a guest account. Subsequently the beta is available only to licensed accounts and accounts that have a license shared with them. Learn more about downloading the best version of FlexSim for your license here. If you have bug reports or other feedback on the software, please email [email protected] or create a new idea in the Development space. FlexSim 22.0.0 Release Notes Added several new features to the Experimenter including: Experimenter can define and run multiple different jobs. Experimenter results are stored in a database file. Additional replications of a scenario can be run without needing to rerun previous replications. Improved visuals for status of replications. Added a Reinforcement Learning tool. Added Label charts. Added Tracked Variable charts. Standardized charts created by Pin buttons. Added sort options to table views. Updated MTBF/MTTR time fields to show unit conversion options. Added InObjectsInternal and OutObjectsInternal properties to the Visual Tool class. Backwards Compatibility Note: The following changes may slightly change the way updated models behave. Deprecated the optquest() command. It no longer executes any logic when called. The associated OPT_* macros have been removed. FlexSim now interacts with OptQuest through the Optimization Job object. Changed the default query handlers that deal with the Experimenter in MAIN:/project/exec/globals/serverinterface/queryhandlers. Custom applications that create web queries may need to be updated. Process Flow Added Process Flow Activity Statistics charts.
View full article
Article space for Production Engineer Book including FlexSim Examples from Brasil Este material de apoio faz parte do Livro Administração de produção e operações, manufatura e serviços: uma abordagem estratégica, dos autores Henrique Correa e Carlos Correa, em sua 5º Edição. Para auxiliar o aprendizado, este livro conta com exemplos em vídeo e modelos de simulações de processos disponíveis em diversos capítulos. O acesso ao material é gratuito e pode ser acessado através dos links abaixo nas descrições de cada capítulo. Aqui você encontrará o conteúdo detalhado, referente aos arquivos dos modelos de simulação (*.fsm) e os links dos vídeos no YouTube. Dessa forma, o leitor poderá usufruir dos arquivos de simulação criados para facilitar e enriquecer o seu aprendizado. Capítulo 10 Projeto do Produto e Seleção de Processos (Bens e Serviços) Call Center download modelo clique para assistir o vídeo Restaurante download modelo clique para assistir o vídeo Clínica download modelo clique para assistir o vídeo Loja de conveniência download modelo clique para assistir o vídeo Segurança de um aeroporto download modelo clique para assistir o vídeo Terminal Rodoviário download modelo clique para assistir o vídeo Hospital clique para assistir o vídeo Estacionamento clique para assistir o vídeo Capítulo 13 Localização e Arranjo Físico de Unidades da Rede de Operações Layout Celular clique para assistir o vídeo Layout em Linha clique para assistir o vídeo Layout por Processos (em breve) Layout Posicional (em breve) Capítulo 14 Capacidade Produtiva e Filas em Unidades da Rede de Operações Teoria das Filas download modelo clique aqui para assistir o vídeo Capítulo 15 Teoria das Restrições em Redes de Operações TOC Princípios 1-9 download modelo princípio 1 download modelo princípio 2 download modelo princípio 3 download modelo princípios 4 e 5 download modelo princípio 6 download modelo princípio 7 download modelo princípio 8 download modelo princípio 9 clique para assistir o vídeo Sistema Drum-Buffer-Rope (Tambor-Pulmão-Corda) download modelo clique para assistir o vídeo Capítulo 17 Gestão de Estoques na Rede de Operações Simulação de Reposição Periódica / Contínua (em breve) Capítulo 19 Sequenciamento, Programação e Controle de Operações Sequenciamento de Produtos e Otimização download modelo clique para assistir o vídeo Job-Shop download modelo clique para assistir o vídeo Capítulo 20 Just in Time (JIT) e Operações Enxutas (Lean) Produção Puxada vs. Empurrada download modelo clique aqui para assistir o vídeo Cartão Kanban Assista o vídeo e veja na prática um exemplo de simulação do sistema kanban. download modelo clique aqui para assistir o vídeo Desperdícios do Sistema Toyota de Podução (Lean) download modelo clique aqui para assistir o vídeo Setup Assista o vídeo da simulação de um processo de troca de piso da quadra de uma arena multiuso, utilizada para partidas de hóquei e de basquete. clique aqui para assistir o vídeo Informações Adicionais Os modelos de simulações e os vídeos apresentados foram construídos com o Software FlexSim, plataforma digital, a qual possui uma versão gratuita, FlexSim Express, disponível para download através da URL https://www.flexsim.com/pt/ Vídeo passo a passo download e instalação do FlexSim Express Vídeo requisitos de sistema hardware para utilizar o FlexSim Express Contatos [email protected] / @Rodrigo Lamas / @Michael Machado
View full article
Top Contributors