Offline Message Queue vs Inflight Queue

I am currently trying to figure out the relationship between these two types of queues. I’ve read HiveMQ documentation(Persistence Configuration Options chapter) and still have following questions:

  1. Does Offline message queue used only in case there are some messages for the client which is offline at the moment of new message arrival?
  2. When the client is connected to the broker and it receives some messages they go to Inflight queue?
  3. If client is online and Inflight queue is full does messages getting dropped or moved to Offline Message Queue?
  4. Does Shared subscriptions somehow affect Offline Message Queue or Inflight Queue behaviour? From what i’ve understood trying to analyse the sources of HiveMQ CE there is some check of shared subscription after inflight messages polling and before polling of messages but I might be wrong here. What is the overall logic-flow behind this?

I am using HiveMQ v3.4.6 and Shared Subscription functionality.